Aprende a diseñar con Inkscape Securizando Wordpress I
Jan 17
-->

Seguramente hayáis borrado alguna vez algún archivo por equivocación en vuestro Linux y después soltado alguna maldición al daros cuenta. Es sabido que recuperar ficheros borrados en Linux es mucho más difícil que en Windows. Sin embargo, hoy explicaré cómo recuperar ficheros borrados fácilmente, primero sin usar la temida consola y luego con ella. Primero un poco de contexto para entender el asunto a fondo.

Aunque cuidado con que sacáis de las papeleras, ¡que podéis encontraros de todo!

alapapelera.png

¿En qué consiste la operación de borrado?
Bueno, pues mucha gente borra cosas en su ordenador sin entender muy bien qué hace el ordenador con esos datos. ¿A dónde van? Una explicación sencilla que se suele dar para explicar esto, es que un ordenador funciona como un libro que tiene un gran índice que se puede ir editando. El índice indica la página donde se guardaran los datos. Así el sistema operativo indexa y maneja los datos. Cuando quiere borrar algo, no arranca la página, ni la tacha, simplemente borra la entrada del índice. Así cuando toque utilizará esa página de nuevo reescribiendo encima.

Cierto es que este comportamiento depende de una capa lógica denominada filesystem o sistema de ficheros. Sí hombre, si usas Linux esto te tiene que sonar: ext3, reiserfs… En el ejemplo anterior, los sistemas de ficheros se podrían considerar unas reglas y estándares que indican qué información debe aparecer en el índice, como editar las páginas…

¿Por qué es más difícil recuperar ficheros en Linux que en Windows?
El sistema de ficheros de Windows, centrándonos en NTFS, está hecho para cubrir el error humano del usuario, no se sabe si por casualidad o como feature que diría Microsoft. El caso es que cuando se borra la entrada del índice, por así decirlo, se puede leer lo que había escrito antes si miramos fijamente. Mientras que en Linux esto no ocurre.

La explicación técnica para el que quiera leerla, es que por ejemplo ext3 rellena con ceros todos los punteros de bloques del i-nodo correspondiente al fichero. Característica que no tenía el sistema de ficheros del que evoluciona ext2. Por eso en ext2 resulta mucho más sencillo recuperar datos borrados, utilizando una herramienta llamada debugfs. Sin embargo, esta característica no está puesta por los desarrolladores con mala leche, sino para evitar problemas con el journal cuando el sistema se cuelgue o apague por cortes luz.

¿Podré recuperarlo todo?
Hombre, tampoco es que esto sea Renault ocasión, si la página ha sido reescrita, es decir, si los bloques donde estaba el fichero han sido reutilizados, recuperarlo queda fuera de técnicas software. Sin embargo, resulta sorprendente la cantidad de información que puede salvarse incluso después de un formateo (esta es otra historia que pronto os contaré).

GRESCUE
Estaba yo lamentando la calamidad de haber borrado un trozo de una práctica para la Universidad, cuando en Gnome files di con una
herramienta de nombre Grescue, poco conocida. Grescue es una interfaz gráfica (GUI) para un programa llamado magicrescue.

Magicrescue es un programa de línea de comandos capaz de recuperar datos de cualquier sistema de ficheros. Para ello utiliza los magic numbers (que son combinaciones binarias que tienen los ficheros según de qué tipo sean que los identifica de forma única) y llama a otros programas para recuperar los trozos reconocidos. No es tan efectivo como una recuperación manual, pero si lo suficiente en la mayoría de los casos. Este software no funciona demasiado bien en sistemas de ficheros demasiado fragmentados, pero esto no suele ser un problema ya que es poco común.

En la página oficial de este software libre podremos acceder al código y otros detalles. Para aprender a utilizarlo el mejor manual es su página man, pero gracias a grescue no será necesario.

INSTALACIÓN Y FUNCIONAMIENTO
Grescue tiene pocas versiones y está en fase beta, preliminar, pero resultará fácil instalarlo y sacarle provecho, creedme. En su página de desarrollo de google code, podremos bajarnos el código, un .deb o un binario. Para instalarlo nos descargamos el .deb para Ubuntu/Debian de aquí y luego en una consola hacemos:

sudo apt-get install magicrescue
sudo dpkg -i /ruta/descarga/grescue_0.1.2~welemski1_i386.deb

Una vez hecho esto tendremos un icono en “Aplicaciones >> Herramientas del sistema >> GRescue”.

grescuemenu.png

La interfaz no es muy comercial pero es efectiva. Esta es la primera ventana que nos aparecerá:

grescueinicio.png

Pincharemos en el botón inferior derecho que dice “Start Rescue” o “Comenzar Rescate” y nos aparecerá una ventana donde configurar los parámetros que queremos recuperar:

grescueparametros.png

En mi caso quiero recuperar todas las imágenes png de mi partición home que haya borrado y que las ponga en el directorio /home/miguel. Ahora bastará con darle al start y esperar, puede que tu máquina se ralentice un poco, es normal piensa que está barriendo el dispositivo a nivel de bloque.
Si salta algún error, deberás estudiarlo, puede que necesite otras aplicaciones que no tengas instaladas para recuperar el fichero que haya encontrado. Por ejemplo, para recuperar .avis tendremos que tener instalado mencoder.

sudo apt-get install mencoder

Cuando acabe, aparecerá todo lo que ha recuperado que encaje con la descripción en el directorio que hayamos especificado.

Otras técnicas y programas
Un día pienso dedicar un artículo entero a lo que sería una recuperación manual al completo, así que este tema queda pospuesto. Sin embargo, magicrescue no es la única opción que disponemos en Linux para recuperar ficheros. Podemos buscar una solución de software específica para nuestro sistema de ficheros. Así pues, si utilizamos ext3, bastarías con buscar en google “undelete ext3″ (undelete es la palabra en inglés para recuperar ficheros borrados). El caso es que la mayoría de estos programas, suelen estar en fase beta (preliminar) o alfa, y suelen ser de línea de comandos.

PARA PROFUNDIZAR. SI NO TE ASUSTA LA LÍNEA DE COMANDOS
La recuperación de datos se considera una técnica de análisis forense (una rama de la seguridad que analiza un equipo después de que su seguridad haya sido comprometida). En inglés el término es “data carving” y destacan tres herramientas:

  • Foremost: Una aplicación de línea de comandos muy potente.
  • Photorec: Un software libre y gratuito multisistema orientado a recuperar contenido multimedia de memorias portátiles, discos duros y cds. En su wiki disponéis de un manual paso a paso sobre su uso.
  • Sleuthkit: Una herramienta muy completa de análisis forense que se utiliza en entornos profesionales. En un charla de David Barroso de Secuware en mi Universidad mencionó que utilizaban esta aplicación. El problema es que es demasiado completa y grande para solo recuperar ficheros fácilmente. Existen diversas GUIs que trabajan de wrappers de este software por Internet.

Si conocéis alguna otra alternativa interesante, sencilla o potente espero que me la recomendéis.

Artículos relacionados:

-->

10 Respuestas to “Recupera ficheros borrados por equivocación en Linux”

  1. Gravatar
    dorje Comenta:

    Hola,
    Al intentar descargar el .deb para Ubuntu/Debian va ok, pero a la hora de instalar da error!
    error: Dependency is not satisfiable: magicrescue :-(

  2. Gravatar
    Miguel Comenta:

    Hola dorje:

    ¿Has leído bien los comandos de instalación? ¿Qué ocurre cuando hace “sudo apt-get install magicrescue”?

  3. Gravatar
    Martin Comenta:

    Excelente informe.
    Muy completo.
    Saludos.

  4. Gravatar
    SynWenn Comenta:

    Interesante artículo, normalmente no suelo usar las GUI para estos temas, pero le echaré un ojo al ‘magicrescue’ y al ‘grescue’. También me ha gustado la lista de utilidades adicionales que das al final.

    Buen artículo, te añado a mi blogroll.

  5. Gravatar
    josekont Comenta:

    Excelente articulo amigo, muy completo y muy elaborado. Gracias por la información ya que uno no sabe en que momento puede perder un dato importante accidentalmente.

    Saludos!

  6. Gravatar
    Como recuperar ficheros borrados por accidente en Linux « ObuX hecho por JoseKont Comenta:

    […] Recuperar ficheros borrados en Linux […]

  7. Gravatar
    Enio Comenta:

    @dorje: asi puedes ver las dependencias de tus programas a instalar desde consola: apt-cache depends “programa”, en este caso seria: apt-cache depends magicrescue… por cierto me gusto mucho este post… lo probare en unos instantes… exitos en todo.

  8. Gravatar
    magnolia Comenta:

    Este software no funciona sino con extenciones pero le hace falta .php

  9. Gravatar
    DinoBo0t Comenta:

    KE ONDA DONDE ESTA LA PARTE DONDE EXPLICAN, PRA DESPUES DEL FORMATEO?????????????????????????????????????????????????????????????????
    ?????????????????????????????
    ?
    ?
    ?
    ?
    ?
    ??
    ??

    ??
    ?
    ?


    ??

  10. Gravatar
    anna Comenta:

    eSlILX gghjyuy

Deja un comentario