====== El montaje automático de unidades USB es udev ====== Tengo una GoFlexNet que ejecuta Slackware Arm que me gusta usar como NAS (es bueno poder hacer una incursión de software con las 2 unidades sata). Además de tener una gran variedad también quería ser capaz de compartir los discos USB muy rápidamente sin tener que interactuar de alguna manera con el dispositivo esto es lo que se me ocurrió: La idea es usar las etiquetas de volumen para tener la unidad USB montada y exportada a través de NFS. Cualquier partición que no tenga etiqueta o que sea un intercambio de linux será ignorada. Bueno, el desmontaje al desenchufar la unidad no tiene sentido, pero también limpia los sistemas de archivos exportados evitando escrituras en el directorio principal. Escribí un par de reglas de udev realmente simples para llamar al programa de administración: root@nas:~# cat /etc/udev/rules.d/99-parsistent-personal.rules ACTION=="add",KERNEL=="sd[a-z][1-9]", PROGRAM="automount" ACTION=="remove",KERNEL=="sd[a-z][1-9]", PROGRAM="automount" root@nas:~# Y este es el script de gestión. root@nas:~# cat /lib/udev/automount #!/bin/bash PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin #echo "$(date) " >> /tmp/env.txt #/usr/bin/env >> /tmp/env.txt #id >> /tmp/env.txt DEV=$(basename $DEVNAME) LABEL=$(ls -l /dev/disk/by-label/ |grep $DEV |awk '{print $(NF-2)}') [ "$LABEL" = "" ] && LABEL=$ID_FS_LABEL [ "$LABEL" = "" ] && exit [ "$ID_PART_ENTRY_TYPE" = "0x82" ] && exit echo "$DEV $LABEL $ACTION" >> /tmp/env.txt case $ACTION in add) mkdir -p /mnt/exports/$LABEL logger "automount: add $LABEL" exportfs -u *:/mnt/exports/$LABEL mount LABEL=$LABEL /mnt/exports/$LABEL [ $(grep -c "^/mnt/exports/$LABEL" /etc/exports) -eq 0 ] && \ echo "/mnt/exports/$LABEL *(rw,no_root_squash,no_subtree_check,nohide)" >> /etc/exports exportfs -r -a ;; remove) logger "automount: remove $LABEL" exportfs -u *:/mnt/exports/$LABEL mount -o remount,ro /mnt/exports/$LABEL umount /mnt/exports/$LABEL rmdir /mnt/exports/$LABEL ;; esac root@nas:~# Así es como se ve inicialmente mi /etc/exports: root@nas:~# cat /etc/exports # See exports(5) for a description. # This file contains a list of all directories exported to other computers. # It is used by rpc.nfsd and rpc.mountd. /mnt/exports *(rw,no_root_squash,no_subtree_check,crossmnt) root@nas:~# se llena con nuevas líneas a medida que las unidades USB van y vienen. Lo único que puede hacer antes de desenchufar cualquier unidad USB es volver a montar el sistema de archivos ReadOnly en el nas manualmente. No hay ningún botón en GoFlexNet que pueda usarse para desencadenar esto desafortunadamente. ====== Fuentes ====== * Autor [[wiki:user: louigi600 ]] * Traducido por: [[wiki:user: slackwarespanol | Victor]] 2019/02/07 11:11 (UTC) {{tag>howtos author_ louigi600}}