Quiero montar la unidad usb en /media
función del UUID del disco. ¿Cómo puedo usar el UUID de una unidad usb en un archivo de reglas udev y qué es una regla udev para montar la unidad usb con el número UUID como nombre de la carpeta?
El blkid
comando genera el UUID de un disco, pero solo al montarlo.
Respuestas:
Aunque udev no puede acceder directamente a los UUID, al menos en Fedora y Ubuntu se configuran como variables de entorno (
ENV
). Puede leer todas las variables de entorno de un dispositivo llamandoudevadm info /dev/sdc
. Por ejemplo, para un NTFS en un disco externo obtengo:Todo con un
E:
frente está configurado como una variable de entorno.Coincidencia con UUID
Puedes igualarlo con
ENV{ID_FS_UUID}=="4A6F2ABC1232FA37"
. Como primer filtro, comparoKERNEL=="sd?2"
para asegurarme de que solo estoy manejando dispositivos de bloque con el número de partición correcto. La regla completa se vería así:El comando logger es útil para afirmar que la regla se ejecuta realmente. A continuación, debe verificar que la regla no contenga ningún error de sintaxis con
udevadm test /dev/sdc2
. Su archivo de reglas debe aparecer en la salida y no debe aparecer ningún mensaje de error al lado. Ahora se puede activar todas las reglas para su dispositivo para comprobar si su regla funciona como estaba previsto:sudo udevadm trigger /dev/sdc2
. Si su regla coincide, encontrará el mensaje de registro personalizado en el registro del sistema (/var/log/syslog
o mediantejournalctl -b
).Editar: ali_m ha señalado que las variables de entorno están establecidas por reglas anteriores y, por lo tanto, solo son accesibles si su
.rules
archivo tiene un orden lexicográfico suficientemente alto . Comenzar con "60" debería ser suficiente. Personalmente comienzo mis reglas con "zz" (si es posible) para distinguirlas de las reglas predefinidas de un vistazo.Usar UUID en el
RUN
comando y en otros lugaresUdev tiene una sintaxis de sustitución de variables y atributos bastante poderosa . Específicamente, cada aparición de
$env{ID_FS_UUID}
será reemplazada con el UUID de la unidad. Entonces, para montar un dispositivo debajo de/media/
UUID
usted, puede usar esta regla:Sin embargo, es probable que desee configurar udiscos, ya que está especializado para el espacio del problema que desea resolver. Ver https://wiki.archlinux.org/index.php/udisks#udisks2:_mount_to_.2Fmedia como punto de partida.
Mi caso de uso real para el montaje de dispositivos con udev en lugar de
/etc/fstab
o udisks es montar sistemas de archivos zfs que tienen algunas idiosincrasias que hacen que no se ajusten a las herramientas habituales.fuente
.rules
nombre de archivo debe comenzar con un número> 60 .Hay una solución aproximada en mi mente. Establezca la entrada fstab de respuesta conjunta identificada por UUID. Y en las reglas de udev, ejecute
mount -a
cada vez que se agregue un nuevo dispositivo sd *.fuente