だから私は完全に暗号化されたブートパーティションを実行しようとしています。私は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内にファイルシステムのキーを含めて、パスワードを2回要求されないようにしました。
以下を使用して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
..そして私は完全に起動/動作するシステムを持っています! :)
だから私の質問は、暗号化されたパーティションを自動的に(crypt0)
にロードしてその構成ファイルを読み取るようにGrub EFIローダーを構成するにはどうすればよいですか?
注:USBスティックがまだ差し込まれているため、Grubはディスクを(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に特に感謝します。