Re: автомонтирование флэшки на /dev/sda и /dev/sda1
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
Сам скрипт
#!/bin/bash
# This file must be executable to work! chmod 755!
key="$1"
FDISK="/sbin/fdisk"
[ -x $FDISK ] || exit 1
scsi=$(echo $key | sed -e 's/[0-9]\+$//')
$FDISK -l /dev/$scsi 2>/dev/null | grep "^/dev/$key" | \
sed -e 's#\([^ \t]\+\)[* \t]\+\([0-9]\+\)[ \t]\+\([0-9]\+\)[ \t]\+\([0-9]\+\)[ \t]\+\([a-f0-9]\+\)[
\t]\+.*#\1 \5#g' | \
while read dev id
do
dir=$key
case $id in
c|6)
echo -e "-fstype=vfat,sync,iocharset=koi8-r,quiet,gid=floppy,dmask=0002,fmask=0113 :$dev" ;;
83)
echo -e "-fstype=ext2,nodev,noatime :$dev" ;;
esac
done
# eof
Естественно надо ссылки на /var/auto/usb/sd[a-d][0-9] прописать куда-нибудь
(у меня например ~/mnt/usb/).
Скрипт мягко говоря не оптимален, определяет тип файловой системы по типу раздела,
что не всегда будет работать, но если на досовских разделах будет vfat, а на линуксовых ext2 -
то жить можно.
Если есть пожелания - пишите, поправлю.
Reply to: