Cómo recuperar una memoria USB dañada con Linux (¡o al menos intentarlo!)

Cómo recuperar una memoria USB dañada con Linux (¡o al menos intentarlo!)

«Dispositivo USB no reconocido», ¡la incapacidad de leer o escribir datos y situaciones como esa, hablando de una memoria USB, son ineludiblemente un síntoma de problemas!

A menudo estos problemas son debido a bloques dañadosque impiden la lectura/escritura correcta de los datos de la memoria USB en cuestión y, a menudo, también impiden su reconocimiento.

Así que, a no ser que hayas bañado la memoria USB en una palangana llena de agua, o peor aún en la lavadora, podemos intentar recuperar los datos de la memoria usando Linux ejecutando un escaneo con fsck.

Si eso falla, intentaremos recuperar toda la memoria USB dañada; sin embargo, al hacerlo se producirá el pérdida total de los datos almacenados en él.

Veamos cómo proceder.

Recuperar una unidad flash USB dañada con Linux

Método 1: fsck

Insertamos la memoria USB dañada en el PC, luego abrimos un terminal y escribimos el comando

lsblk

El resultado será algo parecido a esto:

Identificamos el nuestra unidad flash mirando cuidadosamente el tamaño: en nuestro caso, el sistema reconoce como /dev/sdb la unidad flash completa y como /dev/sdb1 el partición de datos en él.

A continuación, iniciamos el análisis del sector defectuoso con el comando

fsck /dev/partizione

donde a partición vamos a sustituir el identificador que hemos recibido antes. En nuestro ejemplo, el comando será

fsck /dev/sdb1

Esperamos pacientemente el final del procedimiento y la resolución de cualquier error. Nuestra llave debería leerse ahora sin problemas. El consejo es copiar inmediatamente los datos en otro lugar porque, cuando los bloques empiezan a dañarse, es muy probable que la hora de jubilación de la memoria USB esté cerca.

Método 2: Borrado completo

Este es un método que podría recuperar una unidad flash USB dañada haciendo que sea legible de nuevo, pero sin embargo, tendrá como resultado la eliminación completa de todos los datos. De hecho, este método es estupendo si los datos están completamente corruptos y el método anterior no dio el resultado deseado.

Identifiquemos una vez más nuestra unidad flash USB utilizando el comando lsblk, como se explicó anteriormente. Comprobemos que hemos escrito el identificador correcto.porque el procedimiento que vamos a iniciar implica la eliminación completa de todos los datos. Un periférico incorrecto podría causar grandes daños.

Dicho esto, supongamos que Linux ha reconocido nuestra unidad flash como /dev/sdb y la partición que contiene como /dev/sdb1. Vamos a llenar toda la unidad flash con 0 (esto, de nuevo, eliminará TODOS datos de la llave) con el comando

sudo dd if=/dev/zero of=/dev/chiavetta

que, en nuestro ejemplo, se convierte en

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

Una vez completado el procedimiento, ahora creamos una partición en el stick con un nuevo sistema de archivos. Dependiendo del tipo de formato que desee, los comandos son diferentes.

Para formatear el stick en NTFS (recordando sustituir /dev/sdb1 por nuestra partición), escribiremos el comando

sudo mkfs.ntfs -f /dev/sdb1

Para formatear la llave en FAT32 escribiremos en su lugar

sudo mkfs.msdos -f 32 /dev/sdb1

y finalmente, para formatear la llave en EXT4 (recordando que Windows no lee este formato), escribiremos

sudo mkfs.ext4 -f /dev/sdb1