为 Arch Linux ZFS 配置 Grub

为 Arch Linux ZFS 配置 Grub

有谁知道如何配置 Grub,使其能够挂载安装在 ZFS 系统上的 Arch Linux?

我有/dev/sda1(启动分区)和/dev/sda2(根分区)。 ZFS 系统有一个 zpool main,其中包含以下数据容器:

main/root mountpoint=none
main/root/default mountpoint=legacy
main/home mountpoint=legacy

我还将 ZFS 添加到了mkinitcpio.conf.

当我尝试启动系统时,它总是说无法安装根分区。

我需要更改 Grub 配置吗?老实说,我也不太关心Grub。如果syslinux能做到这一点我会切换。

编辑:

我在启动时遇到的错误是:

starting version 238
no pools available to import
ERROR: Failed to mount the real root device.
Bailing out, you are on your own. Good luck.

答案1

给定一个根卷数据集 /ROOT/archlinux在一个池池 mypool并在/bootGrub 中输入以下命令来启动数据集中的文件:

insmod part_gpt
search --set --label mypool
linux /ROOT/archlinux@/boot/vmlinuz-linux zfs=mypool rw
initrd /ROOT/archlinux@/boot/initramfs-linux.img
boot

您可以在grub>提示符下输入这些命令(c按 Grub 菜单)或使用它们作为更新/boot/grub/grub.cfg.

  • Grub 需要一个数据集;
  • 根卷数据集的挂载点应该是/
  • 您的启动文件位于/boot该数据集中;
  • 你的 initramfs 有HOOKS=(base udev autodetect modconf block keyboard zfs filesystems)
  • 您的 zpool 可以启用所有功能(默认);
  • Grub 的位置(与 zpool 相同或不同的磁盘)无关紧要。

请注意,我遭受了明显的疼痛尝试从 Grub 提示符中列出(使用ls)内容。/ROOT/archlinux@/boot如果您尝试这样做并出现错误,那么只需执行我最终所做的操作即可:忽略它们并尝试启动!

相关内容