LINUX.ORG.RU

Автомонтирование flash, не все благополучно.

 ,


0

1

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
Втыкаю телефон, подключается только внешний носитель ведроида, имеющий отдельный раздел. Выглядит это так lsblk -f
NAME   FSTYPE  LABEL            UUID             MOUNTPOINT

sdc                                                                  
└─sdc1 vfat    FLASH            078F-1403        /media/FLASH
sdd    vfat    ANDROID          8708-1BF1 
udev очевидно не опознает sdd. В смысле строка
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 не высыпет никаких ошибок.

Кстати, долго нервничал по этому поводу, не понимая, почему монтирование срабатывает не всегда. Потом, когда заметил что только до первого некоректного отключения, понял, почему столько боли звучит в финале того анегдота про флопик, девушку секретаршу и линукс.

Короче при повторном втыкании телефона скриптец уже не монтирует. Точка будет типа занята. Вот если вручную отмонтировать, и снова телефон воткнуть, снова определится диск имеющий раздел. Че делать? Учться самому коректно выключать флешки, или учить скриптец как-то постоянно проверять правильность списка монтажа фс. Как оно философски правильнее? И как реализуется технически?

Я думаю что все дело в том, что твой телефон в системе виден не как диск таковой, а как МТР устройство.

MTP, or the Media Transfer Protocol, is a USB device class which is used by many mobile phones (e.g. Android 3+ devices) and media players (e.g. Creative Zen).

Это раз. Что касается отмонтирования, то man по команде umount должен рассказать тебе что есть функция форсированного отмонтирования. Будет убирать все точки монтирования даже если они используются, все кроме корневого раздела )

Удачи.

yakunin ()

Я просто держу запущенный pcmanfm. Зачем переизобретать в миллионный раз это автомонтирование флешек?

NeverLoved ★★★★★ ()

Так я не понял важнейшего посыла вопроса. Что-то типа а будет ли конкретно эта старая говнофлеш работать с этим (вот конкретно с этой моделью телефона)? Чтоли, андроид ещё «та-дам!»(!) как минимум свою прослойку (2) монтирования имеет, и судя по срачкам:«media/$ID_ID..», fs показывает просто чо там с файловой, и сё!В ведре так по:%d и по:%s примонтируется, а не по: ",|… -q".

anonymous ()
Ответ на: комментарий от NeverLoved

Зачем

Не «зачем», а «почему». Потому что не знаю ответа сам, ни в том ни в другом варианте постановки. Для меня это однозначно вопрос «ПОЧЕМУ». Почему я стремлюсь все держать под контролем? Может потому, что натура рациональная, знает что так надежнее и плотнее. В конце концов не могу вспомнить такого, чтобы пришлось об этом жалеть.

Csandriel ()
Ответ на: комментарий от anonymous

Короче, обе флешки работают нормально, если автомонтируются пакманом. Правда, у второй (которая не монтируется), которая внутренняя типа, в списке папок есть одна с нечитаемым названием. Может ФС действительно побита. Но это не принципиальный в данном случае вопрос, учитывая раннее изложенное.

Csandriel ()
Ответ на: комментарий от yakunin

телефон в системе виден не как диск таковой,

Не думаю. Если перечисляется lsblk. Она отвечае только за блочные устройства. И ей в общем-то плевать, что там за - телефон или нигерский кассетник.

Csandriel ()
Ответ на: комментарий от yakunin

то man по команде umount должен рассказать тебе

Я интересовался. Сказал проскочила тема что он мне должен. Он возражал пока ему колено не сломали. Короче, судя по всему все-таки не должен. А если должен, то пошли ломать колени гуглу. Он перед нами в неоплатном долгу.

Csandriel ()

Мне все интересно, а нафейхоа все трахаются с правилами udev и самописными скриптами, когда можно накатить тот же udevil и забыть?

DeadEye ★★★★★ ()
Ответ на: комментарий от DeadEye

Почему воин, заресший недельной щетиной, так любит точить верный нож, хотя за спиной у него полуторадециметровый миномет?

Csandriel ()
Ответ на: комментарий от Csandriel

Потому что неумение обращаться с минометом - это судьба.

DeadEye ★★★★★ ()
Ответ на: комментарий от Csandriel

Потому что в разгрузке воена помимо рожков и сникерсов есть еще существенное нечто. В них пыль множества пройденных километров. В них опыт, облазящий комками грязи с комка. Это все то, что дает ему право с хищно-мечтательной улыбкой точить нож. Будь он поэтом, то слагал бы стихи в этот час. Но он не поэто. Все что он умеет - ждать и готовиться к тому, чего ожидает.

Csandriel ()
Ответ на: комментарий от DeadEye

Ты хорошая пони. Хороших поней ждет рай. А все же, я когда-то заставил модем запускаться одними низкоуровневыми средствами. И я рад этому: решение абсолютно без перемен перенеслось на слаку. То же самое хотет и в отношении флешек. Я не планирую в слаке держать какие-то файлменеджеры кроме mc.

Csandriel ()

Это что-то с чем-то. Все очень странно. Сейчас сделал раздел на внутреннем накопителе. fat16. И? И полтергейст. lsblk -f

sdd                                                                  
└─sdd1 vfat    FLASH    078F-1403 /media/FLASH
sde                                                                  
└─sde1 vfat    ANDROID  6BAD-00F8 /media


Где, я спрашиваю, созданная папка с меткой? Может перезагрузка телефона что-то решит. Может он метку пока не вкурил. Только что создана. Но вот такая схема монтирования чем-то прикольна. Диск в диске.

Csandriel ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.