Systemd:USBからLUKSパスワードをロードしてキーボードに戻る方法は?

Systemd:USBからLUKSパスワードをロードしてキーボードに戻る方法は?

USBドライブを使用するか、キーボードからパスワードを入力してディスクのロックを解除する機能を備えたフルディスク暗号化機能を備えたヘッドレスGNU / Linux(Ubuntu 20.04)PCを設定したいと思います。私の出発点は、インストーラのデフォルトのフルディスク暗号化オプションを使用して新規インストールすることでした。このオプションは、/bootを除くすべてをLUKS暗号化論理ボリュームグループとして管理し、キーボードオプションを提供しました。

ディスクのロックを解除するためのパスワードを含む小さなUSBスティックがある場合は理想的です。これはサーバーにとって便利であるだけでなく、(USBスティックをサーバーに残すことができます。目標は、機密データを気にすることなく破損したハードドライブを返すことができることです)、私のラップトップには非常に便利です。起動時にUSBスティックを取り外し、暗号化されたディスクのロックを解除して削除します。 USBディスクが損傷している場合は、キーボードを使用してください。

実行中のシステムで動作するようにこれを行うにはどうすればよいですかsystemd

(この質問が慣れているようであれば、その理由は次のとおりです。https://stackoverflow.com/a/23451824/363028- 問題は解決しましたが、systemdと互換性がありません。 )

背景

非システムでは、このパッチを使用します。https://gitlab.com/ole.tange/tangetools/tree/master/decrypt-root-with-usb

すべてのデバイスのルートディレクトリで "cryptkey.txt"ファイルを検索し、各行をキーとして使用して復号化を試みます。失敗した場合:パスワード入力を再開します。

私が望む方法で正確に動作しますが、systemdではこれを中断するので(少なくとも直接的には)使用できません。

答え1

実際の起動プロセスを詳しく調べる必要はありませんでしたが、systemdパッチを使用するためにいくつかの変更のみを適用しました。これはUbuntu 20.04 LTSの更新版です。 https://gitlab.com/ole.tange/tangetools/-/tree/master/decrypt-root-with-usb/ubuntu-20.04

関連情報