cryptsetupとキーファイルを使用して外付けハードドライブを暗号化しました。今私の目標は、自動的に復号化してプラグインにインストールすることです。一度はこれでやった。ブログ投稿(残念ながらドイツ語)。これは以前のUbuntu 16.04システムで機能しましたが、Focalにアップグレードした後はもう機能しません。具体的に私がしたことは次のとおりです。
/dev/mapper/extdrive /mnt/extdrive xfs defaults,noauto 0 2
に追加してください/etc/fstab
。ACTION=="add", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", ATTRS{serial}=="123456789", RUN+="/sbin/cryptsetup --key-file /root/.kf luksOpen $env{DEVNAME} extdrive"
に追加する/etc/udev/rules.d/85-extdrive.rules
ACTION=="add|change", SUBSYSTEM=="block", ENV{DM_NAME}=="extdrive", RUN+="/bin/mount /dev/mapper/$env{DM_NAME}"
に追加する/etc/udev/rules.d/85-extdrive.rules
ドライブはluksOpenで開かれていますが、マウントされていないようです。つまり、「Add|Change」ルールは実行されません。自動マウントが失敗した理由を見つける方法は?そのコマンドを手動で実行すると、すべてが大丈夫に見えます。ボーナスのヒント:この方法が16.04では機能しましたが、20.04では機能しなくなったのはなぜですか?
ありがとうございます!
答え1
mount
UDevは独自のマウントネームスペースで実行されるため、UDevルールでは機能しません。代わりに使用する必要がありますsystemd-mount
。このウィキペディア記事もっと学ぶ。
udevのマンページから:
デフォルトのサンドボックスはsystemd-udevd.serviceに適用されるため、ネットワークにアクセスしたりファイルシステムをマウントまたはマウント解除したりするプログラムは、udevルール内で実行できません。
これは比較的新しい変更なので(約3年前と思われます)、16.04にはまだ適用されていないと推測されます。