Udev и Автомантирование
Настроил по хауту монтировниае через udev (намного стабильнее глючного hal, который под xfce4 у мекня ведет себя черти как). Вообщем главное действующее лицо скрипт:
#!/bin/bash
LOG="/var/log/udev"
sleep 3
DEV=`echo $2 | sed -n '/^sd[a-z][1-9]\?/p'`
if [ "$1" = "add" ]; then
if [ "$DEV" != "" ]; then
echo "--- `date` ---" >> $LOG
echo "Mounting /dev/$DEV" >> $LOG
mkdir /media/$DEV >> $LOG 2>&1
chmod a+rwx /media/$DEV >> $LOG 2>&1
mount /dev/$DEV /media/$DEV -o flush,noauto,users,utf8=true,codepage=1251,iocharset=cp1251 >> $LOG 2>&1
fi
elif [ "$1" = "remove" ]; then
if [ "$DEV" != "" ]; then
echo "--- `date` ---" >> $LOG
echo "Unmounting /dev/$DEV" >> $LOG
umount /dev/$DEV >> $LOG 2>&1
rm -rf /media/$DEV >> $LOG 2>&1
fi
fi
вот, все нормально (почти). Есть проблемы
Все работает, автомаунт проходит, но что не удобно:
1. В папке /media создается папки например sdc (пустая) и sdc1. Хотелось бы только одну папку (именно где данные).
2. Нет возможности записи из под простого юзера (из под рута - все отл).
вот что говорит dmesg
dmesg | tail
sd 41:0:0:0: [sdc] Assuming drive cache: write through
sd 41:0:0:0: [sdc] 4075520 512-byte hardware sectors (2087 MB)
sd 41:0:0:0: [sdc] Write Protect is off
sd 41:0:0:0: [sdc] Mode Sense: 00 00 00 00
sd 41:0:0:0: [sdc] Assuming drive cache: write through
sdc: sdc1
sd 41:0:0:0: [sdc] Attached SCSI removable disk
sd 41:0:0:0: Attached scsi generic sg3 type 0
usb-storage: device scan complete
FAT: Unrecognized mount option "utf8=true" or missing value
Может это что-то прояснит...
3. Еще очень хочется (идея есть, не знаю как реализовать) сделать так, чтобы директории в /media создавались таким образом:
Чтобы не безликое sdc1, sdb1... вообщем не sdX а бралось название из /dev/disk/by-id/ Там много фалов - ссылок на устройства, вот как-нибудь оттуда.
Пример:
lrwxrwxrwx 1 root root 10 Май 7 22:56 usb-JetFlash_TS2GJF168_a66578835b3582-0:0-part1 -> ../../sdc1
Вот чтоб это usb-JetFlash_TS2GJF168 и было названием папки в /media.
Всем спасибо!
- Для комментирования войдите или зарегистрируйтесь
fake post
fake post
По пункту 3
У себя я в /mnt создаю каталоги типа hda1 и в нем монтирую /dev/hda1, а в /media создаю ссылку на /mnt/hda1, но она уже создаётся по имени тома или если в корне носителя распологается файл LABEL=FANTOO, то берется FANTOO в качестве имени тома. То есть имеем симлинк /media/FANTOO, который ссылается на /mnt/hda1. Так по-моему достаточно удобно и универсально.
А скиптик я взял на заметку. Мне понравилось. Тем более в HAL и udev вообще пока не силен.
тут надо
тут надо вручную монтировать, а хочется этого избежать.
by-uuid...
Эт только с флЭшкой у тебя так красиво получается, а если разделы с жесткого диска?! Видал какие uuid'ы?! Зачем оно?!
А впрочем, если оно тебе надо, то смотри в сторону sed и regexp...
нет, не by-uuid а
нет, не by-uuid а by-id, там вот все и есть.
Не имеет значения....
Все остается sed...
Больше всего
Больше всего меня интересует пункт 2. Почему я не могу записывать на флешку не от рута...
У меня в fstab..
/dev/sdb1 /mnt/flash vfat noauto,umask=0022,users,iocharset=utf8 0 1
попробуй users...
Итак,
Итак, наконец-то пункт 2 отпал. Изменил я скрипт немного, поменял в нем опции монтирования и получилось:
chmod 0777 -R /media/$DEV >> $LOG 2>&1
mount /dev/$DEV /media/$DEV -o flush,utf8=true,umask=0000,iocharset=cp1251 >> $LOG 2>&1
chmod 0777 -R /media/$DEV
вот, теперь пишет любой юзер.
И еще такой момент, смотрите:
ls -l /dev/disk/by-label/
итого 0
lrwxrwxrwx 1 root root 10 Май 8 2008 media -> ../../sda4
lrwxrwxrwx 1 root root 10 Май 8 06:49 USBFLASH -> ../../sdc1
вот как бы сделать так, (написать в скрипте) по тому, куда ссылается ссылка (в данном примере ../../sdc1) восстановить имя файла (USBFLASH). Вот, а этим именем USBFLASH обозвать папку в /media. Вот это было бы просто шикарно.
это нужно в
это нужно в скрипте место поменять где оно имя устройства отлавливает для монтирования, и поменять там с имени устройства на метку. но метка есть не у всех флэшек
убейте
убейте xfce.
монтированием занимается не хал, хал лишь дает сообщение и информацию об устройсте.
а монтирует уже программа, которая слушает.