Más reglas Udev para automontar dispositivos.


Pues como tengo esto un poco abandonado escribiré algo rápido, resulta que me he cambiado a Fluxbox, popular gentor de ventanas bastante ligerito, y ya no tenía “automontado” de memorias USB. Así que tome unas reglas Udev (de las cuales ya había hablado en artículos anteriores) y las extendí con un comentario que esta disponible en el foro de Gentoo, las reglas incluso montan Memory Stick Pro pero hay un error raro de E/S cuando manipulas algunos de los datos. Espero resolverlo pronto.

No tengo unidades con NTFS así que no hay reglas para ese sistema de archivos, aunque quizás funcione con las reglas que ya están hechas.

Espero que como yo puedan liberarse con esto de pmount o ivman (soluciones que encuentras en todos los Howto cuando buscas sobre el tema), lo único que tienen que hacer es crear un archivo donde guardar las reglas: /etc/udev/rules.d/10-automount.rules, e iniciar Udev y Hal.

# Example udev rules for automounting usb volumes. Pulled from
# http://forums.gentoo.org/viewtopic-t-720401-highlight-automount.html
# To be placed in /etc/udev/rules.d/

# Match the mounted volume
KERNEL=="sd[b-z]", NAME="%k", GROUP="users", OPTIONS="last_rule"
KERNEL=="mmcblk[0-9]", NAME="%k", GROUP="users", OPTIONS="last_rule"
KERNEL=="mspblk[0-9]", NAME="%k", GROUP="users", OPTIONS="last_rule"

# Add the volume
ACTION=="add", KERNEL=="sd[b-z][0-9]", GROUP="users", NAME="%k"
ACTION=="add", KERNEL=="mmcblk[0-9]p[0-9]", GROUP="users", NAME="%k"
ACTION=="add", KERNEL=="mspblk[0-9]p[0-9]", GROUP="users", NAME="%k"

# Create the mount point
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mkdir -p /mnt/%k"
ACTION=="add", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/bin/mkdir -p /mnt/%k"
ACTION=="add", KERNEL=="mspblk[0-9]p[0-9]", RUN+="/bin/mkdir -p /mnt/%k"

# Some udev magic runs this mount command if vfat is detected, else it falls
# through to the next rule, which tries to autodetect the fstype
ACTION=="add", KERNEL=="sd[b-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111,umask=007 /dev/%k /mnt/%k", OPTIONS="last_rule"
ACTION=="add", KERNEL=="mmcblk[0-9]p[0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/%k /mnt/%k", OPTIONS="last_rule"
ACTION=="add", KERNEL=="mspblk[0-9]p[0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/%k /mnt/%k", OPTIONS="last_rule"

# Mount the volume
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/%k /mnt/%k", OPTIONS="last_rule"
ACTION=="add", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/%k /mnt/%k", OPTIONS="last_rule"
ACTION=="add", KERNEL=="mspblk[0-9]p[0-9]", RUN+="/bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/%k /mnt/%k", OPTIONS="last_rule"

# Rules for umounting volume
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/umount -l /mnt/%k"
ACTION=="remove", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/bin/umount -l /mnt/%k"
ACTION=="remove", KERNEL=="mspblk[0-9]p[0-9]", RUN+="/bin/umount -l /mnt/%k"

# Clean up
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rmdir /mnt/%k", OPTIONS="last_rule"
ACTION=="remove", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/bin/rmdir /mnt/%k", OPTIONS="last_rule"
ACTION=="remove", KERNEL=="mspblk[0-9]p[0-9]", RUN+="/bin/rmdir /mnt/%k", OPTIONS="last_rule"

Notas:
– Yo como el autor original del foro de Gentoo estoy hecho a la vieja escuela y suelo montar las cosas en /mnt pero pueden cambiarlo fácilmente a /media.
– Diferente a las reglas del comentario original del foro de Gentoo ahora el punto de montaje es igual al nombre de la partición, es decir, /dev/sdb3 se monta en /mnt/sdb3, así no hay confusión.
– Mi disco duro es detectado como sda, por eso la primera regla de cada sección tiene “sd[b-z][0-9]” pero si su disco duro es /dev/hd? pueden cambiarlo a “sd[a-z][0-9]”

También pueden descargar el archivo con las reglas, donde se ven correctamente y no como en WordPress donde se ve medio feo. El archivo lo actualizaré según corrija errores y aumente reglas.

EDICIÓN: 23 de Febrero 2010.

Han cambiado algunas cosas en las reglas udev. El comando “vol_id” ya no existe en las últimas versiones de udev, ahora se usa “blkid”. Lean el manual de blkid para obtener los valores necesarios, yo solo obtengo el sistema de archivos.

También corregí la configuración UTF-8 para particiones vfat. Antes usaba un soporte completo UTF-8 que puede corromper el sistema de archivos, ahora uso el soporte “parcial” pero seguro que sugiere la documentación del kernel de Linux. Con este soporte no he tenido problemas y he corregido ciertas incoherencias que suceden al sincronizar celulares y otros aparatos.

Por último, elimine la dependencia a ntfs-3g, ahora las reglas aprovechan el soporte de escritura de ntfsprogs y fuse.

3 Respuestas a “Más reglas Udev para automontar dispositivos.

  1. Gracias por el contenido de este post, realmente ha sido muy útil, como dices, te libras del manejo de pmout y ivman. Sólo tuve que actualizar las líneas PROGRAM==”/lib/udev/vol_id -t %N” por PROGRAM==”/sbin/blkid filesystem %N”

    RESPUESTA

    Hola, de nada😀

    El archivo para “descargar” si esta actualizado para las versiones recientes de udev, echale un vistazo. Saludos.

  2. Hola, esto es lo que andaba buscando!, me ha sido util, solo que tengo una duda: lo he probado cuando inserto una SDCard, me hace la carpeta en /media y lo automonta😀 fenomenal!, pero…. como hago para desmontarlo y que borre la carpeta?, cuando lo hago con umount no me lo hace… O_o… gracias por la info.

    RESPUESTA

    Anteriormente, lo hacia al retirar la tarjeta. Hoy día lo que debes hacer es un pequeño script que contenga el comando “rmdir” y ejecutarlo al hacer remove en la regla. En los foros se habla de justamente de este inconveniente.

    La verdad es que el borrado de la carpeta no me es indispensable (solo vanidad), tal vez a ti si.

    Saludos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s