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 538) 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
sudo 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 😉
En el próximo capítulo
Para mañana me gustaría tratar el uso de directorios y rutas desde la terminal con especial mención a un par de comandos que permitirán reducir las teclas a pulsar y simplificar su manejo.
Si quieres colaborar puedes:
- Indicar qué consideras que debería aparecer en dicho artículo.
- Proponer (o producir) un icono que ilustre el artículo.
- Sugerir un tema alternativo que te gustaría poder disfrutar en el blog.
whooo veo que te as currao bastante tu blog, no sabia que lo tenias tan trabajado!! Bueno, mañana te buscaré para que me digas algunas cosillas sobre linux y lo del touchpad en el XP
Me gustaMe gusta
me creó la imagen pero una ves recuperado me aparece esto y no se donde quedaron los archivos salvados:
root@mauricio-laptop:~# foremost -v -i root/escritorio/pendrive.iso
ERROR: /root/output is not empty
Please specify another directory or run with -T.
root@mauricio-laptop:~# foremost -v -i /tmp/pendrive.iso
ERROR: /root/output is not empty
Please specify another directory or run with -T.
root@mauricio-laptop:~# foremost -v -i /tmp/pendrive.iso
ERROR: /root/output is not empty
Please specify another directory or run with -T.
root@mauricio-laptop:~# foremost -T /tmp/pendrive.iso
Processing: /tmp/pendrive.iso
|**********|
root@mauricio-laptop:~#
Me gustaMe gusta
Independientemente de que no te recomiendo utilizar el equipo como root para los experimentos (podrías destrozar cosas sin querer) deberías eliminar el contenido de la carpeta /root/output (o utilizar el parámetro -T tal y como te está indicando foremost) si quieres volver a lanzar el comando (en el ejemplo que has copiado lo usas cuatro veces)
Si prefieres, cámbiate al directorio /tmp (con un simple cd /tmp) y lanza foremost con los parámetros que se indican en el artículo.
Si lees detenidamente descubriras que, por defecto, los archivos recuperados aparecerán en el directorio en el que lances el comando.
¡Suerte!
Me gustaMe gusta
¡Muchas gracias!
Muy buena información, y no sólo en este artículo sino en todo el blog.
Me gustaMe gusta
Genial tío!
Por cierto, como podemos indizar tu blog? Realmente es algo magnífico, pero el poder sistematizar una búsqueda sería maravilloso.
Jose-Antonio.
Me gustaMe gusta
Gracias a los dos
@joseAnq, no termino de ver qué necesitas hacer (el blog tiene caja de búsquedas abajo a la derecha) si me detallas un poco más lo que necesitas lo mismo te echo una mano 🙂
Me gustaMe gusta
me ejplico.
ayer sin ir más lejos estaba pensando en montar un servidor samba para varios guindous que tiene un amigo, en ubuntu precisamente y pensé que igual era uno de los temas que habías tratado. me recorrí todo el blog y no lo encontré. depués lo encontré en internet y lo montaré uno de estos días.
lo cierto es que ya hay un montón de temas en el blog y si hubiera una especie de índice, pues sería magnífico poder saber lo que contiene el blog.
Jose-Antonio.
Me gustaMe gusta
mmm bacano bacano para salvar la info que esté por ahí … pero yo tengo una pregunta… un DVD por ejemlo que tenga un pedazo rayado … al hacer esto no copia el ese capitulo rayado … o acaso el pedazo en el que se raya la pelicula… ¬ ¬ bueno ahora que lo pieso … tocaría hacer la prueba … jeje saludos ciao Buena info
Me gustaMe gusta
Hola
He podido recuperar la mayor parte de un pendrive dañado que no leia ni WXP, ni WV, ni Mac. Muchissimas gracias por tu informacion. Saludos
Me gustaMe gusta
No sabes lo que me alegra saber que has podido recuperar parte de la información perdida (enhorabuena)
Me gustaMe gusta
Saludos, estoy nuevo usando Linux, excelente sistema, amigos me han traído muchos pendrive (memoria USB) infectadas por completo de virus, por lo seguro de no dañar las computadoras y dicen que por eso es muy bueno (por el momento no lo usan en casa, ya que requieren sistemas dependientes de linux ellos son medicos) el caso es que, pues facil solo colocaba el pendrive y visualizaba y borraba los archivos que eran virus y todo bien. Ahora temgo un problemita, me han traido un pendrive que igual lo monto y veo el archivo con el virus y lo borro, el caso es que el desmontarlo, el solo se monta nuevamente y aparece todo lo borrado como si nada. Me dije listo hago una copia y formateo, el caso que cuando desmonto por consola o grafico se monta solo nuevamente el pendrive. Necesito formatear el pendrive pero debe de estar desmontado para ello, como evitar que se monte automaticamente el pendrive? he visto que el pendrive tiene sectores dañados. un fragmento de lo que me sale:
[ 5912.886899] Buffer I/O error on device sdb1, logical block 1
[ 5912.886907] lost page write due to I/O error on sdb1
[ 5912.886920] Buffer I/O error on device sdb1, logical block 15433
[ 5912.886923] lost page write due to I/O error on sdb1
[ 5912.886928] Buffer I/O error on device sdb1, logical block 15436
[ 5912.886931] lost page write due to I/O error on sdb1
[ 5936.667142] usb 5-8: new high speed USB device using ehci_hcd and address 7
[ 5937.421947] usb 5-8: configuration #1 chosen from 1 choice
[ 5937.422434] scsi7 : SCSI emulation for USB Mass Storage devices
[ 5937.422985] usb-storage: device found at 7
[ 5937.422989] usb-storage: waiting for device to settle before scanning
[ 5942.414116] usb-storage: device scan complete
[ 5942.415239] scsi 7:0:0:0: Direct-Access USB 2.0 USB Flash Drive 0.00 PQ: 0 ANSI: 2
[ 5942.419711] sd 7:0:0:0: [sdb] 7897087 512-byte hardware sectors (4043 MB)
[ 5942.420573] sd 7:0:0:0: [sdb] Write Protect is off
[ 5942.420578] sd 7:0:0:0: [sdb] Mode Sense: 00 00 00 00
[ 5942.420581] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 5942.423690] sd 7:0:0:0: [sdb] 7897087 512-byte hardware sectors (4043 MB)
[ 5942.424565] sd 7:0:0:0: [sdb] Write Protect is off
[ 5942.424569] sd 7:0:0:0: [sdb] Mode Sense: 00 00 00 00
[ 5942.424572] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 5942.424579] sdb: sdb1
[ 5942.490830] sd 7:0:0:0: [sdb] Attached SCSI removable disk
[ 5942.490884] sd 7:0:0:0: Attached scsi generic sg2 type 0
[ 5975.022514] sd 7:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[ 5975.022525] sd 7:0:0:0: [sdb] Sense Key : Data Protect [current]
[ 5975.022533] sd 7:0:0:0: [sdb] Add. Sense: Write protected
[ 5975.022539] end_request: I/O error, dev sdb, sector 64
[ 5975.022544] Buffer I/O error on device sdb1, logical block 1
[ 5975.022551] lost page write due to I/O error on sdb1
[ 5975.023799] sd 7:0:0:0: [sdb] Device not ready: Sense Key : Not Ready [current]
[ 5975.023807] sd 7:0:0:0: [sdb] Device not ready: Add. Sense: Medium not present
[ 5975.023814] end_request: I/O error, dev sdb, sector 15496
[ 5975.023819] Buffer I/O error on device sdb1, logical block 15433
[ 5975.023823] lost page write due to I/O error on sdb1
[ 5975.024756] sd 7:0:0:0: [sdb] Device not ready: Sense Key : Not Ready [current]
[ 5975.024764] sd 7:0:0:0: [sdb] Device not ready: Add. Sense: Medium not present
[ 5975.024772] end_request: I/O error, dev sdb, sector 15499
[ 5975.024776] Buffer I/O error on device sdb1, logical block 15436
[ 5975.024781] lost page write due to I/O error on sdb1
[ 5976.415770] sd 7:0:0:0: [sdb] 7897087 512-byte hardware sectors (4043 MB)
[ 5976.416393] sd 7:0:0:0: [sdb] Write Protect is off
[ 5976.416400] sd 7:0:0:0: [sdb] Mode Sense: 00 00 00 00
[ 5976.416403] sd 7:0:0:0: [sdb] Assuming drive cache: write through
root@Equipo3:~#
Yo creo que esta haciendo una imagen en algun lado donde, quisas en /temp, borro todo lo que esta alli y nada.
alguien me puede orientar dar una mano. Gracias…
Me gustaMe gusta
Me surgen algunas dudas pero la principal es la distribución Linux que estás usando para hacer estas pruebas.
Cuando lo desmontas, ¿cómo lo haces?
¿Sería posible que me enviases una imagen iso del contenido del pendrive para poder echarle un vistazo tranquilamente y comprobar si ocurre igual en mi equipo?
Saludos y, si es posible, envia las preguntas a través de la pestaña de Soporte Técnico para evitar molestar al resto de visitantes con preguntas particulares, ¿te parece? 😉
Me gustaMe gusta
¿Y si el ordenador ni siquiera reconoce el pendrive, hay alguna solución?
Me gustaMe gusta
Si no lo reconoce mal negocio 😦
¿ni dmesg ni lsusb detectan su presencia?
Me gustaMe gusta
Hola, hace un par de semana mi pendrive kingstom de 4gb dejo de funcionar, aparece en todos los wondows como «no se reconoce el dispositivo usb». Durante este tiempo he probado todo sin encontrar solucion a este problema; necesito recuperar la info y llegue a este blog, mi pregunta es, tengo win7, qué debo hacer para montar linux?? y poder probar si puedo salvar la info del pendrvie
Me gustaMe gusta
Te recomendaría que usases cualquier Linux con un livecd (si te gusta y sirve luego te lo podrías instalar en el equipo ;))
Esto te permitiría trabajar con él sin modificar tu equipo
Me gustaMe gusta
¿ Se podria usar de forma similar para recuperar no solo de un pendrive, dvd, o cdrom, sino también desde un disco duro externo, una partición, o un directorio cualquiera ?
Me gustaMe gusta
Se podría, de hecho la he usado para recuperar algún que otro DVD 😉
Me gustaMe gusta
Tengo dos dudas:
1- He visto que los tipos de archivos que foremost es capaz de recuperar son avi, mpg, bmp, dll, png, jpg, pdf, doc, docx, gif, htm, jar, ole, ppt, rar, zip, exe, wav,xls.
No he visto, y por ello te lo pregunto, si también puede recuperar archivos mp3.
2- Esta claro, lo he probado, que se puede usar para recuperar información perdida de cdrom, dvd, pendrive, pero tengo dudas sobre otros dispositivos: particiones aparte de las del sistema ( por ejemplo particiones en formato ntfs, o fat32 )discos duros externos, ipod o similar, lectores de mp3, cámaras digitales de fotos, teléfonos móviles, etc Yo supongo que se debería poder hacer sobre cualquier dispositivo que el sistema sea capaz de montar como sistema de almacenamiento de datos…pero…
Me gustaMe gusta
Parece que en la última versión del programa sigue sin admitir ficheros mp3 (aunque si mpg y mp4); siempre podrías modificar el fichero de configuración y añadir la cabecera y pie que permita al programa recuperarlos (esto supone un rato largo de pruebas y no está garantizado el resultado)
Respecto a la pregunta de otras unidades: siempre puedes utilizar (si el tamaño no es excesivamente grande y tienes donde almacenarlo) una iso de dicha partición y tirar contra ella tal y como se indica en el artículo; otra posibilidad sería utilizar el parámetro -i contra la ruta de la partición a gestionar (p.e. /dev/sdb1) en lugar de usar la iso.
Yo personalmente prefiero hacer una imagen con dd para evitar problemas y/o que se pierda información por error
Me gustaMe gusta
He encontrado este otro sistema de recuperación de datos perdidos:
instalar el paquete testdisk ( viene en casitodas las distros ) y con el se instala el programa photorec, con éste es con el que también se pueden recuperar datos perdidos.
Como usar photorec: http://www.scribd.com/doc/17390213/Recuperacion-de-fotos-y-archivos-de-memorias-USB-con-PhotoRec-en-Ubuntu-904
Lista de archivos que photorec recupera: http://www.cgsecurity.org/wiki/Formatos_De_Archivos_Recuperados_Por_PhotoRec
Me gustaMe gusta
Te felicito por este peazo de post!!!! Me he ido de PM
Alex
Me gustaMe gusta
Impresionante post con un nivelazo, que asusta, lo guardare en favoritos, no conocia el blog pero vi un tuit de @juansegui y entre a leer.
Un saludo.
Saul @tercomax
Me gustaMe gusta
Me alegra que te hayan gustado tanto el post como el blog.
Espero poder seguir ofreciendo contenido de calidad y, sobre todo, utilidad.
Un saludo y bienvenido a este «rincón» de la web 😉
Me gustaMe gusta
Muchas gracias por la información. He recuperado información que ya daba por perdida.
Me gustaMe gusta
Enhorabuena @Rubén
Me gustaMe gusta
hola hice todo tal cual indicas pero al momento de extarer los archivos me dice que finalizo exitosamente sin embargo no los veo en la carpeta que esta .iso como hago??? muchas gracias
Me gustaMe gusta
Gabi, los archivos se almacenan en la carpeta DESDE la que invocas el comando.
Lo marcaré en «negrita» en el artículo pues parece que se pierde un poco la información (gracias)
Salu2
Me gustaMe gusta
Es genial!!! Funcionó perfecto.
Gracias!!
Me gustaMe gusta
Hola:
He hecho todos los pasos y he creado la imagen .iso de mi pendrive en el directorio /tmp.
Hasta ahí todo bien.
Luego el siguiente comando:
foremost -v -i /tmp/pendrive.iso
Ha trabajado bastante tiempo y luego cuando ha terminado…
¿dónde veo mis archivos?
En el directorio /tmp no están, allí está la imagen .iso
También he grabado la imagen pendrive.iso en un dvd con el programa Brasero pero luego al meter el dvd en mi lectora, no reconoce el dvd y no puedo mirar nada.
¿Cómo hago para recuperar mis archivos de la imagen pendrive.iso?
Gracias, me es de vital importancia.
Alejandro
Me gustaMe gusta
Los archivos recuperados aparecen en el directorio en el que lanzas foremost.
¿De qué tipo son los archivos? Si se trata de fotos te recomiendo probar PhotoRec
Me gustaMe gusta
Hola amigo:
Estoy aprendiendo contigo y las respuestas de los demás,cuando sepa un poco más,te preguntaré cosas de menos novato.
Sólo quiero darte las gracias por el trabajo que haces
Juan
Me gustaMe gusta
Todos somos novatos (en mayor o menor medida) en algo Juan… no temas preguntar por muy simple que te parezca; será un placer acompañarte en el aprendizaje y seguro que otros aprendan de ti 😉
Me gustaMe gusta