Script para montar discos USB en Debian
Hola, resulta que llevaba tiempo utilizando usbmount en Debian Squeeze pero en el cambio de versión de udev parece ser que el fichero /lib/udev/vol_id, al que hace referencia el script usbmount y lo utiliza para averiguar el sistema de archivos que utiliza el disco USB, ha dejado de existir.
Por no estar mirando versiones de paquetes y para que me sirviera por mucho tiempo, se me ocurrió hacer un script que pudiera modificar según mis necesidades para montar los discos o memorias USB según su sistema de archivos y con las opciones que me interesa.
De esta forma, al ejecutar el script se montarán los discos USB que se encuentren conectados sin montar, así que por si alguien necesita algo parecido lo pego aquí:
#!/bin/bash
for que_posible_dispositivo in `cat /proc/diskstats | grep "sd.1" | awk ‘{ print ($3) }’`;
do
dispositivo="/dev/${que_posible_dispositivo}"
if [ "`mount | grep $dispositivo`" != "" ]
then
punto_de_montaje=`mount | grep $dispositivo | cut -d" " -f 3`
echo "Dispositivo $dispositivo ya se encuentra montado en punto_de_montaje"
else
i=1
punto_de_montaje=""
until [ "$punto_de_montaje" != "" ]
do
if [ "`mount | grep /media/usb$i`" == "" ]
then
punto_de_montaje="/media/usb$i"
fi
i=`expr $i 1`
done
sudo mkdir -p $punto_de_montaje
sistema_de_archivos=`sudo udevadm info –query=all –name que_posible_dispositivo | grep ID_FS_TYPE | cut -d= -f 2`
echo "Montando $dispositivo ($sistema_de_archivos) en punto_de_montaje"
case $sistema_de_archivos in
"ext3")
sudo mount -t ext3 -o exec,suid $dispositivo $punto_de_montaje
;;
"vfat")
sudo mount -t vfat -o oexec,uid=alfonso,gid=alfonso,fmask=113,dmask=002,iocharset=iso8859-15,codepage=850 $dispositivo $punto_de_montaje
;;
"ntfs")
sudo mount -t ntfs -o
noexec,uid=alfonso,gid=alfonso,fmask=113,dmask=002,nls=iso8859-15
$dispositivo $punto_de_montaje
;;
*)
echo "ERROR: sistema de archivos $sistema_de_archivos desconocido"
;;
esac
fi
done
Recordad cambiar el usuario "alfonso" por el correspondiente y cuidado con los saltos de línea que introduce el CMS para formatear la página.
Saludos.
Warning: Use of undefined constant type - assumed 'type' (this will throw an Error in a future version of PHP) in /home/improvisa_com/web/improvisa.com/public_html/wp-content/themes/grassland/comments.php on line 38
Muchisimas gracias Alfonso, es un placer tenerte por aquí, después de todo lo que me has ayudado sigues haciendolo y esta vez para Improvisa 😉 Mil gracias.
Sobre el script me queda una duda, supongo que se ejecuta el solo cuando pinchas un disco USB, como sonsigues hacer esto, ya que en el artículo no lo dices.
Hola Juanmi, la verdad es que no lo ejecuto cuando se conecta el USB, lo de "pinchar" el USB es de tu cosecha 😉 Lo que hago es tener un icono en el escritorio y en el panel lateral para montarlos y otro para desmontarlos. Para que sea automático tanto KDE como Gnome tienen por interfaz web un modo de ejecutar el script al conectarse/desconectarse un dispositivo USB pero lo "elegante" sería hacerlo vía udev en el fichero al efecto para ello que está en /etc/udev/rules.d/usb.rules o el fichero que crees dentro del mismo directorio y poner algo así como:
BUS=="usb", SYSFS{product}=="IDENTIFICADOR_DISPOSITIVO", KERNEL=="sd?1", NAME="NOMBRE_DISPOSITIVO", SYMLINK="ENLACE_SIMBOLICO_A_CREAR_PARA_REFERIRSE_AL_DISPOSITIVO", RUN="SCRIPT_QUE_QUIERES_EJECUTAR"
Aclaradísimo, pensaba que lo ejecutaba solo udev y este ejecutaba el script. Mil gracias de nuevo 😉
Gracias por este interesante aporte