Archivos para 18/01/09

18
Ene
09

Recuperar un pendrive estropeado con dd y foremost

Fuente: AndaLinux

Antes de las vacaciones de Navidad, un compañero del Instituto tuvo problemas con uno de sus pendrives.

En concreto, cuando lo pinchaba (en su caso era una Microsoft Windows XP pero en cualquier Linux ocurría lo mismo porque el fallo era físico) le detectaba la memoria USB pero no le mostraba su contenido.

Resignado tras la pérdida del contenido lo comentó durante los habituales cafés de media mañana a lo cual no dudé en contestar: “¿un pendrive roto? ¡déjame que le eche un vistazo!

Búsqueda de la causa

Tras estudiar los cambios en el fichero de log (comando dmesg en la terminal) que se producían al pinchar el dispositivo en mi Ubuntu Linux detecté lo siguiente

[ 2852.064000] sd 2:0:0:0: [sdb] Sense Key : Medium Error [current]
[ 2852.064000] sd 2:0:0:0: [sdb] Add. Sense: Unrecovered read error
[ 2852.064000] end_request: I/O error, dev sdb, sector 601
[ 2852.064000] FAT: Directory bread(block 53 8) failed
[ 2852.080000] sd 2:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE, SUGGEST_OK

Lo cual parecía indicar que existían sectores defectuosos en el mismo.

Herramientas a utilizar

Tras probar varios de los productos existentes en el mercado (sin tener en cuenta el tipo de licencia o el sistema operativo para el que estaban diseñados) con nulos resultados opté por hacer uso de la herramienta foremost que alguno de vosotros ya ha comentado anteriormente en algunos de los artículos anteriores de este blog.

Igualmente también me ha sido necesario hacer uso del comando dd para conseguir una imagen iso del dispositivo con la que poder trabajar.

Procedimiento

Como hemos comentado, el problema parecía ser la existencia de sectores defectuosos (cómo me he acordado de los “clásicos” disquetes de 3.5″) que impedían un correcto funcionamiento del aparato.

Crear una imagen del dispositivo

Para poder crear la imagen lancé desde la terminal el siguiente comando

dd if=/dev/sdb of=/tmp/pendrive.iso conv=noerror,sync

donde

  • /dev/sdb es el dispositivo a recuperar (para saber cuál es el tuyo no tiene más que seguir estas instrucciones).
  • /tmp/pendrive.iso es el fichero que vamos a crear a partir del contenido del pendrive.
  • conv=noerror,sync es el parámetro que indica al comando dd que ignore los errores y siga generando la imagen del dispositivo aunque se produzcan fallos.

Recuperar ficheros de la imagen creada

Una vez creada la imagen del paso anterior (recomiendo hacer copia de seguridad de la iso por si fuese necesario) sólo nos queda lanzar (una vez más desde la terminal) un

foremost -v -i /tmp/pendrive.iso

Como por arte de magia y, en el directorio que nos encontremos en ese momento, aparecerán directorios para todos y cada uno de los tipos de archivos que foremost es capaz de recuperar (png, jpgs, pdfs, docs, ppts, …)

Conclusión

Método sencillo (una vez que sabes cómo) que puede serte de utilidad ante un duro trance como es la pérdida de información importante por un fallo mecánico de un dispositivo.

Aplicable a otros elementos como cdroms o dvds seriamente dañados (los hongos hacen extragos en algunos de ellos y de las ralladuras mejor ni hablar) por lo que espero haber sentado las bases para otros experimentos y/o pruebas.




Contacto

Cuestiones, sugerencias, criticas,...

Manual LyX: Con “L” de LaTeX

Descarga el manual ya



¡Lanzado! Descarga la versión 0.1

¡Ya van más de 450 descargas!

Ubuntu Karmic Koala

Ciencia Sin Tijeras

No al recorte en I+D

Firefox 3

Firefox 3

Feed RSS

Feed RSS



To translate / Traduire

Frases

Busco frases para realizar una colección sobre Linux, software libre e informática en general

Han pasado (+130000)

  • 187,460 bioinformatiquillos

Archivos

USE FIREFOX

No al soporte gratuito a Microsoft

No use Windows, los gatitos se la agradecerán

Creative Commons License

Esta obra está bajo una licencia de Creative Commons.