Ubuntu 8.04 LTS(サーバーエディション)を使用していますが、USBサムドライブを接続したときに動作するようにudevルールを作成する必要があります。ただし、ドライブのファイルシステムに応じて異なるアクションが必要です。 ID_FS_TYPE環境変数を使用して、ドライブ上のファイルシステムを確認できることはわかっています。
見つかった指示に従って ここ 、私はダミーのudevルールをそのように試します:
KERNEL!="sd[a-z][0-9]", GOTO="my_udev_rule_end"
ACTION=="add", RUN+="/usr/bin/touch /tmp/test_udev_%E{ID_FS_TYPE}"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/usr/bin/touch /tmp/test_udev_it_works"
LABEL="my_udev_rule_end"
ただし、サムドライブをvfatファイルシステム(両方のルールをトリガーする必要があります)に接続すると、/tmp/test_udev_vfat
というファイルになります。これは、最初のルールが正常にトリガーされたことを意味しますandID_FS_TYPE環境変数が「vfat」であるが、他のファイルがないため、ID_FS_TYPE環境変数が「vfat」であることはわかっているが、表示されない一致するかどうかを確認します。
グーグルしてみましたが、ほとんどすべての結果がENV{ID_FS_TYPE}=="vfat"
が機能すると想定しているようです。また、Ubuntu 10.04 LTSサーバーでまったく同じudevルールをテストしたところ、同じ結果が得られました。
私はおそらく非常に単純なものが欠けていますが、私はそれを理解していません。 ENV {ID_FS_TYPE}での一致を妨げる私のudevルールの何が問題になっているのか誰かがわかりますか?
ありがとう。
ファイルの先頭に次の行を追加してみてください。
IMPORT {program} = "/ sbin/blkid -o udev -p%N"
この行を追加しようとしましたか?
KERNEL == "sd [a-z] []"、IMPORT {program} = "/ lib/udev/vol_id/dev /%k"
「vol_id」は他の場所にあります。