所以我试图让一个完全加密的启动分区运行。我正在运行 Funtoo,但主要是从 Arch wiki 中获取帮助。
所以我决定做一些疯狂/有争议的事情:不单独的启动/根分区。我的设置如下:
/dev/nvme0n1p1 - EFI parition
/dev/nvme0n1p2 - Swap
/dev/nvme0n1p3 - Encrypted /
在我的/etc/default/grub
我有以下内容:
GRUB_ENABLE_CRYPTODISK=y
GRUB_PRELOAD_MODULES="luks cryptodisk"
GRUB_CMDLINE_LINUX="luks enc_root=/dev/nvme0n1p3 root=/dev/mapper/enc_root"
所有的linux参数都是为了更好的 initramfs。我在 ramdisk 中包含了文件系统的密钥,因此它不会两次提示我输入密码。
我使用以下命令安装了 Grub:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Funtoo Linux [GRUB]" --recheck --boot-directory=/boot/efi/EFI
因此,在当前状态下,我收到了 Grub 救援提示。它找不到其配置文件(位于加密的启动/根磁盘上)。所以我运行以下命令:
insmod luks
cryptomount (hd1,gpt3)
set root=(crypto0)
configfile (crypto)/boot/grub/grub.cfg
..我有一个完全启动/工作的系统!:)
所以我的问题是:如何配置 Grub EFI 加载程序以尝试自动加载加密分区(crypt0)
并读取其配置文件?
注意:Grub 将该磁盘识别为(hd1,gpt3)
最有可能的磁盘,因为我的 USB 记忆棒仍处于插入状态。(hd0,gpt3)
如果我拔下它并重新启动,情况应该会发生变化。
答案1
事实证明,在 Gentoo/Funtoo 上,grub 的设备映射器默认情况下并未启用。我添加了以下内容/etc/portage/package.use
:
sys-boot/grub device-mapper
然后我重新出现 grub,运行grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Funtoo Linux [GRUB]" --recheck
并重新启动以找到 luks 密码请求屏幕。输入后,一切都完美启动。
特别感谢Frostschutz 在该线程中提供了解决方案: