Ubuntu Hardy: похоже, что тестирование переменных среды в правилах udev не работает
У меня Ubuntu 8.04 LTS (серверная версия), и мне нужно написать правило udev, чтобы оно действовало после подключения флэш-накопителя USB. Тем не менее, мне нужно другое действие в зависимости от файловой системы диска. Я знаю, что могу использовать переменную среды 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
Это означает, что первое правило было успешно запущено, и что переменная среды ID_FS_TYPE - это "vfat", но у меня нет другого файла. Это означает, что, хотя я знаю, что переменная ID_FS_TYPE - это "vfat", я не могу проверьте против этого для матча.
Я попытался погуглить вещь, но почти каждый результат, кажется, предполагает ENV{ID_FS_TYPE}=="vfat"
работает. Я также протестировал точно такое же правило udev на сервере Ubuntu 10.04 LTS, и у меня тот же результат.
Я, наверное, упускаю что-то очень простое, но я просто не понимаю. Кто-нибудь видит, что не так с моим правилом udev, которое мешает его сопоставлению в ENV{ID_FS_TYPE}?
Благодарю.
2 ответа
Попробуйте добавить следующую строку в начале вашего файла:
IMPORT {program} = "/ sbin / blkid -o udev -p% N"
Вы пытались добавить эту строку?
KERNEL == "sd [az][]", IMPORT{program}="/lib/udev/vol_id /dev/%k"
Вы можете найти "vol_id" в другом месте.