Trucos para reparar una memoria USB/MicroSD en Linux

A muchos nos ha sucedido en más de una ocasión que cuando vamos a utilizar una memoria USB o una tarjeta MicroSD esta no funciona. Ya sea que no podemos acceder a ella o ni siquiera es leída por el ordenador esto se repite en cualquier sistema operativo y puede deberse a distintas razones. En el peor de los casos se trata de un daño del hardware por lo que es poco probable que haya algo que podamos hacer. En este artículo presento una recopilación de una serie de comando que podemos usar en la terminal para tratar de restablecer la tarjeta y volver a un estado de funcionamiento normal. En algunos casos no vamos a poder recuperar la información contenida en ella antes del daño.  

Diagnóstico y solución sencilla

En este primer paso vamos a determinar si Ubuntu (u otra distribución de Linux) está detectando y montando la tarjeta. Para esto vamos a utilizar primeramente el siguiente comando:

sudo fdisk -l

comando0

Si dentro de la lista de dispositivos podemos ver que el nuestro aparece y se encuentra montado pero aún así no podemos acceder a la información contenida en él, sugiero utilizar la herramienta cfdisk:

sudo cfdisk

 

comando2

Buscamos en la lista nuestro dispositivo y eliminamos la partición [Delete] y posteriormente escribimos una nueva [Write]. Antes, podemos elegir el tipo [Type] de nuestra preferencia que por lo general es FAT32 o NTFS.

En caso de que lo anterior no funcione o el dispositivo no aparezca en ninguna de las listas (como sucede en las capturas de pantalla), procedemos con los siguientes pasos.

Solución avanzada

Si bien estos pasos contienen algunos comandos un poco menos comunes no son difíciles de seguir. Utilizamos el siguiente comando en la terminal: 

lsblk

comando1

Es muy probable que nuestro dispositivo aparezca en la lista. Si nuestro dispositivo aparece debemos identificar su nombre (ej. /dev/sdb, este es el nombre que usaremos para los ejemplos, debes cambiarlo de acuerdo a tu caso) . Es posible que si el dispositivo tiene problemas la información sobre capacidad y formato sea incorrecto. También es posible que tenga un 1 en la columna RO. Esto significa que el dispositivo se encuentra en modo de Solo Lectura. Antes de continuar debemos verificar que si se trata de una memoria MicroSD y estamos utilizando un adaptador, el interruptor de bloqueo (Lock) no se encuentre activado (hacia abajo). 

5476i5F714A4661579993

Debemos utilizar el siguiente comando para verificar que el dispositivo no esté montado: 

sudo umount /dev/sdb

Precedemos a intentar con los siguientes comandos: 

sudo fsck.vfat -f -p /dev/sdb

En caso de fallar utilizamos el siguiente:

sudo fsck.vfat -f -v /dev/sdb

Si no funciona intentamos con el siguiente donde d=delete (borrar partición) y w=write (escribir una nueva partición):

sudo fdisk /dev/sdb

Si continuamente recibes el mensaje de error que se refiere a que el dispositivo está en modo de Solo Lectura intentamos forzar la salida de este modo:

sudo hdparm -r0 /dev/sdb

Si el problema continua podemos intentar reescribir todos los sectores del dispositivo con ceros. Ten mucho cuidado de elegir el dispositivo correcto porque esto destruirá toda la información contenida en él. 

dd if=dev/zero of=/dev/sdb

Este proceso puede tardar un rato. Una vez finalizado puedes volver a usar el siguiente comando para crear una nueva partición:

sudo cfdisk

O bien puedes usar una herramienta con interfaz gráfica como Disks o GParted. 

En el caso de que sospeches que se trata de un problema más sencillo como una tabla de partición corrupta puedes usar la herramienta TestDisk y recuperar las tablas. 

Fundador
Seguidor de Jesús. Escribo artículos en mi tiempo libre sobre temas de tecnología que me interesan.