Por mucho que la mayoría estemos concienciados que no hay nada como una copia de seguridad de nuestros datos para dormir tranquilo, hasta los usuarios más experimentados a veces se confían y experimentan esa desagradable sensación que es perder una base de datos importante, un archivo de configuración del sistema o unos documentos de tipo personal de los que nos olvidamos de hacer backup.

Así que he hecho una recopilación de media docena herramientas en GNU/Linux que pueden ayudarnos a recuperarnos de este tipo de desastres.

Son herramientas que en mayor o menor medida he probado y puedo constatar que funcionan a la hora de recuperar datos del disco duro, de hecho si utilizáis el buscador del blog podréis encontrar algún tutorial sobre recuperación de archivos, con alguno de estos programas.

TestDisk

Es un software diseñado principalmente para recuperar las tablas de particiones cuando están dañadas o han sido borradas por error, bastante útil a la hora de restaurar sistemas corruptos que son incapaces de iniciarse, y que suele venir por defecto en varios distros especializadas, como por ejemplo Knoppix.

El programa es multiplataforma, puede correr en DOS, Windows,Linux,FreeBSD, NetBSD, OpenBSD,SunOS y MacOS X.

Ademas cuenta con una excelente documentación traducida al español, que convierte en un juego de niños recuperar cualquier tipo de archivo del pc, memoria USB o tarjeta SD, ya que puede manejar archivos FAT 12/16/32 , NTFS, y EXT.

Scalpel

Es una utilidad GNU/Linux que utiliza la técnica de File Carving (supongo que podríamos traducir por talla de archivo) y que es capaz de «leer» los encabezados, pies de página y estructura interna de los archivos, accediendo a la base de datos de bloques donde están los archivos borrados, siendo capaz de identificar y recuperar al instante todo tipo de archivos: FAT, NFTS, EXT, HFS, etc..

Es un programa muy útil para el análisis forense de archivos y para efectuar recuperaciones selectivas, ya que editando su configuración podemos seleccionar que tipo de extensiones de archivo, queremos recuperar.

En este ejemplo como véis he conseguido recuperar fotos borradas de un pendrive, mas de 1000 en aproximadamente un cuarto de hora.

En esta entrada encontraréis un sencillo tutorial sobre su manejo.

SafeCopy

Es un programa de recuperación de datos de cualquier tipo de fuente problemática como unidades de disco con sectores defectuosos, unidades extraibles como CDs, unidades USB, dispositivos de cinta, etc y es capaz de recuperar los datos sin errores en un archivo de salida.

El programa se ejecuta en linea de comandos, y aunque dispone de varias opciones más complejas, que nos permite determinar el grado de profundidad o la rapidez en la recuperación, podríamos decir que la sintáxis básica es:

safecopy /dev/source output.img

Donde dev/source es la partición o disco duro del que queremos recuperar datos y output.img la imágen que se crea con los archivos recuperados. Por ej:

safecopy /var/run/media/jose/2BD2-80F0 destino.img

Foremost

Es otra utilidad en linea de comandos, en este caso desarrollada por la fuerza aerea de los Estados Unidos, que hace uso de la técnica del data mining, lo que permite recuperar los archivos basándose en sus encabezados, pies de página y estructura interna de los mismos, siendo compatible una cantidad impresionante de formatos: avi, bmp, dll, doc, docx, exe, gif, htm, jar, jpg, mbd, mov, mp4, mpg, ole, pdf, png, ppt, pptx, rar, rif, sdw, sx, sxc, sxi, sxw, vis, wav, wmv, xls, xlsx, zip.

Al igual que nos pasaba con Scalpel también nos permite filtrar por tipos de archivos, lo cual es muy útil cuando estamos hablando de discos duros de varios TeraBytes. Aquí tenéis un artículo en el que podéis consultar su uso e instalación en GNU/Linux.

GNU Ddrescue

Este programa de recuperación de datos del proyecto GNU copia los datos de un archivo o dispositivo de bloques (disco duro, CD-ROM, unidad de flash, etc) a otro, tratando de rescatar primero las partes buenas en caso de errores de lectura, siguiendo una filosofía muy similar a la herramienta SafeCopy que citamos antes.

GNU Ddrescue es un programa nacido originalmente para usar en la terminal, aunque últimamente han surgido algunas interfaces gráficas como DDRescue-GUI que hacen su manejo más sencillo para los no habituados, a la linea de comandos.

Un ejemplo básico de su uso, sería rescatar datos de un disco duro dañado(/dev/sdb1) y volcarlos en otro que esté vacío (/dev/sdc):

ddrescue -f /dev/sdb1 /dev/sdc logfile.ddrescue

En todo caso es muy recomendable leerse el manual y tener un conocimiento mínimo de las particiones en GNU/Linux antes de ponerse a jugar con él, ya que nos podemos cargar el sistema (y esta advertencia es valida para el resto del programas)

PhotoRec

Es un software que en muchas distribuciones, se distribuye junto a la herramienta de análisis, Testdisk.

Al igual que los anteriores está diseñado para recuperar archivos perdidos, como videos, documentos, archivos de discos duros, CD-ROM, y las imágenes borradas de las tarjetas de memorias de las cámara digitales (de ahí el nombre).

PhotoRec ignora el sistema de archivos, y hace una búsqueda profunda de los datos, funcionando incluso si dicho sistema de archivos está muy dañado o ha sido formateado.

Tradicionalmente lo he utilizado desde la terminal, pero estos días que lo he vuelto a instalar, he descubierto su bonita y eficiente interfaz QPhotoRec.

Que nos permite seleccionar entre diferentes tipos de sistemas de archivos ext2/ext3/ext4, ReiserFS, FAT, NTFS, HFS+ y una inmensa cantidad de formatos

Podéis obtener más información sobre como usar Photorec e instalarlo en las diferentes distros GNU/Linux en este post.

Seguramente me habrá dejado algunos programas interesantes en el tintero, así que estoy esperando vuestros comentarios para en un futuro mejorar la selección.

¿A todo esto cual es vuestro programa de recuperación de datos favorito?