@sebasthによって上記で参照されたバグを与えられたdebianの私の回避策はここにあります。
私のセットアップは少し異なります。暗号化されたルートパーティションと多数のRAIDディスクがあります。私にとっては、crypttabにinitramfsオプションを追加する必要がありました。
<target> <source> <keyfile> <options>
part1_crypt /dev/disk/... crypt_disks plain,cipher=aes-xts-plain64,keyscript=decrypt_keyctl,initramfs
part2_crypt /dev/disk/... crypt_disks plain,cipher=aes-xts-plain64,keyscript=decrypt_keyctl,initramfs
これにより、これらのcrypttabエントリをinitramfsにマウントしたいことがupdate-initramfsに伝えられます。実行してcrypttabを確認しました
cryptdisks_start part1_crypt
cryptdisks_start part2_crypt
私のRAIDディスクは単純なdm-cryptであることに注意してください。これは、systemd keyscriptのバグを回避するluks keyfileメソッドを使用できなかったことを意味します。プレーンdm-cryptの場合、パスフレーズをプレーンテキストで保存する必要があります。
暗号化されたディスクupdate-initramfs
は、実行する前にマウントする必要があります。そうしないと、エラーがスローされます。initramfsが作成されたとき、次の行を探す必要がありました。
update-initramfs -k -u -v | grep 'keyctl'
次の2つのファイルが表示されました。
/bin/keyctl
cryptkeyctl
initramfsに追加されます。
最後に、上記のバグに対処するために、crypttabを処理するsystemdを無効にする必要がありました。systemdはcrypttabのkeyscriptオプションをサポートしていません。このために、カーネルオプションを追加しました
GRUB_CMDLINE_LINUX_DEFAULT="quiet luks.crypttab=no"
/ etc / default / grubに移動して実行しましたupdate-grub
。systemdはcrypttabを無視するようになり、すべての暗号化されたパーティションがinitramfsにロードされます。
暗号化されたルートパーティションがあるため、cryptrootがキーをキャッシュするようには見えません。つまり、パスワードを2回入力する必要があります。1つはルートパーティション用、もう1つはRAIDアレイ用です。
expect
システムに実行させる代わりに、ディスクをマウントするために呼び出されるスクリプトなどを記述することもできます。代わりに、システムはスクリプトを呼び出してパスワードを要求し、保存し、各マウント操作に提供します。