martes, 20 de octubre de 2015

Pen drive destruido, demolido, devastado, desmantelado, pulverizado,... 13 formas distintas de intentar arreglarlo... y no conseguirlo


Estoy harto de que los pen drive, de forma repentina, mueran. Te gasta una pasta para que, de repente y sin avisar, dejen de funcionar. Y eso no es lo peor, porque como tengas algún trabajo, algún proyecto, fotos,... ahí almacenadas, eso si que no lo puedes recuperar comprando otro pen drive.

De momento mi equipo lo detecta.



Si hago clic sobre él, ahí tienes el error que me da:
Error mounting /dev/sdc1 at /media/moy/UsbStorage. Command line `mount -t "vfat" -o "uhelper=udisks2, nodev, nosuid, uid=1000, gid=1000, shortname=mixed, dmask=0077, utf=8, showexec,flush" "/dev/sdc1" "/media/moy/UsbStorage"' exited with non-zero exit status 32: mount /dev/sdc1: can't read superblock



Por fin me he decidido a buscar alguna solución. A continuación te muestro lo que he intentado.



Opción 1. Formatear desde el gestor de particiones Gparted [NO SOLUCIONA]

Abrimos el gestor de particiones de Ubuntu



En la lista de dispositivos NO aparece /dev/sdc 
sino los dos discos duros de mi ordenador



Probamos a refrescar la lista de dispositivos...
y tampoco lo detecta


Opción 2. Probamos con la herramienta fsck [NO SOLUCIONA]
fsck (File System Check) es una utilidad de línea de comandos que nos puede echar una mano
Primero mostramos la lista de discos y particiones: fdisk -l


fdisk -l
Como vemos, solamente nos muestra los dos discos duros sda y sdb
pero no aparece por ningún lado sdc



fsck /dev/sdc1
Aún así, lanzo fsck para comprobar el disco /dev/sdc1. 
Ya ves que para fsck es como si no existiera



Opción 3. TestDisk utility: Advanced FAT Repair [NO SOLUCIONA]
TestDisk es una herramienta avanzada de reparación de FAT desarrollada por cgsecurity absolutamente gratuita.

Accedemos a la página del fabricante

Accedemos a la zona de downloads y descargamos la aplicación TestDisk


En la carpeta que hemos descargado vemos que hay 3 ejecutables.
El que nos interesa es testdisk_static



Ejecutamos testdisk_static en modo administrador
sudo ./testdisk_static

Como vemos, tampoco detecta la partición /dev/sdc1



Opción 4. Propuesta de Demla Pawan vía fsck.vfat [NO SOLUCIONA]
Demla Pawan nos propone una solución al error de lectura del súper bloque en discos usb en la siguiente dirección: https://demlaip.wordpress.com/2009/11/08/pendrive-crashed-says-cant-read-superblock/


sudo mount /dev/sdc1 /mnt/
Efectivamente si tratamos de montar el disco el sistema nos muestra el mensaje de error 
mount: /dev/sdc1: no se puede leer el superbloque



Siguiendo con la propuesta de Demla: fsck.vfat -tr /dev/sdc1
Tampoco soluciona



Su otra propuesta: sudo /sbin/dosfsck -atrrvV /dev/sdc1
Tampoco soluciona


Otro intento más de la propuesta de Demla: fsck /dev/sdc1 /mnt/ -a
Que tampoco funciona y nos muestra el siguiente mensaje de error:

fsck.ext2: No existe el archivo o el directorio mientras se intentaba abrir /dev/sdc1
Possibly non-existent device?
fsck.ext2: Es un directorio mientras se intentaba abrir /mnt
/mnt: 
The superbloque could not be read or does not describe a valid ext2/ext3/ext4
sistema de ficheros.  If the dispositivo is valid and it really contains an ext2/ext3/ext4
sistema de ficheros (and not swap or ufs or something else), then the superbloque
is corrupt, and you might try running e2fsck with an alternate superbloque:
    e2fsck -b 8193 <dispositivo>
 or
    e2fsck -b 32768 <dispositivo>




A partir de este mensaje de error, me lanzo a probar con e2fsck
e2fsck -b 8193 /dev/sdc1
e2fsck -b 32768 /dev/sdc1

Y como ves tampoco soluciona


Opción 5. Mira lo que está ocurriendo en mi pen drive [NO SOLUCIONA]
Desde la shell, si escribimos sudo tail -c 0 -f /var/log/syslog
no paran de salir mensajes indicando que hay errores por todos lados en mi pen drive: 
  • Hardware error
  • device descriptor read/64, error -110
  • ...
Buena pinta no tiene:




Opción 6: Propuesta de Hendra Fuhrer vía mkfs -t vfat [NO SOLUCIONA]
En la siguiente URL http://ubuntuforums.org/showthread.php?t=1901330&page=3&p=11576337#post11576337, Hendra propone simplemente hacer 
sudo mkfs -t vfat -l /dev/sdc


Me da un error de sintaxis. 
El post de Hendra es del año 2012 así que posiblemente haya cambiado
la forma del comando mkfs.
Busquemos un post más reciente sobre mkfs a ver si por ahí resolvemos



Opción 7: Propuesta de Hendra Fuhrer actualizada vía mkfs.vfat [NO SOLUCIONA]
Desde el sitio web de Ubuntu Server http://ubuntuserverhelp.com/using-mkfs-to-create-a-file-system/ se nos ofrece una alternativa para crear un sistema de archivos vfat.
En la consola escribimos sudo mkfs.vfat /dev/sdc:


Como vemos, se sigue quejando que no puede leer el superbloque


Y si creamos un sistema de archivos ext4 en mi pen drive?
sudo mkfs.ext4 /dev/sdc1

Al menos parece que hace algo...


Al terminar avisa de algunos errores:
no se puede leer el bloque 0: Attempt to read block from filesystem resulted in shor read
No se puede borrar el sector 0: Attempt to write block to filesystem resulted in short write
Atención, se tuvo un problema al escribir el superbloque
...

Opción 8. Extraer información vía lsusb [HAY ESPERANZA]
El comando lsusb es básicamente un ls de dispositivos usb. ¿Aporta alguna pista lsusb cuando conecto mi pen drive? Para ello: lsusb

Tarda muchísimo en mostrar la información, pero algo muestra
Kingston Technology Company Inc.
Esta señal me da todavía un empujón de esperanza



Opción 9. Uso de la herramienta de shell gpart [NO SOLUCIONA]

Instalamos gpart (Gnome Partitions)
sudo apt-get install gpart



Tarda muchísimo en responder, pero al final para gpart el dispositivo NO existe
sudo gpart /dev/sdb



Opción 10. Localizar y aislar bloques defectuosos [NO SOLUCIONA]
Badblocks es una utilidad que permite localizar y aislar los sectores defectuosos de una unidad de disco. Genera una lista de los sectores dañados que puede ser utilizada por mkfs  para evitar su uso.

Tarda muchísimo en responder pero nada, no consigue ver el pen drive
sudo badblocks -nvs /dev/sdb


Opción 11. Borrado a bajo nivel de los sectores iniciales [HAY ESPERANZA]
dd es un comando Linux para leer/escribir a bajo nivel sobre discos.
Pruebo a escribir sobre el pen drive solo ceros y efectivamente lo hace:

El disco no está muerto del todo, puedo escribir en él con dd
sudo dd if=/dev/zero of=/dev/sdb bs=8M count=1



Opción 12. Volcar una ISO al pen drive [HAY ESPERANZA]

Ahora que veo que con dd he podido escribir en mi pen drive, voy a probar a volcar una ISO completa, a ver si puedo luego arrancar desde el pen drive.

dd if=/<ruta imagen .iso> of=/dev/sdb



Y efectivamente lo vuelca, ha podido escribir en el pen drive!!!



Ahora el mensaje que me muestra cuando abro el pendrive desde Nautilus cambia
No se pudo mostrar todo el contenido de "UsbStorage": Error al conseguir información para el archivo "/media/moises/UsbStorage/.android_secure"

.android_secure??? Esto es nuevo



Opción 13. Formateo a bajo nivel del pen drive [NO SOLUCIONA]

Ya hemos visto que el comando dd funciona, puedo escribir en el pen. Podemos borrar todo el contenido: sudo dd if=/dev/zero of=/dev/sdb


Y de nuevo parece que ha ido bien, ahora, 
¿por qué dice 2Gb si el pendrive es de 32GB?
No queda espacio en el dispositivo???
Mmmmm, algo no termina de ir bien




La herramienta de administración de discos que trae 
integrada Ubuntu sí detecta el pen drive
Lo muestra vacío que es lo que toca esperar cuando acabamos 
de hacerle un borrado físico a bajo nivel con dd.



Algo pinta mal cuando en el menú de operaciones muestra
todas las funciones desactivadas. 
En este momento tocaría formatear la unidad, pero no me deja



Todas esas opciones para mi disco duro sí que están activas, pero para el pen drive NO



Gparted ni siquiera detecta el pendrive /dev/sdb
¿Entonces? ¿Por qué dd me dejó hacer un borrado a bajo nivel?


Es curioso, ahora, tras hacer el borrado a bajo nivel, 
badblocks dice que no hay ningún bloque en mal estado



También gpart responde!!!





Probamos con fdisk ahora que esto empieza a funcionar:
sudo fdisk /dev/sdb
m nos muestra las operaciones disponibles
n crea una nueva partición, y todo parece ir bien



p muestra la lista de particiones, y ahí tenemos /dev/sdb1
Esto tiene buena pinta, la recién creada partición está ahí



Desde la consola, accedemos a /media/UsbStorage y hacemos un ls
Tarda una eternidad en responder, pero ahí lo tienes, los datos los muestra
Y un buen puñado de errores:
No se puede acceder a la carpeta xxx: error de entrada/salida
No se puede acceder a Android: No existe el archivo o el directorio
No se puede acceder a RECYCLER: Error de entrada/salida
...


Y así un conjunto de carpetas que están dañadas y otras que sí las muestra


Gparted también detecta /dev/sdb



Creamos una partición



Máximo 2Gb??? Blup, adelante


Mmmm, esto pinta bien. Aplicamos los cambios



Nada, error, imposible crear la nueva partición



Y el error que me da es de mkfs, que ya habíamos visto casi al principio


Conclusión final. Tiro la toalla
Me rindo, no sé qué más probar. Ahora, me da mucha rabia, un pen drive relativamente nuevo que pierdo, que no sirve para nada, que hay que tirar a la basura porque no funciona.