lunes, 4 de enero de 2010

Recuperar archivos borrados en Ubuntu (y cualquier distro linux) con ext3 y ext4

Hace un tiempo atrás, en un momento de stress y de cansancio, borré accidentalmente mis archivos ejecutando una orden vía línea de comandos bastante dura:

jpalma@smith:~$ rm -rf *

No me pregunten porqué, sólo di enter y al pasar un segundo me percaté del tremendo error y corté la operación.

Mientras me corría un frío desde el estómago, me puse a revisar el directorio que mas me importaba, el que contenía los archivos en los que estaba trabajando hace tres meses.......pero no estaba.......

Y adivinen que.....no tenía respaldos.....en casa de herrero cuchillo de palo.....

Luego de descargar mi ira contra lo primero que encontré (los audifonos), me di a la tarea de recuperar algo de lo perdido, y este es el procedimiento que recomiendo:

1.- Apagar el equipo lo antes posible:

Evitar escribir en el disco es primordial cuando se quiere recuperar archivos borrados, pues por si alguno de uds no lo sabe, cuando le damos borrar a un archivo el sistema operativo no lo borra, sino que borra el inodo que nos da acceso a el. Luego de esto el sistema de archivos asume que el archivo sin inodo es sobreescribible con datos nuevos......asi de duro...

2.- Partir el equipo con un Live-CD de Linux:

Normalmente la gente busca esos de recuperación con muchas herramientas como system-rescue , que en este caso vamos a pasar....para dar uso a un CD de instalación de Ubuntu, cualquier versión debiera servir pero recomendamos que sea de las últimas...

3.- Una vez operativo el sistema, conectar el equipo a internet, a fin de poder descargar lo necesario.

4.- Instalar las herramientas base de compilación (las "instala" en el disco virtual RAM):

sudo aptitude install build-essential e2fsprogs e2fslibs-dev

5.- Descargar extundelete:

Este es el software que intenta recuperar los archivos borrados..

6.- Descomprimir y compilar:

jpalma@smith:~/Downloads$ bunzip2 extundelete-0.1.8.tar.bz2
jpalma@smith:~/Downloads$ tar xvf extundelete-0.1.8.tar
extundelete-0.1.8/
extundelete-0.1.8/src/
extundelete-0.1.8/src/extundelete-priv.h
extundelete-0.1.8/src/extundelete.h
extundelete-0.1.8/src/insertionops.cc
extundelete-0.1.8/src/kernel-jbd.h
extundelete-0.1.8/src/block.h
extundelete-0.1.8/src/block.c
extundelete-0.1.8/src/Makefile
extundelete-0.1.8/src/jfs_compat.h
extundelete-0.1.8/src/extundelete.cc
extundelete-0.1.8/testing.txt
extundelete-0.1.8/README
extundelete-0.1.8/LICENSE
jpalma@smith:~/Downloads$ cd extundelete-0.1.8/
jpalma@smith:~/Downloads/extundelete-0.1.8$ cd src

jpalma@smith:~/Downloads/extundelete-0.1.8/src$ make
g++ -I. -g -W -Wall -Wredundant-decls -Wshadow -Woverloaded-virtual -Wpointer-arith -Wwrite-strings -c -o extundelete.o `test -f 'extundelete.cc' || echo './'`extundelete.cc
g++ -I. -g -W -Wall -Wredundant-decls -Wshadow -Woverloaded-virtual -Wpointer-arith -Wwrite-strings -c -o block.o `test -f 'block.c' || echo './'`block.c
g++ -I. -g -W -Wall -Wredundant-decls -Wshadow -Woverloaded-virtual -Wpointer-arith -Wwrite-strings -c -o insertionops.o `test -f 'insertionops.cc' || echo './'`insertionops.cc
g++ -o extundelete extundelete.o block.o insertionops.o -lext2fs


7.- Conectar un disco externo:

Altamente recomendable, ya que en se debe evitar a toda costa escribir en el disco de Sistema Operativo

8.- Intentar recuperar los archivos:

./extundelete --restore-all /dev/sdaX --restore-file /path_al_disco_externo

9.- Ver los archivos recuperados:

Luego podrás ver que es lo que pudo recuperar extundelete en el directorio RECOVERED_FILES

Mas adelante veremos como evitar todo esto implementando alguna de las tantas opciones de respaldo.....

Saludos y Feliz 2010!!

No hay comentarios:

Publicar un comentario