Como es un tema que
surge habitualmente y sobre el que muchas veces se dan soluciones un tanto chapuceras, os comento la forma mas sencilla de localizar dispositivos de almacenamiento USB para montarlos en sistemas GNU/LiNUX.
Antes de nada comentar que para todo lo que voy a comentar ahora funcione debemos tener los siguientes modulos cargados en nuestro kernel:
- usb-storage
- ide-scsi
- scsi_mod
Montar una memoria de este tipo no tiene mayor complicacion que montar cualquier otro dispositivo. Lo que provoca dolores de cabeza es localizar que dispositivo de bloques de /dev es nuestra memoria usb. Esta labor nos la alivia notablemente el paquete
sg3-utils (apt-get install sg3-utils), una utilidad para trabajar con dispositivos SCSI genéricos.
- Una vez instalado, ejecutamos sg_scan -i. En mi caso que tengo un lector de tarjetas que lee varios formatos (en concreto 4: SMC, CFC, MMC y MSC) y un lapiz, me saca esto
wikier@agiler:$ sg_scan -i
/dev/sg2: scsi1 channel=0 id=0 lun=0 em type=0
LG X-tick 2.0 PROL wide=0 sync=0 cmdq=0 sftre=0 pq=0x0
/dev/sg3: scsi2 channel=0 id=0 lun=0 em type=0
Generic USB Storage-SMC 0180 wide=0 sync=0 cmdq=0 sftre=0 pq=0x0
/dev/sg4: scsi2 channel=0 id=0 lun=1 em type=0
Generic USB Storage-CFC 0180 wide=0 sync=0 cmdq=0 sftre=0 pq=0x0
/dev/sg5: scsi2 channel=0 id=0 lun=2 em type=0
Generic USB Storage-MMC 0180 wide=0 sync=0 cmdq=0 sftre=0 pq=0x0
/dev/sg6: scsi2 channel=0 id=0 lun=3 em type=0
Generic USB Storage-MSC 0180 wide=0 sync=0 cmdq=0 sftre=0 pq=0x0
(...)
- Ahora si ejecutamos sg_map nos saca un mapeo de los dispositivos sg. En mi caso tengo esto
wikier@agiler:$ sg_map
/dev/sg2 /dev/sda
/dev/sg3 /dev/sdb
/dev/sg4 /dev/sdc
/dev/sg5 /dev/sdd
/dev/sg6 /dev/sde
(...)
Así logramos tener la relación entre el listado de antes y el dispositivo SCSI que vamos a montar. Como veis, el lapiz estaba en /dev/sg2, asi que le corresponde el dispositivo /dev/sda. Y mi lector de tarjetas localiza la ranura de mi tarjeta SD (MMC) en /dev/sg5, asi que le corresponde el dispositivo /dev/sdd.
Motarlo es tan sencillo como hacer un mount /dev/sdX /mnt/dir (el directorio de montaje tiene que existir), aunque hay que tener cuidado con un detalle: si la memoria tiene o no particiones, que dependera de si esa memoria lo usamos en camaras u otros aparatitos que necesitan formatear esa memoria para leer/escribir en ella.
En mi caso me he encontrado con ambas situaciones:
- Mi lapiz de memoria viene sin particionar, asi que lo monto con un simple mount /dev/sda /mnt/usb.
- La tarjeta SD de mi camara trae una particion (mi camara lo requiere), por lo que para montarla tengo que hacer mount /dev/sdd1 /mnt/usb. Podéis averiguar fácilmente que partiones puede tener con un simple fdisk /dev/sdd.
Y recordar, debeis desmontar (man umount) todos los sistemas de ficheros que hayais montado vosotros, no es muy recomenable desechufar un dispositivo sin haberlo desmontado previamente.
- Ahora que ya hemos conseguido montar sin problemas nuestra memoria USB, vamos a preparar nuestro sistema para que se nos haga mas livianos usar nuestro lapiz usb o similar. Para ello debemos (como root) editar el fichero /etc/fstab y le añadimos la siguiente linea
- /dev/sda /mnt/usb vfat rw,exec,user,noauto 0 0
Hacemos un mount -a para que este cambio sea efectivo sin reiniciar, y con un simple mount /mnt/usb/ ya lo tendremos montado.
Si vais con calma y os fijais bien, no tendreis ningún problema. Como mucho se me ocurre que tengais que consultar el manual del mount (man mount). Si tuvierais algún problema podeis poneros en contacto conmigo en wikier(AT)asturlinux(DOT)org.
