Montar USB Stick en Debian

Ya tengo todo el sistema montado pero no consigo montar la memoria USB.
Ejecuto #mount -t vfat /dev/sda /mnt/usb

y me salta con que:

mount: tipo de sistema de ficheros incorrecto, opción incorrecta, superbloque incorrecto en /dev/sda,
o número de sistemas de ficheros montados excesivo

El /dev/sda me aparece con un iconito con una 'X roja' encima.

Haber si me podeis decir el comando, o mejor la linea a adjuntar en mi /etc/fstab (¿o /etc/mtab para este tipo de dispositivos?)
No le pongas formato. Simplemente pon mount /dev/sda1 /mnt/usb
Fijate en el 1 del sda. sda es la rama generica, por lo q dentro está el 1, 2, 3....
yo tengo el usbfs y me va de vicio, mira en sda1 o en sdb1 q si tienes algo scsi o sata se mueve
Añadiendo esta linea al /etc/fstab funciona:

/dev/sda1 /mnt/usb vfat user,rw,umask=000,noauto 0 1

La unica pega es que tengo que montarlo como root (#mount /dev/sda1 /mnt/usb) y a mano.
¿Como seria para que me lo monte/desmonte automaticamente cuando lo meta/saque?
Asegurate de q tienes cargado el modulo hotplug conjuntamente con usbfs. Luego cambia el noauto por auto en el fstab.
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]
Pos este es el q yop usaba en suse:

#!/bin/bash

########################################
######################################
Script para la deteccion de
dispositivos USB
########################################
Por ZX80
########################################

mkdir /mnt/usb
rm -f montables
for disp in /dev/sd*
{
MONTABLE=`mount -v $disp -t auto /mnt/usb 2>/dev/null`
MONTABLE=`expr match "$MONTABLE" '.*\(\<[a-z0-9]\+\>(\(rw|ro\))\)'`
if [ $? -eq 0 ]
then
umount /mnt/usb
echo $disp "se puede montar, colega: " $MONTABLE >> montables
fi
echo -n "."
}
echo
rm -fR /mnt/usb
SuSE ya lleva uno, creo, al menos la 9.1 que mandó Novell montaba automáticamente estos dispositivos...

El script anterior me lo curré, porque soy demasiado perro para salir a la consola cada vez que conecto un cacharro de estos. Además, siempre me venía el tipico Windowsero que me decía "Alá, pues eso el Windows lo hace solo. Pues si que tienes ganas de liarte con el Linux". Ahora a los dos segundos de conectar el bicho me sale en una barrita que tengo en KDE con el applet de dispositivos le pincho, le doy a abrir (creo que esto es un bug de usabilidad del KDE con pinchar una vez debería abrirtelo, al menos a mí me molesta) y listo, ahora si que se callan los Windowseros.

Con el método que he usado te monta el dispositivo usando su nombre de producto y fabricante (p.e. /mnt/Nokia_NGage), lo que me viene de miedo cuando tengo los tres dispositivos que poseo conectados al mismo tiempo, siendo uno de ellos un lector múltiple de tarjetas que lleva cuato slots reconocidos cada uno como un dispositivo diferente.

Por cierto, con el lector múltiple de tarjetas sólo te detecta la tarjeta si la tienes metida dentro del lector al conectar el lector. Si la introduces después de conectar el lector ni se entera. Un truco que uso es hacer un acceso al dispositivo para forzar la detección, p.e. introduzco la carpeta y hago un cat /dev/sdd, a partir de ahí el kernel reacciona y me detecta la tarjetita (aparece /dev/sdd1) y hotplug hace su trabajo. ¿alguien sabe se hay un metodo mejor de hacer esto, algún demonio que lo compruebe o algo parecido?
7 respuestas