在具有加密的本机 ZFS 根上安装 Ubuntu

在具有加密的本机 ZFS 根上安装 Ubuntu

我正在尝试在加密分区上安装具有原生 ZFS 根文件系统的 Ubuntu。设备设置如下:

  • 物理磁盘被划分为较小的启动分区和其余部分。
  • 磁盘的其余部分被完全加密,并划分为一个/swap/root用于实际系统的分区。
  • 在该根分区上创建的 ZFS 池具有几个 ZFS 文件系统,用于诸如此类的内容/home

这是我一直遵循的两个主要指南:

一切工作正常,除了最后一步——安装 grub。update-grub说(在chroot

error: cannot find a device for / (is /dev mounted?)

/dev已安装,并且我按照第二本指南中的附加建议进行设置/etc/default/grub等等。

我似乎无法让 grub 识别设备,grub.cfg并且menu.lst无法创建。我可能错过了哪些步骤?如果相关的话,所有这些都在 VirtualBox 中运行。

我特别想知道启动这个系统的正确 grub 命令行是什么。

答案1

Grub 1.99(随 Ubuntu 一起提供)不支持加密 zfs,这就是 update-grub 失败的原因。

因此你的选择是:

  1. 安装 grub 2.00(它支持加密的 zfs)。
  2. 手动编写 grub.cfg,而不是使用 update-grub。

这两个选项与 Ubuntu 默认设置有很大差异,但与首先使用加密 ZFS 作为根文件系统相比,差异仍然要小得多 :)

对于#1,您需要从源代码编译 grub 2.00,因为我不知道 Ubuntu 有任何 grub 2.00 包。

对于 #2,您需要 dpkg-divert update-grub 并将其替换为指向 /bin/true 的符号链接,然后手动编写 grub.cfg(每当您获得内核升级时更新它)。

如果您需要有关如何执行任一选项的更多细节,我很乐意进行详细说明。

答案2

您可能需要绑定 LVM 根目录。退出 chroot,然后输入:

sudo mount --bind /dev /mnt/root/dev

然后重新 chroot,看看 ZFS-grub 更新是否有效。

相关内容