LINUX.ORG.RU

Автомонтирование флешки


0

0

Сейчас стоит вот так: "/dev/sda1 /mnt/flash subfs fs=vfat,rw,users,umask=000 0 0"

Но это решение обладает парой минуксов.

1. Насколько я понимаю, флешка не обязана быть /dev/sda1, в конце-концов я могу воткнуть вторую флешку.

2. Неудобно размонтировать - после umount надо снова замаунтить subfs. Т.е umount /mnt/flash ; mount /mnt/flash. Не критично, но и не красиво.

Хотелось бы совершенно тупо: втыкаю флешку, если это - флешка, то управление получает скрипт с именем файла устройства, который ищет первую свободную точку монтирования (/mnt/flash0, /mnt/flash1, etc) ну и монтирует ее туда, без всяких subfs. Соответственно, эти два минуса уходят.

Соответственно, вопрос. Можно ли для этого приспособить, например, hotplug? Причем без хаков, т.е тем способом, которым это подразумевается делать.

★★★★

Ага, почитал FAQ, полезно. :) Вопрос почти ушел, кроме одного - а все же, если я воткну вторую флешку?

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

есть решение: dbus+hal полное руководство читать на forums.gentoo.org

anonymous
()

Через hotplug примерно так:


/etc/hotplug/scsi_device.agent
%<---------------------------------------------------
#!/bin/bash
                                                                                                                    
#exit
log=/dev/null
#log=/tmp/`basename $0`
                                                                                                                    
exec >> $log
exec 2>> $log
                                                                                                                    
set
echo -- $@ --
                                                                                                                    
DP=/sys$DEVPATH/device
                                                                                                                    
lun=`echo $DEVPATH | sed -e 's/.*\/\([0-9]*\):\([0-9]*\):\([0-9]*\):\([0-9]*\)/\/dev\/scsi\/host\1\/bus\2\/t
arget\3\/lun\4/g'`
echo lun=$lun
                                                                                                                    
case $ACTION in
        'add')
                sleep 1
                if [ -b $lun/part* ]
                then
                        echo ----------------------
                        for dev in $lun/part*
                        do
                                model=`cat $DP/model | cut -d' ' -f1`
                                mp=/mnt/$model/`echo $dev | sed -e 's/.*part\(.*\)/\1/'`
                                echo dev=$dev mp=$mp
                                                mkdir -p $mp
                                                mount -osync $dev $mp
                        done
                        echo ----------------------
                fi
        ;;
        'remove')
                        for dev in `mount | grep ^$lun | cut -d' ' -f3`
                        do
                                umount -f $dev || ( fuser -km $dev; sleep 1;    umount -f $dev )
                        done
        ;;
esac
                                                                                                                    
# vim:ts=2:sts=2:
%<---------------------------------------------------

Но есть недостаток - вначале вставляешь карточку, потом ридер.

qwe ★★★
()

qwe прав, лучший вариант hotplug + submount, дабы не было гемороя с размонтированием говорим sync

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

>qwe прав, лучший вариант hotplug + submount, Насколько я понимаю, тогда можно и без hotplug - замаунтить submount на все возможные устройства. А если с hotplug (скрипт qwe, mount/umount на втыкании/вытыкании) - зачем тогда submount?

Мне понравился вариант с udev - каждая флешка получает новое уникальное имя устройства. Осталось только научиться их грамотно маунтить. :)

>дабы не было гемороя с размонтированием говорим sync В таком случае что будет, если выдернуть одну флешку и воткнуть другую (без remount)?

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