分区
EFI
创建 efi 和 / 分区
格式化分区
1
2
|
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
|
MBR
创建 boot 和 / 分区
格式化分区
1
2
|
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
|
挂载分区
1
|
mkdir /mnt/exherbo && mount /dev/sda2 /mnt/exherbo && cd /mnt/exherbo
|
下载 Stages
从 Stages 获取最新的自动构建的 Exherbo 每日存档 Stages。
1
|
wget https://stages.exherbo.org/x86_64-pc-linux-gnu/exherbo-x86_64-pc-linux-gnu-gcc-current.tar.xz
|
解压 Stages
写入 Fstab
UEFI
1
2
3
4
5
|
cat <<EOF > /mnt/exherbo/etc/fstab
# <fs> <mountpoint> <type> <opts> <dump/pass>
/dev/sda1 /boot/efi vfat defaults 0 0
/dev/sda2 / ext4 defaults 0 1
EOF
|
BIOS/Legacy
1
2
3
4
5
|
cat <<EOF > /mnt/exherbo/etc/fstab
# <fs> <mountpoint> <type> <opts> <dump/pass>
/dev/sda1 /boot ext4 defaults 0 0
/dev/sda2 / ext4 defaults 0 1
EOF
|
Chroot 进入新系统
挂载虚拟文件系统
1
2
3
|
mount -o rbind /dev /mnt/exherbo/dev/
mount -o rbind /sys /mnt/exherbo/sys/
mount -t proc none /mnt/exherbo/proc/
|
UEFI
创建 efi 目录并挂载
1
|
mkdir /mnt/exherbo/boot/efi && mount /dev/sda1 /mnt/exherbo/boot/efi
|
BIOS/Legacy
1
|
mount /dev/sda1 /mnt/exherbo/boot/
|
DNS
1
|
echo "nameserver 8.8.8.8" > /mnt/exherbo/etc/resolv.conf
|
加载环境变量
1
2
3
|
env -i TERM=$TERM SHELL=/bin/bash HOME=$HOME $(which chroot) /mnt/exherbo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
|
配置编译选项
build_options 推荐设置 -recommended_tests
1
|
vim /etc/paludis/options.conf
|
同步 Paludis 仓库目录树
安装 Linux 内核
1
2
3
4
5
6
7
8
|
cd /usr/src
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.x.x.tar.xz
tar xvf linux-7.x.x.tar.xz
cd linux-x.x.x
make menuconfig
make
make module_install
cp arch/x86/boot/bzImage /boot/kernel
|
更新系统
1
|
cave resolve -c world -x
|
启动服务
1
2
3
4
|
systemctl enable systemd-networkd
systemctl enable systemd-timesyncd
systemctl enable getty@tty1
systemctl enable sshd
|
安装 GRUB 引导
UEFI
1
2
|
echo "sys-boot/grub efi" >> /etc/paludis/options.conf
cave resolve -x grub
|
安装 UEFI 引导
1
|
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Exherbo GNU/Linux"
|
BIOS/Legacy
配置 GRUB
UEFI
1
2
3
4
5
6
7
8
|
cat<<EOF > /boot/grub/grub.cfg
set timeout=10
set default=0
menuentry "Exherbo GNU/Linux" {
linux /boot/kernel root=/dev/sda2 ro quiet
}
EOF
|
BIOS/Legacy
1
2
3
4
5
6
7
8
|
cat<<EOF > /boot/grub/grub.cfg
set timeout=10
set default=0
menuentry "Exherbo GNU/Linux" {
linux /kernel root=/dev/sda2 ro quiet
}
EOF
|
主机名
1
2
3
|
cat <<EOF > /etc/hostname
my-hostname
EOF
|
HOSTS
1
2
3
4
|
cat<<EOF > /etc/hosts
127.0.0.1 my-hostname.domain.foo my-hostname localhost
::1 localhost
EOF
|
固件
1
2
|
cave resolve repository/hardware && cave sync hardware
cave resolve -x linux-firmware
|
ROOT 密码
本地化
1
2
|
localedef -i en_US -f UTF-8 en_US.UTF-8
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
|
更改 LANG 环境变量
1
|
echo LANG="en_US.UTF-8" > /etc/env.d/99locale
|
时区
1
|
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
清理软件包
安装镜像(Stages)中包含了一些在安装过程中有用的额外工具。
这些工具并不属于系统本身,也不属于 world 集合,而是属于 Stages 集合。
你可以使用 cave show 查看这些额外安装的软件包:
如果某些 Stages 中的软件包你还想继续保留,可以使用 update-world 把它们加入 world 集合。
例如,下面的命令会把 gdb 加入 world 集合
1
|
cave update-world sys-devel/gdb
|
如果你希望把 Stages 集合中的所有软件包都加入 world 集合,可以执行:
1
|
cave update-world -s stages
|
如果你希望删除这些不再需要的软件包,可以直接使用:
重启系统
Exherbo 日常管理:
- 安装软件包:
cave resolve -x 包名
- 卸载软件包:
cave uninstall -x 包名
- 列出包详细:
cave show 包名
- 搜索包:
cave search 包名
- 同步软件仓库:
cave sync
- 更新系统包:
cave resolve -c world -x
- 清理孤立包:
cave purge -x
如需 Hyprland、中文输入法请添加 exhwm-cn,这个仓库是我在维护。
1
2
3
4
5
6
|
cat<<EOF > /etc/paludis/repositories/exhwm-cn.conf
format = e
name = exhwm-cn
location = ${root}/var/db/paludis/repositories/exhwm-cn
sync = git+https://gitlab.exherbo.org/carry/exhwm-cn.git
EOF
|
同步仓库