
所以我試著讓一個完全加密的啟動分割區運行。我正在運行 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 將該磁碟識別為最有可能的磁碟,因為我的 USB 記憶棒(hd1,gpt3)
仍處於插入狀態。(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 在該線程中提供了解決方案: