暗号化されたパーティション/ドライブのsystemd "自動マウント"を手動でトリガーする方法は?

暗号化されたパーティション/ドライブのsystemd

crypttabシステム起動時に(LUKSファイルキーを使用)、自動的にマウントされるように2つのLUKS暗号化ドライブを設定しました。うまくいきますが、残念ながらドライブの1つを切断してそれを自分のPCに再接続すると(Fedoraを実行)、「自動復号化」プロセスは実行されず、手動でインストールしてから削除する必要があります。システム起動時にsystemdがトリガするのと同じプロセスをトリガし、メッセージが表示されたときにドライブが自動的にマウントされ、復号化されるようにどのコマンドを使用できますか?それとも失敗した場合、systemdに自動的に復号化してインストールさせることができますか?

ちなみに、ドライブの設定に使用したチュートリアルは次のとおりです。https://www.golinuxcloud.com/mount-luks-encrypted-disk-partition-linux/

ベストアンサー1

の各エントリは、/etc/crypttab起動時または実行時にsystemdによって自動的にsystemd-cryptsetup-generator単位に変換されますsudo systemctl daemon-reload。たとえば、LUKSファイルシステムのUUIDが1111...(完全には表示されていない)エントリであるとします。

mytest /dev/disk/by-uuid/1111...  /etc/luks/mykeyfile luks

依存関係などとともにファイルが生成されます。新しいディスクにUUIDが表示されると、デバイスが起動します。/run/systemd/generator/[email protected]BindsTo=dev-disk-by\x2duuid-1111....devicecryptsetup

/etc/fstab同様に、systemdのすべてのエントリは自動的にsystemd-fstab-generator単位に変換されます。たとえば、アイテム

/dev/mapper/mytest /mnt/mytest ext4 defaults

ファイルが存在すると/run/systemd/generator/mnt-mytest.mount(おそらくudevを介して)マウントを生成する/dev/mapper/mytest(によって生成される)ファイルが生成されます。cryptsetup

次のコマンドを使用して、両方のデバイスの状態を確認できます。

systemctl status systemd-cryptsetup@mytest mnt-mytest.mount

通常、復号化とマウントが正常に完了すると、次のように表示されます。

   Active: active (exited)
   Active: active (mounted)

ディスクを完全に削除するには、まず次のコマンドを発行します。

sudo systemctl stop mnt-mytest.mount
sudo systemctl stop systemd-cryptsetup@mytest

ディスクを再挿入すると、自動的にマウントされます。


これを行わずに取り付けられたディスクを取り外すと、デバイスが故障したままになる可能性があります。journalctl -fメッセージを表示するには、systemdログを追跡してください。

場合によっては、アンマウントせずにプラグを抜くと、カーネルはファイルシステムのI / Oエラーに関するメッセージを表示しますが、ファイルシステムを正常にアンマウントし、crypt detachでデバイスを正常にシャットダウンします。この場合、デバイスを再接続すると、介入なしに自動的に正常にインストールされます。

ただし、時にはI / Oエラーの後、カーネルはファイルシステムを読み取り専用に再マウントすることを決定します。これにより、デバイスが使用中であるため、失敗するcrypt detachコマンドに問題が発生します(systemdによってアンマウントが必要なときにマウントされます)。通常、ファイルシステムがマウント解除されるため、競合の問題があるようです。デバイスを再接続すると、復号化によってボリュームがすでに有効になっていると表示されるため、マウントがトリガーされないように見えます。

この場合、停止したジョブの障害状態をクリアし、分離コマンドを手動で実行すると機能するようです。デバイスを再接続すると、復号化メカニズムが正常に起動し、インストールが完了します。コマンドは

sudo systemctl reset-failed systemd-cryptsetup@mytest
sudo /usr/lib/systemd/systemd-cryptsetup detach mytest

dev-mapper-mytest.device状態を確認できるデバイスもあります。分離が失敗した場合はアクティブのままですが、上記の手動分離コマンドを実行した後は無効になります。

おすすめ記事