udev: USB接続HDDを無視する。固定pathにマウントする
次のような場合にはudevを修正すると便利でした。
やり方・手順は以下のようになります。
udev に HDD(USBメモリ) が接続された時の rule を追加する \
無視するドライブの場合: rule に udisks2 のパラメータを設定する
固定pathにするドライブの場合: rule に udisk2 のパラメータを設定する
固定pathにするドライブの場合: fstab に mount オプションを書く
OSはUbuntu 17.10です。作った rule ファイルはこちら:
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="796c505a-2a82-43ca-a6c7-e7a6f9b49107", \ ENV{UDISKS_IGNORE}="1" SUBSYSTEM=="block", ENV{ID_FS_UUID}=="a35e3b2a-278a-4b02-a4e8-4a8563ad7bba", \ ENV{UDISKS_IGNORE}="1" SUBSYSTEM=="block", ENV{ID_FS_UUID}=="1db50d00-28c1-4959-a550-98907bc751fc", \ ENV{UDISKS_NAME}="home", \ ENV{UDISKS_FILESYSTEM_SHARED}="1", \ RUN+="/bin/echo $env{ID_FS_UUID}" # ACTION=="add", ENV{DEVTYPE}=="partition", \ # ENV{ID_FS_UUID}=="1db50d00-28c1-4959-a550-98907bc751fc", \ # RUN+="/bin/mount -U $env{ID_FS_UUID}"
fstabの追加はこちら。(折り返していますが、1行です):
UUID=1db50d00-28c1-4959-a550-98907bc751fc /home2 ext4 defaults,noatime,noauto,x-gvfs-show 0 0
考察: udev共通
ファイル名は間違わないように...: .confでは動かない。.rulesが正です
持っているOSにもよってツールがいろいろあり、調べるのが面倒でした
他の方も書いていますが、この問題の対処にはいろいろな経緯があって \ ツールがいろいろあるようです。
考察: 固定pathでマウントする
autofsも方法の一つとしてあります。ただ、rpc使うし、追加installもあるので 最初から入っているudisks2で対処してみました
udev に rule を書く例がありますが、 \ systemd の MountFlags=slave という記述があると mount できなくなっています
fstab の "x-gvfs-show" がないと動きませんでした。 \ 逆に UDISKS_FILESYSTEM_SHARED が必要かどうかわかりません
UDISKS_NAME は、 tune2fs とかで partition に名前つけた場合に使えます。 \ ただ、それだと名前が被ることが想定されるので、使い方によりそうです。
私の場合は、単一のデバイスに限定したかったのでUUIDにしました。 [3]
考察: 無視
オプション名が udisks2 になってから、 UDISKS_IGNORE に変わっています
その他
-
fstab 編集中に UUID が知りたいときは:
:r!blkid /dev/sda2
などすると良いと思います。
fstab の "x-gvfs-show" ですが、システムツールの"ディスク"で 何かのオプションをいじったときに付きました。たまにはGUIもいいですね...
-
systemd の MountFlags=slave を MountFlags=share にすれば \ udevのみでも対応はできますし、マウントのダイアログも出てきません。
ただ、セキュリティの問題で slave としているのでいつまでこの方法が 通用するのかわからないのと、やりたいのは1つのUSB-HDDなのに 全般に影響を与えるのはどうかな? というのもあってudisks2にしました。
コメント
Comments powered by Disqus