|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 08 Nov 2006 00:59:21 To : All Subject : автоматическое монтирование usb flash -------------------------------------------------------------------------------- Привет! ftp://www.kuzbass.ru/pub/freebsd/attach-umass-0.1.tgz shell-cкрипт, автоматически монтирующий USB Flash при втыкании флешки и отмонтирущий при выдергивании, для FreeBSD. В текущем варианте заточен под наиболее распространенный случай: на флешке в первом разделе лежит FAT. В качестве foolproof-меры флешка по дефолту монтируется в r/o. Поэтому отмонтируется при выдергивании через umount -f (все равно она уже выдернута). Требует запущенного devd (по дефолту в шестерке), поэтому в четверке работать не будет, под 5.x не тестировался, но работать должен если devd там живой. Аналогично на 7.0-CURRENT. Предполагает использование USB посредством CAM (по дефолту), то есть когда доступ к umass(4) идет через da(4). Установка: tar xvzf attach-umass-0.1.tgz cd attach-umass make install Удаление: make deinstall в том же каталоге. После распаковки и перед инсталляцией можно заглянуть в attach-umass, там в начале скрипта есть параметры: DEV=/dev BASE=/usb USERGROUP=owner:group MODE=0755 DEV определяет, куда смонтирована devfs, BASE - где создавать mount points для флешей (скрипт создат $BASE, если не её существует) USERGROUP и MODE - права доступа для новых mount points, fstab не используется. Еще можно посмотреть/поправить по вкусу функции do_mount/do_umount там же, они вызываются для собственно монтирования/демонтирования, им первым аргументом передается имя устройства в виде /dev/daN, вторым полное имя точки монтирования (возможны пробелы в имени!). И там же функции notify_success и notify_failure, они вызываются при успешном/неуспешном монтировании/отмонтировании и получают аргументом строку do_mount/do_umount соответсвенно. По дефолту выдают один system bell при успехе и два при неуспехе, можно тут вставить проигрывание мелодии через sox/mpg123/mplayer/whatever. Точка монтирования это подкаталог в $BASE с именем в формате: название-daN, при этом "название" - это как устройство само себя называет. Hапример: $ ls -l /usb total 52 drwxr-xr-x 1 eugen all 16384 1 янв 1980 EM732X MP3 Player 1.00-da1 drwxr-xr-x 1 eugen all 4096 1 янв 1980 Generic USB Flash Disk 0.00-da0 drwxr-xr-x 1 eugen all 16384 1 янв 1980 Sony Sony Camcorder 5.00-da2 При выдергивании флешки каталог размонтируется и удаляется. Еще внутри $BASE при монтировании создаются файлы вида .umassN, туда для последующего успешного размонтирования пишется соответствующие имя девайса и точки монтирования (после выдергивания определить соответствие umass/da будет уже крайне затруднительно без такого файл), они тоже удаляются после размонтирования. Приветствуются комментарии, особенно интересно узнать, насколько корректно работает скрипт на машинах, использующих SCSI HDD, то есть у которых есть девайсы daN помимо флешей. Теоретически работать должно и там ;-) Eugene -- Прекрасны тонко отшлифованная драгоценность; победитель, раненный в бою; слон во время течки; река, высыхающая зимой; луна на исходе; юная женщина, изнуренная наслаждением, и даятель, отдавший все нищим. (Дхарма) --- slrn/0.9.8.0 (FreeBSD) * Origin: Svyaz Service JSC (2:5006/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/260930dee11de.html, оценка из 5, голосов 10
|