Alexander Danilov wrote: > Mikhail Ramendik wrote: > >>В сообщении от 8 марта 2006 15:45 Artem Chuprina написал(a): >> >> >> >>>Я тоже подумал в эту сторону. Но Мише будет непросто такое написать. >> >> >>Собственно, мне надо понять две вещи - (1) что у этого скрипта должно быть на >>выходе; (2) как определить без собственно mount, является ли некое устройство >>valid block device. >> >>Склоняюсь к забиванию на автоматику. Для монтирования руками написать скрипт, >>запускаемый через sudo, будет IMHO просто. >> > > > Проблема меня заинтересовала, так у самого ноутбучный винт в usb коробке и у > жены > usb брелок. До сих пор пользовался вручныю написанным /etc/auto.usb, но там > были ограничения, > на ноутбучном винте 2 раздела (vfat/ext2) и на брелке 1(vfat), так что > очередность приходилось > учитывать. > > Посему решил проблему устранить(см скрипт /etc/auto.usb ниже). > Скрипт умеет работать только с первичными разделами > > В /etc/auto.master прописано следующее: > > /var/autofs/usb /etc/auto.usb --timeout=2 > > Сам скрипт >
[skip] > Естественно надо ссылки на /var/auto/usb/sd[a-d][0-9] прописать куда-нибудь > (у меня например ~/mnt/usb/). > > Скрипт мягко говоря не оптимален, определяет тип файловой системы по типу > раздела, > что не всегда будет работать, но если на досовских разделах будет vfat, а на > линуксовых ext2 - > то жить можно. > Если есть пожелания - пишите, поправлю. > > > Спасибо Дмитрию Федосееву за подсказку о blkid, помню что была такая программа, но забыл как называется. Скрипт упрощен (см. вложение)
#!/bin/bash # This file must be executable to work! chmod 755! key="$1" BLKID="/sbin/blkid" [ -x $BLKID ] || exit 1 fstype=$($BLKID -o value -s TYPE /dev/$key) case $fstype in vfat|msdos) echo "-fstype=$fstype,sync,iocharset=koi8-r,quiet,gid=floppy,dmask=0002,fmask=0113 :/dev/$key" ;; ext2|ext3) echo -e "-fstype=ext2,nodev,noatime :/dev/$key" ;; *) ;; esac