LUKSボリュームのパスワードなしの復号化のために、TPM 2.0モジュールと一緒にClevisを使用したいと思います。モジュールは Debian テストで承認されています(イブニングの中心/dev/tpm0
)/dev/tpmrm0
。
しかし、clevis initramfsスクリプトは失敗します。シェルでこれを調べた後、上記のデバイスがinit=premount
initramfsにあることがわかりました。/dev/tpm*
存在しない。これをどのように変更できますか? Debianを使用しながらinitramfs-tools
。
答え1
TPMを駆動するカーネルモジュールがにリストされ、initramfsにロードされていることを確認してください/etc/initramfs-tools/modules
。その後、initramfsはudev
デバイスを作成する必要があります。
まず、lsmod | grep tpm
TPMドライバモジュールの検索を実行してください。私にとって、出力は次のようになります。
# lsmod |grep tpm
tpm_tis 16384 0
tpm_tis_core 20480 1 tpm_tis
tpm 61440 2 tpm_tis,tpm_tis_core
rng_core 16384 2 tpm
tpm_tis
x86ハードウェアで最も一般的なTPM実装用のドライバです。出力は他のモジュール(tpm_tis_core
、tpm
および)に依存することがわかりますrng_core
。リストはlsmod
下から上に作成されるため、最適なロード順序は最初にロードすることですrng_core
。
したがって、これらのモジュールがinitramfsにロードされていることを確認するには、/etc/initramfs-tools/modules
ファイルに4行を追加する必要があります。
rng_core
tpm
tpm_tis_core
tpm_tis
(これは少し過剰になる可能性があります。initramfs-tools
モジュールの依存関係が自動的に処理されると思うので、言及するだけでtpm_tis
十分です。しかし、再試行の必要性を最小限に抑えるためにモジュールを明示的に指定するのが好きです...)
この/etc/initramfs-tools/modules
ファイルを編集した後、initramfsファイルを再生成する必要があります。 Debianではupdate-initramfs -u
。
次のステップは、再起動し、init=premount
シェルを再利用して/dev/tpm*
デバイスが作成されたことを確認することです。