gpg暗号化キーファイルを使用してLUKS内のLVMでGentooを起動する

gpg暗号化キーファイルを使用してLUKS内のLVMでGentooを起動する

パスワードで暗号化されたキーファイルを使用して、GPGで暗号化されたLUKSコンテナ内のLVM論理ボリュームにGentooをインストールしようとしています。起動を試みるまで、すべてが順調に進みます。私はカーネルとinitramfsを構築するためにgenkernelを使用しています:

genkernel --lvm --luks --install --menuconfig --busybox all   

GRUB2を使用して起動します。そのため、カーネルの起動後にキーファイルが見つかったというメッセージが表示されますが、次の行で「LUKSデバイスを開けません...」というメッセージが表示され、カーネルパニックが発生します。解決策は何ですか?

カーネル構成 -http://pastebin.com/YR7TfaVm

GRUB2メニュー項目:

menuentry 'Gentoo'{
root='hd1,gpt1'
linux /kernel-genkernel-x86_64-3.17.7-gentoo initrd=/dev/ram0 crypt_root=/dev/disk/by-partuuid/PARTUUID_OF_LUKS_CONTAINTER_PARTION dolvm real_root=/dev/mapper/vg1-root rootfstype=ext4 real_init=/usr/lib/systemd/systemd root_keydev=/dev/disk/by-partuuid/PARTUUID_OF_MY_PENDRIVE_WITH_KEY root_key=luks-key.gpg
initrd /initramfs-genkernel-x86_64-3.17.7-gentoo
echo "initing..."
}

答え1

私の問題は、カーネルバージョンを3.10に変更し、gpgバージョンを以前のバージョンに変更した後に解決されました。これはpinentryなしで動作し、静的にコンパイルしました。新しいバージョンですべての内容を2回確認しましたが、pinentryには常に問題があるようです。また、genkernelはpinentryを自動的に含めないと思います。私はそれを直接含める必要がありました。

結論として:

  • あなたのgpgバージョンにpinentryが必要であることを確認してください。 (私の場合は、initrdを作成するために以前のバージョンに戻しました。)
  • より安定したカーネルバージョンを考えてみましょう。
  • gpgを静的にコンパイルすることを検討してください。
  • initrd の作成後、すべてのライブラリの依存関係を確認してください。でもgenkernelのようなものを使うなら

関連情報