接続が切断されたとき、または接続されたときにドライブを自動的にマウント解除/マウントします。

接続が切断されたとき、または接続されたときにドライブを自動的にマウント解除/マウントします。

systemd.mountコンピュータを再起動したり、デバイスをリロードしたりせずにデバイスがドライブの状態を検出できるようにする方法はありますか?そうでなければ、これを達成する他の方法はありますか?

自動でやりたいです。mount a drive when it is inserted自動的にunmount it when it is disconnected

私の現在のsystemd.mount設定:

[Unit]
Description=var-test.mount

[Mount]
What=LABEL=TEST_LABEL
Where=/var/test
Type=ext4
Options=defaults,noatime

[Install]
WantedBy=multi-user.target

これをしたいのは、ドライブが切断されてもマウント解除されないためです。そのため、たとえば/dev/sda1マウントされたままになりますが、アクセスできません。ドライブを接続すると、新しいパーティションが作成されます。たとえば、/dev/sdb1すでに使用されているため、同じマウントポイントにマウントすることはできません。

systemd.mountドライブを取り外す前にデバイスを停止してドライブを再接続した後、デバイスを起動してこの問題を回避することができました。しかし、これは自動化したいステップです。

編集する:下のリンクされた記事から良い答えを得たようです。私が調べてみましょうudev rules。おそらく systemd.mountudev rulehttps://unix.stackexchange.com/a/44509/540247

答え1

udevルールを使用すると私に適しています。私はインストールデバイスを実行するためにudevルールを作成しました。したがって、デバイスが接続されるたびにインストールされます(下記のudevルールで指定されているデバイスプロパティ)。デバイスの接続が切断されるたびに削除されます。

次のようになります。

# Mount when disk is inserted
KERNEL=="sd[a-z][0-9]", KERNELS=="ata[12]", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="ext4", ENV{ID_FS_LABEL}=="TEST_LABEL", ACTION=="add", RUN+="/bin/systemctl restart var-test.mount"

# Unmount device when removed (Edit: don't do this)
KERNEL=="sd[a-z][0-9]", KERNELS=="ata[12]", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="ext4", ENV{ID_FS_LABEL}=="TEST_LABEL", ACTION=="remove", RUN+="/bin/systemctl restart var-test.mount"

編集する:以下の@roaimaが投稿したように、接続が切断された後にデバイスをアンマウントすることはお勧めできません。ただし、上記の回避策は、デバイスが接続されている間デバイスを取り付けるためにまだ機能します。

関連情報