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

use*_*663 5 gentoo grub lvm dm-crypt

我在 LUKS 上使用常见的“模式”,称为 LVM。我有/dev/sda1一个用于dm 加密分区(默认/boot)。有两个lvm分区:一个用于交换分区,一个用于根分区。/dev/sda2aes-sha512-xts

\n\n

问题是大多数指南(来自 gentoo 和 arch wiki)只是告诉添加“cryptdevice”,而没有指定它应该放在的位置或给出代表性示例(完整的工作示例)。我发现的只是部分代码,没有澄清任何内容。

\n\n

我有点厌倦尝试不同的配置。所以这就是我问你的原因。

\n\n

Grub.cfg 图像在这里:\n imgur 上的 3 个图像

\n\n

更新 :

\n\n

经过一番搜索后,我使用了\ncrypt_root=\xe2\x80\xa6 real_root=\xe2\x80\xa6的替代品root=\xe2\x80\xa6(我还添加了一些行/etc/default/grub

\n\n

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

\n\n

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

\n

小智 1

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

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

GRUB_CMDLINE_LINUX="dolvm crypt_root=UUID=6a7a642a-3262-4f87-9540-bcd53969343b root=/dev/mapper/vg0-root"
Run Code Online (Sandbox Code Playgroud)

您需要在此处设置的两件事是“crypt_root”和“root”选项。您不应该需要 real_root 选项(通常)

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

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

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

以下指南很好地介绍了这一点:

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