暗号化された/ homeパーティションがあり、パスフレーズとキーファイルを使用してロックを解除できます。このキーファイルは、私が家に置いているUSBドライブにあります。これは、旅行中に私のラップトップをバッグから盗んだ人は私の個人ファイルにアクセスできないことを意味しますが、私が家にいるときはそれを入力する必要はありません。システムの残りの部分(/
、/boot
など)は暗号化されていません。これがセキュリティリスクになる可能性があることは承知していますが、それは私の懸念事項ではありません。
USBを正しく接続して起動すると、/ homeが復号化されてマウントされます。 「Bootwithpassphrase」を起動すると、パスフレーズを入力した後(USBが接続されているかどうかに関係なく)、/ homeが正しく復号化されてマウントされます。
USBを接続せずに最初のオプション「USBまたはパスフレーズで起動」を起動すると、1分30秒後に次のエラーが発生します(!)。
systemd[1]: Timed out waiting for device /dev/disk/by-uuid/<USB_UUID>.
systemd[1]: Dependency failed for /run/systemd/cryptsetup/keydev-encHome.
systemd[1]: Dependency failed for Cryptography Setup for encHome.
systemd[1]: Dependency failed for Local Encrypted Volumes.
2番目のジョブがタイムアウトするまで1分30秒(!)待った後:
systemd[1]: dev-mapper-encHome.device: Job dev-mapper-encHome.device/start timed out.
systemd[1]: Timed out waiting for device /dev/mapper/encHome.
systemd[1]: Dependency failed for /home.
systemd[1]: Dependency failed for Local File Systems.
systemd[1]: Dependency failed for File System Check on /dev/mapper/encHome.
カーネルパラメータにrd.luks.options=timeout=16,keyfile-timeout=16
とrootflags=x-systemd.device-timeout=16
が設定されているので、感嘆符を付けて1分30秒(!)と言います。したがって、これらは最大で16秒続くと思います。また、File System Check
を設定していても、fsck.mode=skip
の依存関係が失敗したことにも驚いています。
2回目の失敗の後、パスフレーズを入力するためのプロンプトは表示されませんが、緊急シェル内に直接ダンプされます。
USBがオンラインになるまで16秒間待機し、オンラインになる場合は/ homeを直接復号化するようにsystemdに要求します。そうでない場合は、パスフレーズを要求し、それを使用して/ homeを復号化します。
MODULES=()
HOOKS="base systemd autodetect modconf block keyboard sd-vconsole sd-encrypt filesystems fsck"
/dev/mapper/encHome /home ext4 defaults 0 2
(キーファイル付きのUSBはここにはありません)
空の
存在しない
"Boot with USB or passphrase"
"ro root=UUID=<ROOT_UUID>
apparmor=1 security=apparmor
resume=UUID=<SWAP_UUID>
initrd=/boot/intel-ucode.img initrd=/boot/initramfs-%v.img
rd.luks.name=<CRYPT_UUID>=encHome
rd.luks.key=<CRYPT_UUID>=/keyfile:UUID=<USB_UUID>
rd.luks.options=timeout=16,keyfile-timeout=16
rootflags=x-systemd.device-timeout=16
fsck.mode=skip"
"Boot with passphrase"
"ro root=UUID=<ROOT_UUID>
apparmor=1 security=apparmor
resume=UUID=<SWAP_UUID>
initrd=/boot/intel-ucode.img initrd=/boot/initramfs-%v.img
rd.luks.name=<CRYPT_UUID>=encHome"
(実際のファイルには改行がありませんが、読みやすくするために改行を追加しました)
lsblk -o name,fstype,uuid
NAME FSTYPE UUID
sda
├─sda2 swap <SWAP_UUID>
├─sda4 crypto_LUKS <CRYPT_UUID>
│ └─encHome ext4
└─sda6 ext4 <ROOT_UUID>
sdb
└─sdb1 ext4 <USB_UUID>
(および他のいくつかの無関係なパーティション)
cryptsetup luksDump /dev/sda4
UUID: <CRYPT_UUID>
Key Slot 0: ENABLED ( the passphrase )
Key Slot 1: ENABLED ( the keyfile )
systemd-fsck-root.service
はenabled-runtime
です
[email protected]
は、キーファイルの起動時にstatic
およびactive
です(USBが接続されている場合)。
uname -r
5.5.2-1-MANJARO
core/systemd 242.153-3
core/cryptsetup 2.3.0-1.1
extra/refind-efi 0.11.3-1
どうやら設定ファイルに問題はなかったようですが、
5.5.8-1-MANJARO
systemd 244.3-2
期待どおりに動作します。