web-dev-qa-db-ja.com

ルートパーティションを復号化するようにgrub.cfgを構成するにはどうすればよいですか?

LUKSでLVMとしてよく知られている一般的な「パターン」を使用しています。 /dev/sda1に使用される/bootと、dm暗号化されたパーティション(デフォルトは/dev/sda2)であるaes-sha512-xtsがあります。 2つのlvmパーティションがあります。1つはスワップ用、もう1つはルート用です。

問題は、ほとんどのガイド(gentooおよびArch wikiから)が、配置する場所を指定したり、代表的な例(完全な実例)を示したりせずに、「cryptdevice」を追加するように指示していることです。私が見つけたのは、何も明確にしないコードの一部だけでした。

私はさまざまな構成を試して少しうんざりしています。だから私はあなたに尋ねているのです。

ここにGrub.cfg画像: imgurに3つの画像

更新:

いくつか検索した後、crypt_root=… real_root=…の代わりにroot=…を使用しました(また、/etc/default/grubに行を追加しました)

ロードするとパスフレーズを入力するように求められますが、開いた後、/dev/mapper/rootcrypt_rootのデフォルト名)は無効であると見なされます(もちろん無効です)。

シェルを使用して、/dev/mapper/の内容をリストしましたが、LVMパーティションがないことがわかりました。つまり、どういうわけか、grubに明示的にdolvmも指示する必要があります。

2
user8896663

まず、インストールメディアを起動して、LUKLVMにchrootします。

ファイル/ etc/default/grubで、次の行が存在することを確認する必要があります

GRUB_CMDLINE_LINUX="dolvm crypt_root=UUID=6a7a642a-3262-4f87-9540-bcd53969343b root=/dev/mapper/vg0-root"

ここで設定したい2つのことは、「crypt_root」オプションと「root」オプションです。 real_rootオプションは必要ありません(通常)

Crypt_rootはLVMである必要があります。上のこの例では、UUIDが/ dev/sda3にマップするblkid(下)を見ることができます。

(chroot) root@localhost:/#blkid
/dev/sdb3: UUID="6a7a642a-3262-4f87-9540-bcd53969343b" TYPE="crypto_LUKS" PARTLABEL="lvm" PARTUUID="be8e6694-b39c-4d2f-9f42-7ca455fdd64f"

次に、ルートオプションとして、LVMマッパーデバイスノードをルートパーティションに配置します。

次のガイドはこれを非常によくカバーしています:

https://wiki.gentoo.org/wiki/Full_Disk_Encryption_From_Scratch_Simplified#install_GRUB2

1
Citizen Kepler