Exherbo GNU/Linux 安装指南

Exherbo 是一个面向高级 Linux 用户的、强调灵活性、可维护性和用户自主控制的 Linux 发行版。它和 Gentoo 有比较深的历史渊源,但并不是 Gentoo 的简单分支。

分区

EFI

创建 efi 和 / 分区

1
fdisk /dev/sda

格式化分区

1
2
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2

MBR

创建 boot 和 / 分区

1
fdisk /dev/sda

格式化分区

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

1
tar xJpvf exherbo*xz

写入 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 仓库目录树

1
cave sync

安装 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

1
grub-install /dev/sda

配置 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
passwd

本地化

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 查看这些额外安装的软件包:

1
cave show stages

如果某些 Stages 中的软件包你还想继续保留,可以使用 update-world 把它们加入 world 集合。

例如,下面的命令会把 gdb 加入 world 集合

1
cave update-world sys-devel/gdb 

如果你希望把 Stages 集合中的所有软件包都加入 world 集合,可以执行:

1
cave update-world -s stages

如果你希望删除这些不再需要的软件包,可以直接使用:

1
cave purge -x

重启系统

1
exit && reboot

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

同步仓库

1
cave sync exhwm-cn
本站文章采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
使用 Hugo 构建,主题 StackJimmy 设计。