単純なudevルールが機能しない

単純なudevルールが機能しない

この単純な udev ルールの何が問題なのでしょうか?

KERNEL=="sdc1", ACTION=="add", RUN+="/bin/mkdir /tmp/folder1"

USB スティックを接続しても、ルールは何も実行されません。

答え1

いいえ、フォルダを作成できない可能性があります。

sd??パーティションがマウントされる前にカーネルによってノードが作成されるためです。

スクリプトを使用するなど、別のアプローチを探す方がよいでしょうudisks

答え2

UUID マッチングのルールを使用します。

KERNEL=="sd??", ENV{ID_FS_UUID}=="<the_uuid>", RUN+="/bin/mkdir /tmp/folder1"

以下のコマンドでUUIDを取得します

udevadm info /dev/<usb_stick_partition> | grep ID_FS_UUID=

$ udevadm info /dev/sda1 | grep ID_FS_UUID=
E: ID_FS_UUID=c44a008d-58b2-467d-8814-f06973e49dcb

したがって

KERNEL=="sd??", ENV{ID_FS_UUID}=="c44a008d-58b2-467d-8814-f06973e49dcb", RUN+="/bin/mkdir /tmp/folder1"

関連情報