Recuperar ficheros en Linux con Scalpel.

31/03/2009

Es posible que alguna vez hemos cometido el error de eliminar un fichero y no saber o no poder recuperarle, por suerte Linux existe una herramienta de código abierto llamada Scalpel.

Imagen de disco duro.

Imagen de un disco duro.

Scalpel utiliza una técnica llamada In-Place File Carving. El File Carving es una conocida técnica para recuperar archivos borrados que consiste en identificar una secuencia de caracteres que algunos archivos utilizan en su comienzo y en su final. Por ejemplo, un archivo JPEG utiliza la secuencia “\xff\xd8\xff\xe0\x00\x10” en su comienzo, y la secuencia “\xff\xd9” en su final.

Este programa puede ser compilado en Linux, como ya hemos mencionado, en Windows y Mac OS X.

Vamos a explicar como la podemos utilizar.

Primero tenemos que instalar scalpel, para lo cual podemos ir a Synaptic, buscar “scalpel”, seleccionar e instalar (haciendo click en “Aplicar”), o bien abrir un terminal y escribir:

$ sudo apt-get install scalpel

Estas dos operaciones instalará la aplicación en el sistema. El programa esta muy bien ya que es una herramienta potente, y el único pero que la pongo es que su uso no sea muy intuitivo ya que requiere la utilización de la consola para definir los ficheros con los que queremos trabajar.

Sigamos, tenemos que editar el fichero de configuración para lo que abriremos de nuevo un terminal y escribiremos:

$ sudo gedit /etc/scalpel/scalpel.conf

Podemos ver que en el fichero está explicado el funcionamiento por RegEx (Expresiones Regulares).

Imaginemos que queremos recuperar un fichero .html que borramos accidentalmente, en la línea 162 tenemos ese ejemplo de fichero (será bueno que os leais estos ejemplos para entender el funcionamiento), en nuestro caso iremos hasta esa línea y quitaremos el comentario (simplemente bastará con eliminar el caracter # que está al comienzo de la misma).

Después de guardar las modificaciones volvemos a la consola.

Lo siguiente será indicarle al programa que los ficheros .html que hemos eliminado de nuestro disco se coloquen en un carpeta llamada “html_recovered”, y recuperaremos los datos que se encontraran en la partición /dev/sda5 (esto como repetimos es un ejemplo, podéis guardar los datos recuperados en la carpeta que queráis y buscarlos donde sea oportuno), para lo que escribiremos el comando:

$ sudo scalpel /dev/sda5 -o html_recovered

Después de un tiempo de funcionamiento, la duración dependerá del tamaño de la partición, tendremos los resultados.

En dicha carpeta existirán multitud de archivos recuperados, por lo que buscar nuestro archivo seguirá siendo como buscar una aguja dentro de un pajar. Para eliminar gran parte de los resultados, que no nos atañen buscaremos, solo por aquellos en los que nuestro usuario ha tenido algo que ver, para esto escribiremos en consola (sustituyendo USER por nuestro nombre de usuario):

$ sudo chown -R USER.USER html_recovered

Después de un poco de tiempo tendremos listos los resultados de esta criba, en la que ya nos será más sencillo localizar el archivo borrado.

Fuentes:

Anuncios