(パスフレーズ)暗号化されたパーティションである/ dev/sda5にあるキーファイルを使用して、起動時に/ dev/sdb3を自動的に復号化したいのですが。 「自動的に」とは、「起動時、/ dev/sda5パスフレーズの入力を求められた後」を意味します。
私はDebianストレッチを使用しており、現在次の設定を行っています。
/ etc/crypttab:
sda5_crypt UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa none luks
sdb3_crypt UUID=bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb /etc/sdb3_key luks
/ etc/fstab:
/dev/mapper/lv_sda5-lv_rootfs / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
UUID=cccccccc-cccc-cccc-cccc-cccccccccccc /boot ext2 noatime,nodiratime 0 2
/dev/mapper/lv_sdb3-lv_home /home ext4 defaults 0 2
/dev/mapper/lv_sdb3-lv_swap none swap sw 0 0
これから、起動時に/ dev/sda5を復号化するためのパスフレーズの入力を求められ、次のメッセージが約30秒間繰り返されます。
警告:lvmetadへの接続に失敗しました。デバイススキャンにフォールバックします。
ボリュームグループ「lv_sdb3」が見つかりません
ボリュームグループlv_sdb3を処理できません
私が最終的に得るまで
デバイスの一時停止/再開を待つのをあきらめました
/ dev/mapper/lv_sda5-lv_rootfs:クリーン、.。
そして、私のDebianは完全に起動し、/ homeとSWAPビーイングは正しくマウントされました。
どうすればそれを正しく達成できますか?
問題はlvmに起因し、/ etc/crypttab、/ etc/fstabとは関係がないようです。/etc/crypttabおよび/ etc/fstabからsdb3_cryptエントリを削除しても、エラーメッセージループは変更されません。 (私はupdate-initramfs
とupdate-grub
で、その変更を/ boot/initrdで再実行します)
ここで、initramfsがlv_sdb3ボリュームグループが存在することをどのように認識できるのか疑問に思います。 /etc/lvm/lvm.confにuse_lvmetad = 0
を設定し、/ dev/sdb3 LUKSパーティションを開かなかったため、lv_sda5ボリュームグループのみを検出するpvscan --cache
を実行しました。では、initramfsはlv_sdb3ボリュームグループに関する/ deprecated /情報をどこで読み取りますか?
/ boot/initrdをzcat
でダンプすると、lv_sdb3がRESUME=/dev/mapper/lv_sdb3-lv_swap
の形式でクリアASCIIで一度表示されます。
これは、/ etc/initramfs-tools/conf.d/resumeをバックアップディレクトリに移動してから、update-initramfs -u -k all
を移動して/ boot/initrdを書き換えることで削除できます。これで、ブートプロセスはエラーなしで、時間のかかるループなしで実行されます。