達成したいこと:

達成したいこと:

達成したいこと:

  • 起動時に 1 回だけパスワードの入力を求められます。
  • ディレクトリ内のキーファイルを使用する他の (ルート以外の) パーティション/root/

これまでに達成したこと:

  • (あ)システムは起動していますが、パスワードを 2 回要求します ( 用に 1 回/、 用に 1 回/usr)。
  • または:(バ)システムが起動せず、パスワードを一度要求しましたが、LVM グループ/ボリュームが見つからないためマウントを拒否しました/usr。シェルにドロップされ、/root/.keyfile使用できないことがわかります。/まだマウントされていません。

構成

ファイル:/etc/crypttab

ケースA

sdc3_crypt /dev/sdc3 none luks md0_crypt /dev/md0 none luks

ケースB

sdc3_crypt /dev/sdc3 none luks md0_crypt /dev/md0 /root/.keyfile luks

まったくうまくいかなかったこと

  • 必要なドライブを手動で luksOpen するためのスクリプト ファイルを作成します。 内のものはが使用可能になる/etc/initramfs-tools/scripts/local-premount前に呼び出されます/が、 内のものは/etc/initramfs-tools/scripts/local-bottomが開こうとした後に呼び出されます/usr(したがって、遅すぎます)。

答え1

の上このウィキページ(ドイツ語ですが、残念ながら英語では同等のものが見つかりませんでした)スクリプトを使用して、/lib/cryptsetup/scripts/decrypt_derived開かれたルートデバイスからキーを生成することをお勧めします。重要な部分を翻訳しようとしますが、ない手順を試しました。

キーを追加するには、(ルートとして)実行する必要があります。

mkdir /mnt/ram && mount -t ramfs -o size=1m ramfs /mnt/ram && chmod 600 /mnt/ram
/lib/cryptsetup/scripts/decrypt_derived <root_dev> > /mnt/ram/tmp.key && cryptsetup luksAddKey <usr_dev> /mnt/ram/tmp.key && rm /mnt/ram/tmp.key
umount /mnt/ram && rmdir /mnt/ram 

ここで、<root_name>は に表示されているルート デバイスの名前/dev/mapper(おそらくsdc3_crypt) であり、は 上にある<usr_dev>デバイス/usr(おそらく/dev/md0) です。

crypttabの行は

  <usr_name>         UUID=<UUID>          <root_name>           luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

走ることを忘れない

update-initramfs -u -k all 

crypttab を変更した後。

usr デバイスには「通常の」パスワードを保持する必要があります。そうしないと、ルート デバイスが破損した場合にデバイスを開くことができなくなります。

関連情報