起動時に LUKS ルートではなくファイルシステムパーティションをロック解除する

起動時に LUKS ルートではなくファイルシステムパーティションをロック解除する

Ubuntu 16.04の私のシステム/には暗号化されていないパーティションが1つありますが、LUKSは3つのパーティションでZFS zpoolを暗号化しました。システムを正しく起動するには、ZFSやその他のサービス(データベース、ネットワーク、電子メールなど)が起動する前にLUKSボリュームのロックを解除したいと思います。これはSSH経由でリモートで行う必要があります。

3つのパーティションを追加した後、システムが起動し、/etc/crypttabそのinitramfsステップの後にロック解除(およびパスワードプロンプト)が行われるのを待ちます。ただし、リモートブート時にLUKSロック解除が行われる一般的な方法は、「失敗」とdropbear言いinitramfs、3つのパーティションがシステムにないために続行することです。この場合、これはリモートロック解除より優先されるか、リモートロック解除が無効になることを意味するため、望ましくありません。fstabinitramfssystemdsystemdcrypttabOpenSSHdropbear

可能な汚れたハッキン​​グは、sleep 300initramfsに1つを追加してログインしdropbearてロックを解除する時間を与えることですが、これもお勧めできません。この問題を解決するための2つのオプションがありますが、どちらが最善かわかりません。実装方法もわかりません。

  • リモートまたはローカルのロック解除を有効にし、以前に起動したことがないかどうかをsystemd確認するために起動順序を変更します。networkingOpenSSHcrypttab

  • 続行する前に、initramfs重要なパーティションがロック解除されるのを待ってくださいsystemd

ベストアンサー1

  1. Ubuntuでlukをロック解除する
  2. /etc/crypttab の末尾に ",initramfs" を追加します。
root@a:~# cat /etc/crypttab
vda6_crypt UUID=9f420e32-0821-4cc8-a87e-59db96a12df0 none luks,discard 
vdb_crypt  UUID=8632fd8d-46ca-4c82-931c-6f6e04066465 none luks,discard,initramfs
  1. アップデート-initramfs -u
  2. /cryptroot/crypttabファイルを確認してください。
root@a:~# unmkinitramfs /boot/initrd.img-5.8.0-50-generic /tmp/initramfs
root@a:~# cat /tmp/initramfs/main/cryptroot/crypttab

vda6_crypt UUID=9f420e32-0821-4cc8-a87e-59db96a12df0 none luks,discard
vdb_crypt UUID=8632fd8d-46ca-4c82-931c-6f6e04066465 none luks,discard,initramfs

おすすめ記事