Grub2

如何讓 Grub 自動執行 cryptomount 以載入其配置文件(加密啟動)

  • May 16, 2018

所以我試圖讓一個完全加密的引導分區執行。我正在執行 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 參數都是針對better-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 將磁碟辨識為最有可能是因為我的 USB 記憶棒仍然插入。如果我拔下它並重新啟動,它(hd1,gpt3)應該會更改。(hd0,gpt3)

結果在 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://forums.gentoo.org/viewtopic.php?p=7972812#7972812

引用自:https://unix.stackexchange.com/questions/313939