Linux en Español

Recuperar archivos eliminados en Linux (Tutorial para Principiantes)

¿Alguna vez a eliminado algún archivo importante por error? ¡Quien no! Está bien, pero ¿puedo recuperarlos? En este post, usted aprenderá como recuperar archivos eliminados en Linux utilizando varios programas en diferentes sistemas de archivo.

Usted vera como recuperar archivos eliminados de tarjetas SD, HDDs, y particiones eliminadas de diferentes sistemas de archivos Linux como EXT3, EXT4 e incluso desde los sistemas de archivo Windows como FAY32 Y NTFS.

 

 

Recuperar archivos de particiones eliminadas

Este es un gran problema. Algunos, usuarios Linux frecuentemente instalan varios sistemas al mismo tiempo y ellos pueden eliminar una partición por error durante el proceso de instalación.

Sin embargo, ¿cómo recuperar archivos de esas particiones eliminadas? Para esto, necesitamos recuperar la partición utilizando una herramienta llamada TestDisk.

TestDisk es una utilidad poderosa de análisis de partición y recuperación de datos. Está embarcada con un largo número de distribuciones de Linux como Debian y Ubuntu.

Por otra parte, la aplicación es inter plataforma y soporta un gran número de tablas de partición como Intel, MSDOS, y Mac. Estas son las tablas de partición más populares.

También, soporta muchos sistemas de archivo como NTFS, EXT4 y otros sistemas de archivo no tan populares como BeOS y ReiserFS.

Cuando un archivo es borrado, la lista de los clusters ocupados por el archivo es borrado, marcando esos sectores disponibles para su uso. Si los clusters no han sido sobre escritos, Test Disk puede recuperar los archivos.

Primero inicie la aplicación de la siguiente manera:

$ testdisk

Luego, tendrá la opción de crear un nuevo archivo para los inicios de sesión. Si quiere crear uno, elija la opción créate y presione Enter. Si no quiere un archivo para inicio de sesión, selecciones la opción No Log.

Usando testdisk

Posteriormente, los discos o particiones reconocidas por el sistema serán escaneadas. En este caso particular, sda es la partición que queremos recuperar.

Escanea los dispositivos

TestDisk reconoce varios tipos de tablas de partición. Usualmente es Intel. A menos que esté utilizando una especializada.

Seleccione la tabla de particiones

En la proxima pantalla, observará una serie de opciones que el progrma tiene. para este caso en particular, necesitamos escoger la opnción de analyse.

Con esta opción, el programa exhaustivamente analizara el disco para encontrar la estructura.

Analiza el disco

Entonces, le preguntara sobre el tipo de búsqueda que desea hacer. Elija la opción Quick Search.

La estructura de partición

Si tiene suerte, observara la partición eliminada. Si no, tendrá que escoger una búsqueda profunda.

Usando TestDisk

Entonces, elija la opción Write para escribir la tabla de partición. Cuando termine, reinicie el sistema y usted tendrá su partición de vuelta!.

Recuperar una partición

Reiniciar para aplicar los cambios

Note que, durante estos pasos, puede tomar un largo tiempo. Dependiendo del tamaño del disco.

De acuerdo al tipo de sistema de archivo, que pueda tener esta partición, instrucciones particulares que deben ser seguidas, ellas serán detalladas posteriormente.

 

Recuperar datos desde una unidad externa

Ahora imaginemos que tiene una unidad flash externa y por error, usted ha eliminado archivos de ella. ¿Como restaurarlos?

Gracias a testDisk, el proceso se convierte en algo similar al de una partición eliminada. Pero existen algunas diferencias.

Para iniciar el programa utilizaremos el comando testdisk. También, podemos agregar la unidad flash como parámetro de esta manera:

$ sudo testdisk /dev/sdb

TestDisk para recuperar archivos

Entonces, seleccione proceder. Luego, elija el tipo de tabla de partición.

Seleccione la tabla de particiones

Luego seleccione la opción Advanced para recuperar los archivos.

Opciones avanzadas en TestDisk

El próximo paso es seleccionar la partición y la opción Undelete.

Recuperar archivos con TestDisk

Entonces, usted observará todos los archivos eliminados en la partición.

Recuperar archivos con TestDisk

Ahora, seleccione la carpeta de destino para colocar los archivos recuperados. Usted necesita presionar C en la primera opción para colocar los archivos en el directorio actual.

Seleccione la carpeta de destino

Finalmente, usted observará este mensaje:

Todo bien con TestDisk

¡Felicitaciones! Archivos restaurados.

 

Recuperar archivos eliminados de una tarjeta SD

Usualmente, en una tarjeta SD, es común notar que son utilizadas para archivos multimedia. Por lo tanto, es aconsejable utilizar un programa más especializado para estos archivos.

En este caso, utilizaremos la aplicación llamada Photorec que viene incorporada en TestDisk.

Primero, inserte la tarjeta SD en la PC. Luego, corra photorec como raíz:

$ sudo photorec [device]

Luego, usted observará la siguiente imagen. Selecciona la media y proceed y presione Enter.

Usando photorec para recuperar archivos de SD

Luego, seleccione la participación. Y seleccione Opciones y presione enter.

Selecciona la partición

Allí usted observará las opciones de recuperación que serán realizadas en la tarjeta SD.

Opciones de Photorec

Presione q para regresar a la pantalla previa. Y allí es necesario elegir los tipos de archivos que queremos recuperar. Esto es logrado al seleccionar la opción File Opt.

Formatos para recuperar

Presione la tecla s para seleccionar y deseleccionar todos los formatos. Usted también puede seleccionar los tipos de archivos que quiere recuperar utilizando la tecla correcta. Para guardar las opciones seleccionadas presione la tecla b. regrese al menú principal utilizando la tecla q.

Entonces, en el menú principal, elija la opción Search para iniciar el proceso. Y elija el sistema de archivo.

Seleccione el sistema de archivos

Entonces le serán presentadas dos opciones. Gratis y completo. Normalmente, free es suficiente. Si quiere hacer un análisis profundo, elija Whole, pero tenga en cuenta que retrasará el proceso.

Ahora, es necesario elegir la ubicación donde los archivos serán guardados. Para hacer esto, presione la tecla c.

Selecciona el destino

Luego de escoger el destino, el proceso de recuperación comenzará. Recuerde que el sistema colapsara y se congelara. Por lo que sea paciente.

Al final, usted vera un mensaje informándole todo lo que tiene que pasar.

Informe Photorec

Luego revise los resultados.

Comprueba los resultados

 

Recupere archivos eliminados de NTFS

NTFS en un sistema de archivo Windows. Si es uno de aquellos que utiliza ambos sistemas en la computadora, entonces usted puede necesitar restaurar archivos eliminados de una partición de Windows con este sistema te archivo.

Para hacer esto, tenemos una herramienta llamada ntfsundelete que es bastante simple de utilizar.

Primero, necesita escanear el disco o partición. Por ejemplo:

$ sudo ntfsundelete /dev/sda1

Usando ntfsundelete

Entonces, seremos capaces de recuperar los archivos eliminados con el siguiente comando:

$ sudo ntfsundelete [HD_Or_partition] -u -m [filename]

  Recuperando archivos usando ntfsundelete 

Los archivos recuperados ahora pertenecen al usuario raíz. El último paso es cambiar los permisos y dueños de los archivos utilizando el comando chown.

 

Recuperar archivos de FAt32

Otro sistema de archivo Windows común es el FAT32. Usted puede recuperar archivos de FAT32 utilizando TestDisk.

Por lo que nuevamente corra el testdisk como usuario raíz y pase el disco como parámetro:

$ sudo testdisk [partition/HD]

TestDisk es compatible con FAT32 

Luego continúe con los pasos como se describieron anteriormente para recuperar los archivos.

 

Recuperar sobre archivos de memoria (utilizando inode)

Si usted elimina un archivo que es utilizado por otro proceso, usted puede restaurarlo de la memoria utilizando inode.

Para hacer esto, algunas condiciones deben ser establecidas. Primero, el archivo eliminado DEBE permanecer abierto por otro proceso. Entonces tiene que verificar el proceso y finalmente recuperarlo y cambiar sus permisos.

En este caso, creare un archivo llamado example.txt utilizando el nano editor y agregue algún texto:

$ nano example.txt

Luego, guarde los cambios y abra otra terminal Windows y utilice el archivo. Por ejemplo, con el comando less.

$ less example.txt

Usando el comando less

Abra otra sesión terminal, elimine el archivo y asegúrese que esta eliminado:

$ rm example.txt

$ ls example.txt

Eliminar el archivo de ejemplo

Como puede ver, el archivo ya no existe. Pero seremos capaces de recuperarlos. Para hacer esto, vamos a obtener el número de procesos asociados con el inode del archivo.

$ lsof | grep example.txt

Comprueba el archivo eliminado

Usted notará el proceso y comando que está utilizando el archivo (el comando les). De esa imagen, tenemos que prestar atención al segundo y al cuarto valor. Estos son los PID del proceso y el descriptor del archivo respectivamente.

Entonces, recupéralo con el siguiente comando:

$ ls -l /proc/2325/fd/4

Encuentra el proceso del archivo eliminado

Entonces cópialo a cualquier ubicación que quiera y eso es suficiente para recuperarlo.

$ sudo cp /proc/2325/fd/4 .

Posteriormente, revise los resultados y abra el archivo:

Recuperar un archivo eliminado usando inode  

De esta forma podemos recuperar un archivo eliminado que todavía está en la memoria y usado por un proceso con el inode.

 

Recuperar archivos eliminados desde EXT4 (Utilizando Extundelete)

EXT4 es el sistema de archivo por defecto en la mayoría de las distribuciones Linux. Es bastante rápido y con características técnicas que son muy bien aprovechadas por el Linux Kernel.

Una de las herramientas utilizadas para recuperar archivos de sistemas de archivos EXT4 es extundelete.

Extundelete es una aplicación de fuente abierta que permite recuperar archivos eliminados de una partición o disco con sistemas de archivos EXT3 o EXT4. Es simple de utilizar y viene por defecto instalada en la mayoría de distribuciones Linux.

Para recuperar un cierto archivo, solo utilice el siguiente comando:

$ sudo extundelete [device] -restore-file [pathfile]

Por ejemplo:

$ sudo extundelete /dev/sdb1 -restore-file home/angelo/other.txt

Si usted quiere recobrar todos los archivos en una carpeta, utilice el carácter wilcard:

$ extundelete /dev/sda6 -restore-file home/angelo/*

Pero si usted quiere restaurar todos los archivos de la partición o disco, el siguiente comando será suficiente:

$ extundelete /dev/sda6 -restore-all

Usando extundelete para recuperar archivos

Por lo que, los archivos recuperados estarán en el directorio RECOVERED_FILES. Así que, de esta forma, usted puede recuperar archivos eliminados utilizando extundelete.

 

Utilizando debugfs

También es posible utilizar la herramienta debugfs para recuperar archivos eliminados. Esta herramienta también utiliza el numero inode del archivo eliminado. Sin embargo, solo funciona en sistema de archivos EXT4.

Su operación es bastante simple, también. Primero, tiene que entrar en la partición o dispositivo.

$ debugfs [device]

Por ejemplo,

$ sudo debugfs /dev/sdb1

Usando debugfs

Entonces, luego de un tiempo, será capaz de iniciar sesión en la consola de debugfs para buscar por archivos eliminados recientemente.

$ debugfs: lsdel

inodes para recuperarse

En la primera columna, usted observara el número de inode de los archivos eliminados en ese dispositivo. Entonces restáurelo con el siguiente comando:

$ debugfs mi <inode_number>

Y eso es. Es bastante simple.

 

Utilizando ext4magic

Otra forma alternativa, para recuperar los archivos eliminados en un disco con un sistema de archivos EXT4, es utilizar Ext4magic. Esta aplicación es también bastante simple de utilizar.

La sintaxis más básica de la aplicación es la siguiente:

$ sudo ext4magic [device] -f [folder_to_scan] -r -d [output_folder]

Si yo quiero recuperar los archivos eliminados de una carpeta llamada files, el comando será similar a este:

$ sudo ext4magic /dev/sdb1 -r -d files

Usando ext4magic para recuperar archivos

Así de fácil es usar ext4magic. Todo esto gracias a que Ext4 es una comunidad y un sistema de archivos de código abierto.

 

Recuperar archivos sobre escritos (utilizando Scalpel)

Scalpel es otra herramienta de código abierto que le permite recuperar archivos de unidades formateadas, archivos sobre escritos e incluso unidades dañadas. Es bien conocido por si velocidad y eficiencia. En este sentido, surge como una alternativa a considerar.

Scalpel talla archivos sin la ayuda de los sistemas de archivos. Trata de extraer cabeceras y pie de páginas de archivos y trata de adivinar la estructura entera del archivo utilizando algún algoritmo bien diseñado.

Como TestDisk, está disponible en los repertorios oficiales de la mayoría de las distribuciones Linux. Por lo tanto, su instalación es reducida a el uso de terminal y el paquete administrador de la distribución.

La forma más rápida y fácil de utilizar Scalpel es como sigue:

$ scalpel [device] -o [output_folder]

El output_folder donde el Scalpel colocara todos los archivos recuperados. Note que Scalpel creara el directorio de salida.

¿Pero cómo sabe Scalpel cuales archivos recuperar? Bueno, esto es definido en el archivo de configuración de la aplicación.

Este archivo de configuración está ubicado usualmente en la siguiente ubicación:

/etc/scalpel/scalpel.conf

Y usted puede abrirlo con su editor de texto favorito y allí usted solo tendrá que descomentar las líneas para definir los formatos de archivos a buscar.

Archivo de configuración Scalpel

Los formatos de archivos que descomento, Scalpel los buscara.

Posteriormente, corra el comando full Scalpel y en la carpeta de salida, usted vera los archivos recuperados.

$ sudo scalpel /dev/sdb1 -o recovered_files1

Usando scalpel para recuperar archivos

Algunas veces, Scalpel restaura partes de los archivos. Que dependen de la salud de la unidad y de cuantos datos han sido corrompidos.

También, existen muchos algoritmos de demanda que puede utilizar, pero discutiremos la forma básica de los datos de demanda.

 

Recuperar archivos de un sistema no arrancable

Esto es un caso delicado porque necesitamos acceder desde un cd en vivo de Ubuntu u otra distribución de Linux.

Una vez que hemos arrancado, podríamos utilizar TestDisk para tratar de recuperar los datos.

En este caso, tendremos que utilizar una unidad externa donde guardar los datos. Por otra parte, en caso de TestDisk no pueda hacer el trabajo, también podemos intentar con extundelete o ext4magic siempre y cuando la partición sea EXT4.

Si esto no funciona, puede intentar regenerar la partición utilizando TestDisk como se explicó anteriormente.

 

Conclusión

Es posible eliminar archivos accidentalmente. La idea es conocer la herramienta y técnicas para recuperar estos archivos.

En este post, hemos cubierto varias circunstancias y diferentes archivos de sistemas que podrían ayudar a evitar dichos problemas.

Sigua regresando.

Gracias.

 

Mokhtar Ebrahim
Fundadora de LikeGeeks. Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable de mantener, proteger y solucionar problemas de servidores Linux para múltiples clientes de todo el mundo. Me encanta escribir guiones de shell y Python para automatizar mi trabajo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *