如何配置 grub.cfg 来解密根分区?

如何配置 grub.cfg 来解密根分区?

我在 LUKS 上使用常见的“模式”,即 LVM。我有/dev/sda1哪个用于/boot/dev/sda2哪个是 dm-crypted 分区(默认aes-sha512-xts)。有两个 lvm 分区:一个用于交换,一个用于根。

问题是大多数指南(来自 gentoo 和 arch wikies)都只是告诉添加“cryptdevice”,而没有指定应该放在哪里或给出代表性示例(完整工作示例)。我发现的只是一些代码,什么也没解释清楚。

我尝试了各种不同的配置,感觉有点累了。所以我才问你。

Grub.cfg 图像在此处: imgur 上的 3 张图片

更新 :

经过一番搜索,我使用了crypt_root=… real_root=…instrad of root=… (我也添加了一些行/etc/default/grub

现在,加载时它要求我输入密码,但打开后它认为/dev/mapper/root(的默认名称crypt_root)无效(当然不是)。

我使用 shell 列出了内容,/dev/mapper/但发现没有 LVM 分区。这意味着我需要以某种方式告诉 grub 也明确地执行 dolvm。

答案1

首先启动安装介质并 chroot 到 LUKs LVM。

在文件 /etc/default/grub 中,你需要确保以下行存在

GRUB_CMDLINE_LINUX="dolvm crypt_root=UUID=6a7a642a-3262-4f87-9540-bcd53969343b root=/dev/mapper/vg0-root"

您需要在此处设置的两个选项是“crypt_root”和“root”选项。您通常不需要 real_root 选项

crypt_root 应该是 LVM,在上面的例子中,您可以看到 blkid(如下),该 UUID 映射到 /dev/sda3,在此示例中。

(chroot) root@localhost:/#blkid
/dev/sdb3: UUID="6a7a642a-3262-4f87-9540-bcd53969343b" TYPE="crypto_LUKS" PARTLABEL="lvm" PARTUUID="be8e6694-b39c-4d2f-9f42-7ca455fdd64f"

然后对于根选项,您需要将 LVM 映射器设备节点放入根分区。

以下指南很好地涵盖了这一点:

https://wiki.gentoo.org/wiki/Full_Disk_Encryption_From_Scratch_Simplified#install_GRUB2

相关内容