Automount

Материал из ALT Linux Wiki

Как сделать автомонтирование (после отказа от HAL) с помощью udev и без использования оконных менеджеров

Скрипт нашел на ([1])

1. создать файл /etc/udev/rules.d/10-local-usb-storage.rules следующего содержания

SUBSYSTEM!="block", GOTO="end_rule" KERNEL!="sd[b-z][0-9]", GOTO="end_rule" ACTION=="add", RUN+="/usr/bin/mount_media %k plugdev" ACTION=="remove", RUN+="/usr/bin/mount_media %k unplugdev" LABEL="end_rule"

2. создать файл /usr/bin/mount_media

  1. !/bin/sh
  2. License?
  1. UUID раздела
  2. PART_UUID="`/sbin/blkid -o value -s UUID /dev/${1}`"
  1. LABEL раздела

PART_LABEL=$(/sbin/blkid -p -o value -s LABEL /dev/${1} | /bin/sed 's/ /_/g')

  1. FS раздела

PART_FS=$(/sbin/blkid -o value -s TYPE /dev/${1})

  1. Проверить подключается устройство или отключается?

if [ "$2" = "plugdev" ] then /bin/mkdir /media/${1}.${PART_LABEL}

  1. Определить, не смонтирован ли уже раздел?
  2. if [grep -e ${1} -e mount]
  3. then printf Всё смонтировано, я в отбой. && exit 0

case ${PART_FS} in

vfat) /bin/echo /dev/${1} /media/${1}.${PART_LABEL} vfat shortname=lower,iocharset=utf8,noatime,users,dmask=000,fmask=111 0 0 >> /etc/fstab /bin/mount /dev/${1}

ntfs) /bin/echo /dev/${1} /media/${1}.${PART_LABEL} ntfs-3g relatime,users,dmask=000,fmask=111 0 0 >> /etc/fstab /bin/mount /dev/${1}

  • )

/bin/echo /dev/${1} /media/${1}.${PART_LABEL} auto users 0 0 >> /etc/fstab /bin/mount /dev/${1}

esac else /bin/umount -l /dev/${1} /bin/rmdir --ignore-fail-on-non-empty "$(/usr/bin/awk "/${1}/ { print \$2 }" < /etc/fstab)" /bin/sed "/\/dev\/${1}/d" -i /etc/fstab fi

exit 0

3. Все должно работать. (при добавлении скрипта проверить пути)