Bueno, para todo aquel que le interese aquí teneis el script que uso yo para montar automáticamente dispositivos usb mass-storage.
Basta con ponerlo en /etc/hotplug/usb/, con el nombre usb-storage y permisos de ejecución.
Ojito, no es capaz de montar dos dispositivos iguales, sería bastante fácil añadirlo, pero aún no lo necesito. Se podrían añadir muchas cosas (notificación en KDE, el DE que uso), pero tengo que encontrar tiempo.
[quote]
#!/bin/bash
# nombre por defecto para el directorio del dispositivo en caso de que no se le pueda conseguir uno
DEFAULTDIRNAME="storage_device"
# sistema de archivos "por defecto" para los dispositivos montados
DEFAULTFILESYSTEM="vfat"
# umask "por defecto" para el sistema de archivos
DEFAULTUMASK="000"
# directorio bajo el que se montarán los dispositivos usb mass-storage
MOUNTROOT="/mnt"
# espera un poco, algunos sistemas lo necesitan, sino no estará lista la infraestructura necesaria.
sleep 2
# Empezamos escaneando todos los dispositivos de bloques, /sys/block, para ver si alguno pertenece a nuestro dispositivo
# hago esto debido a que un mismo dispositivo usb puede tener varios dispositivos de bloques (p.e. un lector de multiple de
# tarjetas )
for BDEV in /sys/block/*
do
# comprueba si tiene asociado un directorio que describa el dispositivo
if [[ -d $BDEV"/device" ]];
then
# elimina todo lo que hay antes de devices/ y lo que hay después de /host, inclusive /host
# formando así una cadena de identificación única para cada dispositivo que podrá ser comparada
# con el DEVPATH que suministra el kernel
BDEVPATH=$(ls -lh $BDEV/device | awk 'BEGIN {FS="devices"} {print "/devices"$2}' | awk 'BEGIN {FS="/ho"} {print $1}')
# es el dispositivo que nos ocupa
if [[ $DEVPATH == $BDEVPATH ]];
then
# obten la ruta al nodo del dispositivo en /dev
BNODE=$(echo $BDEV | awk 'BEGIN {FS="block/"} {print $2}')
if [[ -d $BDEV"/"$BNODE"1" ]];
then
FSTABREMOVER=$BNODE".*"
BNODE="/dev/"$BNODE"1"
# obten, si es posible, el nombre del fabricante y el modelo del dispositivo
if [[ -f $BDEV"/device/vendor" ]]; then VENDOR=$(cat $BDEV/device/vendor); fi
if [[ -f $BDEV"/device/model" ]]; then MODEL=$(cat $BDEV/device/model); fi
# construye el nombre del directorio en el que montarlo, a partir del nombre del fabricante
# y del modelo del dispositivo, no el path, sólo el nombre para ello sustituye todos los
# carácteres que no sea letras de la A a la Z en minúscula o mayúscula o números por guiones bajos.
BMDIR=$(echo $VENDOR $MODEL| sed ":go s/[^[:alnum:]_]/_/;t go")
# En caso de que el nombre fuese una cadena vacia asigna un nombre por defecto
if [[ "a"$BMDIR == "a" ]]; then BMDIR=$DEFAULTDIRNAME; fi
FSTABREMOVER=$FSTABREMOVER$BMDIR".*"
BMDIR=$MOUNTROOT"/"$BMDIR
# añade la entrada correspondiente a /etc/fstab
echo -e $BNODE"\t"$BMDIR"\t"$DEFAULTFILESYSTEM"\tnoauto,users,umask="$DEFAULTUMASK >> /etc/fstab
# nos aseguramos de que el directorio para el montaje esté creado
if [[ ! -d $BMDIR ]]; then mkdir $BMDIR; fi
# montamos el dispositivo
mount $BMDIR
#-----
# genera el archivo que se encargará de limpiarlo todo cuando el dispositivo sea desconectado del puerto USB
#-----
# si no existe el directorio donde debería estár el script será mejor crearlo
if [[ ! -d /var/run/usb ]]; then mkdir /var/run/usb; fi
# ahora si, el archivo
echo "
# en caso de que aún esté montado del dispositivo desmontalo
# EL DISPOSITIVO DEBE DE SER DESMONTADO ANTES DE DESCONECTARLO, SINO ALLÁ CADA UNO CON LO QUE SUCEDA
umount -f $BMDIR
# el nuevo fstab será el antiguo sin la línea que indica cómo montar el dispositivo
cat /etc/fstab | awk '!/$FSTABREMOVER/ {print}' > /etc/fstab
# elimina el directorio donde se montó el dispositivo, en caso de que esté vacío
rmdir $BMDIR
" > $REMOVER
# demosle permiso de ejecución
chmod +x $REMOVER
fi
fi
fi
done
[\quote]