手动分区ZFS时无法选择ZFS作为根文件系统的解决方案咨询
手动分区ZFS时无法选择ZFS作为根文件系统的解决方案咨询
嗨,我完全懂你不想被Ubuntu和ZSys的默认ZFS管理逻辑束缚,还因为是BIOS系统不想被迫创建ESP分区的痛点。针对你手动分区时没法选ZFS作为根文件系统的问题,有几个可行的方案,不用直接就上debootstrap:
优先试试Ubuntu Server安装器的手动分区模式
桌面版的Ubiquity分区工具确实没做手动选择ZFS根的支持,但Server版的安装器在高级手动分区流程里是完全支持的,而且能完美避开ZSys:- 启动Ubuntu Server安装镜像,一路走到分区环节,选择「Manual」
- 先创建一个biosgrub分区:挑一块空闲磁盘区域,创建1MB左右的分区,不需要格式化,把分区类型设置为「biosgrub」——这是BIOS系统引导GRUB的必需分区,用来替代ESP的作用
- 剩下的磁盘空间用来创建ZFS池:选中空闲空间后选择「Create a ZFS pool」,设置好池名(比如
rpool),接着在池内创建根数据集(比如rpool/ROOT/ubuntu),把这个数据集的挂载点设为/ - 继续完成后续安装流程即可,安装器会自动配置ZFS引导,全程不会触发ZSys的自动管理,完全符合你手动掌控分区的需求
桌面版安装器配合预创建的ZFS池
要是你更习惯用桌面版安装器,可以提前手动搭好ZFS环境再启动安装:- 用Ubuntu Live CD启动,打开终端
- 手动创建ZFS池和根数据集,举个例子:
# 假设/dev/sda1是你提前创建好的biosgrub分区 zpool create -f rpool /dev/sda2 zfs create -o mountpoint=/ rpool/ROOT/ubuntu - 启动Ubiquity安装器,到分区步骤选「Something else」
- 找到你预先创建的
rpool/ROOT/ubuntu数据集,把它的挂载点设为/,然后继续完成安装 - 安装完成后不要重启,回到Live CD的终端,手动修复引导(因为桌面安装器不会自动处理ZFS引导):
# 挂载必要的虚拟文件系统 mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys # 进入chroot环境 chroot /mnt # 安装GRUB到磁盘 grub-install /dev/sda # 更新GRUB配置和initramfs update-grub update-initramfs -u
完成这些步骤后再重启,就能正常进入ZFS根系统了
迫不得已时再用debootstrap手动安装
如果上面的方法都不符合你的需求,debootstrap确实是终极方案,虽然步骤繁琐,但能完全掌控所有细节:- 用Live CD启动,创建biosgrub分区、ZFS池和根数据集,并把根数据集挂载到
/mnt - 用debootstrap安装基础系统(以Jammy版本为例):
debootstrap jammy /mnt http://archive.ubuntu.com/ubuntu/ - 进入chroot环境,依次完成APT源配置、root密码设置、普通用户创建、GRUB安装、ZFS相关工具安装、initramfs配置、fstab设置等操作
这个方法完全绕过Ubuntu的自动配置逻辑,彻底避开ZSys和不必要的ESP分区
- 用Live CD启动,创建biosgrub分区、ZFS池和根数据集,并把根数据集挂载到
总的来说,Server安装器的手动分区模式是最省心的选择,既能满足你手动掌控的需求,又能自动搞定ZFS引导的配置,不用额外折腾。
备注:内容来源于stack exchange,提问作者teapot
相关产品推荐
相关产品推荐

