我在 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