所以我正在尝试启动一个完全加密的启动分区。我也在运行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参数都支持更好的。我在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..and我有一个完全启动/工作的系统!:)
因此,我的问题是:如何配置Grub加载器来尝试将加密的分区自动加载到(crypt0)并读取其配置文件?
注意: Grub最有可能将磁盘识别为(hd1,gpt3),因为我的U盘仍在插入。如果我拔掉它并重新启动,它应该会改变为(hd0,gpt3)。
发布于 2016-10-04 17:51:50
在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:
https://unix.stackexchange.com/questions/313939
复制相似问题