ZFS 根文件系统

ZFS 根文件系统

我一直尝试使用 zfs 作为根文件系统来安装 ubuntu。但似乎支持 ZFS 的 GRUB 2.xx 不支持压缩,所以我禁用了它。然而,我还是遇到了同样的问题。

安装 ubuntu 相当容易,但是启动它似乎很麻烦。

启动 15.04 live CD 后,我在终端中发出以下命令:

安装 zfs 支持包

# apt-add-repository --yes ppa:zfs-native/stable
# apt-get update
# apt-get install debootstrap spl-dkms zfs-dkms ubuntu-zfs

创建 zfs 池/数据集

# zpool create -o ashift=12 -m none -R /mnt ospool mirror sdb sdc
# zpool create -o ashift=12 -m none -R /mnt storage raidz1 sdd sde sdf sdg sdh

# zfs create -o mountpoint=/ ospool/root
# zfs create -o mountpoint=/boot ospool/boot
# zfs create -V 8G -b 4k ospool/swap
# zfs create -o mountpoint=/var storage/var
# zfs create -o mountpoint=/home storage/home

引导基础系统,并 chroot

# debootstrap vivid /mnt
# chroot /mnt /bin/bash --login

我有一个启动设备(SDA),它有一个 ext2 和一个 bios 启动分区,安装在 /mnt/boot/grub 上

此时我安装了相同的 zfs 包,运行正常。但 GRUB 安装失败,提示无法找到设备或规范路径,因此 grub2-common 和 grup-pc 无法完成。

所以我的问题是如何安装支持 zfs 的 grub?

如果我使用 grub-install 手动安装 grub 并重新启动进入 grub shell,我可以看到 zfs 受支持。但无法使用linux 路径/到/内核命令。

答案1

我建议你尝试使用 Ubuntu 16.04。我按照本教程操作,成功了:

https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-ZFS

无需禁用任何 ZFS 功能,例如压缩。事实上,它已启用 (lz4),我甚至使用带有 3 个磁盘的 raidz1 作为 /。

需要注意的一点是,我必须导出这个 shell var,以便 grub 能够识别磁盘/by-id 设备:

export ZPOOL_VDEV_NAME_PATH=YES

这是因为 bug#11527727,该问题即将得到修复,因此在不久的将来您可能不再需要它。

答案2

ZoL PPA for Vivid 没有使 ZFS 根按您希望的方式工作所需的软件。Precise 之后的所有版本均不支持此配置,因此不受此限制。

高级用户有时可以使用发行版中已有的基本 ZFS 支持获得所需的结果。您在此处使用的 HOWTO 中应该有指向 ZoL 社区创建的替代教程的链接。

完全集成的 Ubuntu 解决方案可能还需要几年时间,因为上游 GRUB 项目最近才开始关注 ZoL 问题。建议使用单独的启动和 root。

答案3

您一定要查看 Linux GitHub 组织上的 ZFS 的这个 wiki 页面:https://github.com/zfsonlinux/pkg-zfs/wiki/HOWTO-install-Ubuntu-14.04-or-Later-to-a-Native-ZFS-Root-Filesystem

我已在虚拟机中使用它,以便在下次重新安装时试用。效果很好!

答案4

我还尝试使用本教程使用 ZFS 设置 Ubuntu: https://github.com/zfsonlinux/pkg-zfs/wiki/HOWTO-install-Ubuntu-to-a-Native-ZFS-Root-Filesystem

到目前为止我已经完成了,并使用 debootstrap 等安装了 Ubuntu 14。还安装了 Grub。

但启动系统时出现错误“Grub 找不到标签”并卡住。

在 Grub-Console/BusyBox 上我检查了 ZFS 是否已安装,结果已经安装!

$> zpool status (好结果!)

$> mount ... rpool/ROOT/Ubuntu14 on /root type zfs (...) (看起来不错)...

$> ls /root/rpool(!!!空!!!

$> df -P rpool/ROOT/Ubuntu14 ..... 0% /root ??! 出了什么问题??!


使用 DVD/恢复模式再次启动并导入 ZFS-Rpool 一切仍然正常!

LZ4 压缩(在包含 Ubuntu-OS 的 Rpool 上启用)可能是问题所在吗?!

致以最诚挚的问候 Gabriel

相关内容