81-custom.flash.rules:
ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_TYPE}=="vfat", SUBSYSTEMS=="usb", ACTION=="add", ENV{MOUNT_OPTIONS}="-o gid=plugdev,dmask=007,fmask=117", RUN+="/store1/bin/mflash in %k"
ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_TYPE}=="ext?", SUBSYSTEMS=="usb", ACTION=="add", ENV{MOUNT_OPTIONS}="", RUN+="/store1/bin/mflash in %k"
#здесь в зависимости от типа файловой системы передаются моунт-опции, в переменной ENV{MOUNT_OPTIONS}
ENV{ID_FS_USAGE}=="filesystem", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/store1/bin/mflash out %k"
#а здесь типа отключение
#и вроще как %k передает от udev kernel-имя устройства.
mflash:
if [ "$1" = "in" ]; then
# The ID_FS_LABEL enviroment variable is only available
# When this script is caleld by udev
mkdir "/media/$ID_FS_LABEL"
$(mount | grep -q "/media/$ID_FS_LABEL") || mount /dev/$2 "/media/$ID_FS_LABEL"
elif [ "$1" = "out" ]; then
rmdir "/media/$ID_FS_LABEL"
else
echo "ERROR: Mode $1 should be 'in' or 'out'."
fi
NAME FSTYPE LABEL UUID MOUNTPOINT
sdc
└─sdc1 vfat FLASH 078F-1403 /media/FLASH
sdd vfat ANDROID 8708-1BF1
ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_TYPE}=="vfat", SUBSYSTEMS=="usb", ACTION=="add", ENV{MOUNT_OPTIONS}="-o gid=plugdev,dmask=007,fmask=117", RUN+="/store1/bin/mflash in %k"
Есть другой: Если телефон тупо выдернуть, а флешки были примонтированы файлменеджерами, например pcmanfm или dolphin, то они и отваливаются довольно благополучно сами, и даже потом так же благополучно подключаются.
Но вот когда файлменеджеров не запущено, и выдернешь телефон, не выполнив корректно на нем «отключение носителя», то останется не отмонтированным media/FLASH. И повтроное его втыкание к автомонтированию не приведет. Причем fmount не высыпет никаких ошибок.
Кстати, долго нервничал по этому поводу, не понимая, почему монтирование срабатывает не всегда. Потом, когда заметил что только до первого некоректного отключения, понял, почему столько боли звучит в финале того анегдота про флопик, девушку секретаршу и линукс.
Короче при повторном втыкании телефона скриптец уже не монтирует. Точка будет типа занята. Вот если вручную отмонтировать, и снова телефон воткнуть, снова определится диск имеющий раздел. Че делать? Учться самому коректно выключать флешки, или учить скриптец как-то постоянно проверять правильность списка монтажа фс. Как оно философски правильнее? И как реализуется технически?