[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

¡Esta es una revisión vieja del documento!


En proceso de traducción. Victor

Las unidades USB de montaje automático son 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). Junto con tener una matriz, también quería poder compartir cualquier disco USB de manera muy rápida sin tener que interactuar de ninguna manera con el dispositivo: esto es lo que se me ocurrió: The idea is to use the volume labels to have the usb drive mounted and exported via NFS. Any partition that has no label or that is linux swap will be ignored. Well the umounting upon drive unplug is pointless but it also cleans up the exported filesystems avoiding writes in the parent directory.

I wrote a couple of really simple udev rules to call the management program:

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:~#

And this is the management script

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:~#

This is what my /etc/exports looks like initially:

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:~#

it gets populated with new lines as the usb drives come and go. The only thing you may want to do before unplugging any usb drive is remounting the filesystem ReadOnly on the nas manually. There aren't any buttons on the GoFlexNet that can be used to tigger this unfortunately,

Sources

 es:howtos:general_admin:automount_via_udev ()
Esta traducción es más antigua que la página original y podría estar obsoleta. Ver lo que ha cambiado.