Tarjeta MicroSD no se monta automáticamente

Cuando compré un lector de tarjetas y lo instalé en mi PC me pasó que una MicroSD que venía en el celular no se montaba automáticamente bajo Linux.

Tarjeta MicroSD

Tarjeta MicroSD

Entonces recurrí a dmesg para ver que podía estar pasando y esto fue lo que obtuve:

[ 4215.150655] sdf: detected capacity change from 15707668480 to 0
[ 4269.518798] sd 5:0:0:4: [sdf] 1929216 512-byte logical blocks: (987 MB/942 MiB)
[ 4269.520296] sd 5:0:0:4: [sdf] No Caching mode page present
[ 4269.520300] sd 5:0:0:4: [sdf] Assuming drive cache: write through
[ 4269.522919] sd 5:0:0:4: [sdf] No Caching mode page present
[ 4269.522924] sd 5:0:0:4: [sdf] Assuming drive cache: write through
[ 4269.524808]  sdf:

Probé montar el dispositivo
mount /dev/sdf1 /mnt
y nada
mount /dev/sdf /mnt
OK se montó.

Veo que particiones tiene la tarjeta:
ernemir@core2 ~ $ sudo fdisk -l /dev/sdf

Disco /dev/sdf: 987 MB, 987758592 bytes
31 cabezas, 61 sectores/pista, 1020 cilindros
Unidades = cilindros de 1891 * 512 = 968192 bytes
Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador del disco: 0x00000000

Dispositivo Inicio    Comienzo      Fin      Bloques  Id  Sistema

¿Ninguna?

Probé con otra tarjeta. En este caso una MicroSD HC de 16 GB. Todo se comportó como era de esperar. Verifico con dmesg y fdisk que, a diferencia de la anterior, tiene una partición creada. Sospeché que venía por ese lado.

Entonces con fdisk procedí a crear la partición
$  sudo fdisk /dev/sdf

Presionando “o” cree una nueva tabla de particiones, presionando “n” cree una nueva partición (primaria y con los límites que me mostraba por defecto) y por último con “t” cambié el identificador de sistema de la partición a WIN 95 FAT 32  (código “b”).

Pero seguía sin poder montarse. Faltaba darle el formato correspondiente con mkfs.vfat y aprovechar para etiquetar el dispositivo con un nombre significativo “MICROSD1G”:
$ sudo mkfs.vfat -c -F 32 -v -n MicroSD1G /dev/sdf1

mkfs.vfat 3.0.9 (31 Jan 2010)
/dev/sdf1 has 31 heads and 61 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 1928758 sectors;
file system has 2 32-bit FATs and 8 sectors per cluster.
FAT size is 1880 sectors, and provides 240620 clusters.
There are 32 reserved sectors.
Volume ID is 32b4eb57, volume label MicroSD1G  .
Searching for bad blocks 95200… 189280… 282592…

Ahora si, la prueba de fuego. Extraje la tarjeta del lector, la introduje de nuevo y el notificador de dispositivos me avisa que se ha montado y si quiero ver los archivos.

De paso aproveche para etiquetar la otra tarjeta utilizando mtools ya que también utiliza FAT32:
$ sudo mlabel -i /dev/sdf1 ::microSD16G

Total number of sectors (30670848) not a multiple of sectors per track (63)!
Add mtools_skip_check=1 to your .mtoolsrc file to skip this test

Este error se soluciona con este comando
$ echo mtools_skip_check=1 >> ~/.mtoolsrc
Y ahora si
$ sudo mlabel -i /dev/sdf1 ::microSD16G

En caso de un dispositivo con NTFS:
$ sudo ntfslabel /dev/sdf1 microsd16G

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s