Grub で cryptomount を自動的に実行して設定ファイルをロードするにはどうすればよいでしょうか (暗号化ブート)

Grub で cryptomount を自動的に実行して設定ファイルをロードするにはどうすればよいでしょうか (暗号化ブート)

そこで、完全に暗号化されたブート パーティションを作成しようとしています。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パスワードを 2 回入力するように求められないように、RAM ディスク内にファイル システムへのキーを含めます。

次のようにして 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 ローダーを構成するにはどうすればよいでしょうか?

注: Grub がディスクを識別しているのは、おそらく USB スティックがまだ接続されているためです。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 に特に感謝します。

https://forums.gentoo.org/viewtopic.php?p=7972812#7972812

関連情報