Si tenemos una memoria USB, tarjeta SD, microSD, CF, etc, que por el motivo que sea ya no la detecta nuestro ordenador, es posible que tenga la tabla de particiones corrupta. Una causa podría ser que antes haya estado conectada a una consola (por ejemplo una Nintendo 3DS).

En estos casos, lo que siempre me ha funcionado es lo siguiente.

– Insertamos la memoria en el ordenador. Si es una tarjeta SD, microSD, etc, es posible que necesitemos un adaptador si el ordenador no tiene una conexión para ese tipo de tarjeta.

– Utilizamos fdisk para conocer el nombre de dispositivo.

# fdisk -l

La información sobre la memoria aparecerá al final de la lista, veremos algo similar a esto.

Disco /dev/sdh: 7948 MB, 7948206080 bytes
 245 heads, 62 sectors/track, 1021 cylinders, 15523840 sectores en total
 Units = sectores of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Identificador del disco: 0x888fdfaa
El disco /dev/sdh no contiene una tabla de particiones válida

En este ejemplo vemos una memoria de 8GB y identificada como /dev/sdh.

– A continuación vamos a borrar absolutamente toda la memoria escribiendo ceros. Es importante indicar el dispositivo completo /dev/sdh y no una partición como sería /dev/sdh1.

CUIDADO: Tomar buena nota del dispositivo correcto. El comando dd no hace preguntas, por lo que si le pasamos por error otro dispositivo, lo borraremos sin solucción.

Nota: Esta tarea puede llevar bastante tiempo, sobre todo si la memoria es muy grande. Paciencia.

# dd if=/dev/zero of=/dev/sdh

– Una vez limpia la memoria, usamos fdisk para crear una tabla de particiones y crear una partición nueva.

# fdisk /dev/sdh

Seleccionamos.
-n  Creamos una nueva partición
-p  Partición primaria
Pulsamos ENTER al resto de preguntas
-w  Escribimos los cambios en la tabla de particiones y salir

– Para terminar tenemos que darle formato a la nueva partición que hemos creado usando mkfs. En este ejemplo formateamos como FAT32. El comando a usar es mkfs.vfat

# mkfs.vfat -F 32 /dev/sdh1

Para más información, ver las páginas del manual de los comandos dd, fdisk y mkfs.vfat