Настройка монтирования устройств при подключении с помощью hal+udev+KDE

Knoppix

Модераторы: Warderer, Модераторы разделов

Ответить
selivan
Сообщения: 27
ОС: Debian GNU/Linux testing

Настройка монтирования устройств при подключении с помощью hal+udev+KDE

Сообщение selivan »

Надоело мне каждый раз при вставке флешки или диска кликать мышкой, решил что оно должно само всё делать. Наваял такое вот:

/etc/udev/rules.d/10_local.rules:

Код: Выделить всё

#insert rule
BUS=="usb", SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="add", NAME="%k", GROUP="disk", RUN+="/etc/udev/scripts/my-flash-mount.sh add %k"
#eject rule
SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="remove", RUN+="/etc/udev/scripts/my-flash-mount.sh remove %k"


/etc/udev/my-flash-mount.sh

Код:

#!/bin/bash # using: # flash-mount.sh add|remove sdc1 LOG=/var/log/udev # try to mount only partitions (sdb1) , not whole disk (sdb) DEV=`echo $2 | sed -n '/^sd[a-z][1-9]/p'` if [ -z $DEV ]; then exit; fi # get dir name to mount to # DIRTY CODE !!! FIXME f=`mktemp` { for i in /media/usbdisk[0-9]*; do echo `echo $i | cut -dk -f2`; done } | sort -n | tail -1 > $f NUM=`cat $f` if [ $NUM == '[0-9]*' ]; then NUM=0; fi DIR="/media/usbdisk$NUM" # DEBUG echo ------- >> $LOG echo '$DEV:'$DEV >> $LOG echo '$DIR:'$DIR >> $LOG if [ $1 = 'add' ]; then echo `date` >> $LOG echo "Mounting $DEV" >> $LOG { if [ ! -d $DIR ]; then mkdir -m 750 $DIR; fi } >> $LOG chown root:plugdev /media/$DEV >> $LOG mount /dev/$DEV $DIR -t vfat -o users,dmask=007,fmask=117,utf8,noatime,quiet 2>&1 >$LOG elif [ $1 = 'remove' ]; then echo `date` >> $LOG DIR=`mount | fgrep $DEV | cut -d' ' -f 3` echo "Unmounting $DEV" >> $LOG umount /dev/$DEV 2>&1 >> $LOG rmdir $DIR >> $LOG fi


Оно даже заработало и стало примонтировать вставляемые флешки, но при попытке сделать в KDE для этой флешки "Safely Remove" оно ругается:

Код: Выделить всё

Unfortunately, the device system:/media/sdb1 (/dev/sdb1) named 'selivan_flash' and currently mounted at /media/usbdisk0 could not be unmounted.
Unmounting failed due to the following error:
Device to unmount is not in /media/.hal-mtab so it is not mounted by HAL


То есть заниматься монтированием должен всё-таки hal. Как же это можно настроить?

З.Ы. Кусок скрипта про имя каталога для монтирования очень кривой
З.З.Ы. KDE 3.5.8
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: Настройка монтирования устройств при подключении с помощью hal+udev+KDE

Сообщение KernelPanic »

Ну, теоретически, все просто, так как всего лишь:
Device to unmount is not in /media/.hal-mtab so it is not mounted by HAL
То есть твой скрипт должен добавлять запись в ентот файл и все.

Хотя это, в принципе, ни к чему, так Safety Unmount все равно мышей. Но полезно поиздеваться над халом ;)
Спасибо сказали:
selivan
Сообщения: 27
ОС: Debian GNU/Linux testing

Re: Настройка монтирования устройств при подключении с помощью hal+udev+KDE

Сообщение selivan »

Гугль убедил-таки меня что монтировать должен hal. Вот только нигде не встречается решения проблемы "hal не монтирует", все решают "hal монтирует не так/не туда/не то". Кто-нибудь с Debian, KDE и без такой проблемы плиз скиньте в топик /etc/hal

Safely Remove всегда будет мышкой, компьютер не может догадаться когда мне захочется вынуть флешку, а вот монтировать при втыканни он вполне может. Второй кусок скрипта просто чтобы вынутая неотмонтированная флешка отмонтировалась если возможно
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: Настройка монтирования устройств при подключении с помощью hal+udev+KDE

Сообщение KernelPanic »

Чет я не понял, у тебя HAL не монтирует или не отмонтирует флэхи, или может и то и другое?
Я прекрасно понял для чего твой скрипт и правило для UDEV тоже ;).
Сообщение, которое тебе выдает HAL, вкратце можно написать так:
"Устройство такое-то, примонтированное туда-то, не может быть отмонтированно ХАЛом, так как нет записи для этого устройства в файле /media/.hal-mtab (тот есть он полагает, что ты не халом монтировал, что верно)".
Теоретически для обмана хала можно соответствующую запись для устройства в данный файл вставлять скриптом (посмотри, какие записи для устройств делает хал в этом файле).
Спасибо сказали:
selivan
Сообщения: 27
ОС: Debian GNU/Linux testing

Re: Настройка монтирования устройств при подключении с помощью hal+udev+KDE

Сообщение selivan »

Монтирует и отмонтирует, но только если вручную в апплете для media:/ щёлкнуть ''Mount"/"Umount". Я хочу чтобы при вставке флешки она сразу автоматически монтировалась. Можно конечно сказать скрипту писать в .hal-mtab , но что-то записывать в служебные файлы демона - некрасивое решение. И потом придется ещё писать скрипты и для CD/DVD. hal вроде как умеет всё делать сам и красиво. Вот только блин не хочет :(
Спасибо сказали:
Ответить