¿Alguna vez ha borrado algún archivo importante por error? ¡Quién no! Está bien, pero ¿puedo recuperarlos? En esta publicación, aprenderá cómo recuperar archivos eliminados en Linux usando varios programas en diferentes sistemas de archivos.
Verá cómo recuperar archivos eliminados de tarjetas SD, HDD y particiones eliminadas en diferentes sistemas de archivos de Linux como EXT3, EXT4 e incluso desde sistemas de archivos de Windows como FAT32 y NTFS.
Recuperar archivos de partición eliminada
Este es un gran problema. A menudo, los usuarios de Linux instalan varios sistemas al mismo tiempo y 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 usando una herramienta llamada TestDisk.
Testdisk es una potente utilidad de análisis de particiones y recuperación de datos. La mayoría de las distribuciones de Linux como Debian y Ubuntu vienen con TestDisk.
Por otro lado, la aplicación es multiplataforma y admite una gran cantidad de tablas de particiones como Intel, MSDOS y Mac. Estas son las tablas de particiones más populares.
Además, es compatible con muchos sistemas de archivos, como NTFS, EXT4 y otros sistemas de archivos no populares, como BeOS y ReiserFS.
Cuando elimina un archivo, la lista de clústeres ocupados por el archivo se elimina, marcando aquellos sectores disponibles para su uso. Si los clústeres no se han sobrescrito, TestDisk puede recuperar los archivos.
Primero, inicia la aplicación así:
$ testdisk
A continuación, tiene la opción de crear un nuevo archivo para los registros. Si desea crear uno, elija crear opción y presione Entrar. Si no desea un archivo de registro, seleccione la opción Sin registro.
A continuación, se escanearán los discos o particiones reconocidos por el sistema. En este caso particular, sda es la partición que queremos recuperar.
TestDisk reconoce varios tipos de tablas de particiones. Por lo general, es Intel a menos que esté utilizando uno especializado.
En la siguiente pantalla verás una serie de opciones que tiene el programa. Para este caso en particular, debemos elegir la opción Analizar.
Con esta opción, el programa analizará exhaustivamente el disco para encontrar la estructura.
Luego, le preguntará sobre el tipo de búsqueda que desea realizar. Por lo general, elija la opción de búsqueda rápida.
Si tiene suerte, verá la partición eliminada. Si no, tendrás que elegir una búsqueda más profunda.
Luego, elija la opción Escribir para escribir la tabla de particiones. Cuando haya terminado, reinicie el sistema y ¡recuperará su partición!
Tenga en cuenta que durante estos pasos, puede llevar mucho tiempo. Depende del tamaño del disco.
Según el tipo de sistema de archivos que tenga esta partición, se seguirán instrucciones particulares. Se detallarán más adelante.
Recuperar archivos borrados de una unidad externa
Ahora imaginemos que tenemos una unidad flash externa y, por error, ha eliminado algunos archivos de ella. ¿Cómo restaurarlos?
Gracias a TestDisk, el proceso se vuelve bastante similar al de una partición eliminada. Pero hay algunas diferencias.
Para iniciar el programa, usaremos el comando testdisk. Además, podemos agregar la unidad flash como un parámetro como este:
$ sudo testdisk /dev/sdb
A continuación, seleccione continuar. Luego, elija el tipo de tabla de particiones.
Luego, seleccione las opciones Avanzadas para recuperar archivos.
El siguiente paso es seleccionar la partición y la opción Recuperar.
Luego, verá todos los archivos eliminados en la partición.
Ahora, seleccione la carpeta de destino para colocar los archivos recuperados. Debe presionar C en la primera opción para colocar los archivos en el directorio actual.
Finalmente, verá este mensaje:
¡Felicidades! Archivos restaurados.
Recuperar archivos borrados de la tarjeta SD
Por lo general, en una tarjeta SD, es común notar que se utilizan para archivos multimedia. Por lo tanto, es recomendable 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. A continuación, ejecute photorec como root:
$ sudo photorec [device]
Luego, verás la siguiente imagen. Seleccione el medio y continúe y presione Entrar.
A continuación, seleccione la partición. Y seleccione Opciones y presione enter.
Allí verás las opciones de recuperación:
Pulse q para volver a la pantalla anterior. Es necesario elegir los tipos de archivos que queremos recuperar. Esto se logra seleccionando la opción File Opt.
Presione la tecla s para seleccionar y deseleccionar todos los formatos. También puede seleccionar los tipos de archivos que desea recuperar usando la tecla derecha. Para guardar las opciones seleccionadas, presione la tecla b. Regrese al menú principal usando la tecla q.
Luego, en el menú principal, elige la opción Buscar para iniciar el proceso. Y elija el sistema de archivos.
A continuación, se le presentarán dos opciones. Libre y Total. Normalmente, Gratis es suficiente. Si desea realizar un análisis profundo, elija Todo, pero tenga en cuenta que ralentizará el proceso.
Ahora, es necesario elegir la ubicación donde se guardarán los archivos. Para hacer esto, presione la tecla c.
Después de elegir el destino, comenzará el proceso de recuperación. Recuerde que el sistema colapsará y se congelará. Así que ten paciencia.
Al final verás un mensaje informándote de todo lo que ha pasado.
A continuación, comprueba los resultados.
Recuperar archivos borrados de NTFS
NTFS es un sistema de archivos de Windows. Si usted es uno de los que usan ambos sistemas en la computadora, es posible que deba restaurar los archivos eliminados de una partición de Windows con este sistema de archivos.
Para ello disponemos de una herramienta llamada ntfsundelete que es bastante sencilla de utilizar.
Primero, necesita escanear el disco o la partición. Por ejemplo:
$ sudo ntfsundelete /dev/sda1
Luego, podremos recuperar el archivo borrado con el siguiente comando:
$ sudo ntfsundelete [HD_Or_partition] -u -m [filename]
Los archivos recuperados ahora pertenecen al usuario raíz. El último paso es cambiar los permisos y propietarios de los archivos usando el comando chown.
Recuperar Archivos de FAT32
Otro sistema de archivos común de Windows es FAT32. Puede recuperar archivos de FAT32 usando TestDisk.
Así que nuevamente ejecute testdisk como usuario root y pase el disco como parámetro:
$ sudo testdisk [partition/HD]
Luego continúe con los pasos descritos anteriormente para restaurar los archivos.
Recuperar en archivos de memoria (Usando inode)
Si elimina un archivo que utiliza otro proceso, puede restaurarlo desde la memoria mediante inode.
Deben establecerse algunas condiciones iniciales. Primero, el archivo eliminado DEBE permanecer abierto mediante otro proceso . Luego hay que verificar el proceso y finalmente recuperarlo y cambiar sus permisos.
En este caso, crearé un archivo llamado ejemplo.txt usando el editor nano y agregaré algo de texto:
$ nano example.txt
Luego guarde los cambios y abra otra ventana de terminal y use el archivo. Por ejemplo, con el comando menos.
$ less example.txt
Abra otra sesión de terminal, elimine el archivo y asegúrese de que esté eliminado:
$ rm example.txt $ ls example.txt
Como puede ver, el archivo ya no existe. Pero vamos a ser capaces de recuperarlo. Para hacer esto, obtengamos el número del proceso asociado con el inodo del archivo.
$ lsof | grep example.txt
Notará el proceso y el comando que está usando el archivo (el comando menos). A partir de esa imagen, tenemos que prestar atención a los valores segundo y cuarto. Estos son el PID del proceso y el descriptor del archivo respectivamente.
Luego, recupérala con el siguiente comando:
$ ls -l /proc/2325/fd/4
Luego cópielo en la ubicación que desee, y eso es suficiente para recuperarlo.
$ sudo cp /proc/2325/fd/4 .
A continuación, compruebe los resultados y abra el archivo:
De esta manera, podemos recuperar un archivo eliminado que aún está en la memoria y es utilizado por un proceso con el inodo.
Recuperar archivos borrados de EXT4 (Usando extundelete)
EXT4 es el sistema de archivos predeterminado en la mayoría de las distribuciones de Linux. Es bastante rápido y con características técnicas muy bien aprovechadas por el kernel de Linux.
Una de las herramientas utilizadas para recuperar archivos del sistema de archivos EXT4 es extundelete.
Extundelete es una aplicación de código abierto que permite recuperar archivos borrados de una partición o un disco con el sistema de archivos EXT3 o EXT4. Es fácil de usar y viene instalado de forma predeterminada en la mayoría de las distribuciones de Linux.
Para recuperar un archivo determinado, simplemente use el siguiente comando:
$ sudo extundelete [device] -restore-file [pathfile]
Por ejemplo:
$ sudo extundelete /dev/sdb1 -restore-file home/angelo/other.txt
Si desea recuperar todos los archivos de una carpeta, utilice el carácter comodín:
$ extundelete /dev/sda6 -restore-file home/angelo/*
Pero si desea restaurar todos los archivos en la partición o el disco, el siguiente comando sería suficiente:
$ extundelete /dev/sda6 -restore-all
Entonces, los archivos recuperados estarán en el directorio RECOVERED_FILES. Entonces, de esta manera, puede recuperar archivos eliminados usando extundelete.
Uso de debugfs
También es posible utilizar la herramienta debugfs para recuperar archivos eliminados. Esta herramienta también utiliza el número de inodo del archivo eliminado. Sin embargo, solo funciona en sistemas de archivos EXT4.
Su funcionamiento es bastante sencillo, además. Primero, debe ingresar la partición o dispositivo.
$ debugfs [device]
Por ejemplo,
$ sudo debugfs /dev/sdb1
Luego, después de un tiempo, podrá iniciar sesión en la consola de debugfs para buscar archivos eliminados recientemente.
$ debugfs: lsdel
En la primera columna, verá el número de inodo de los archivos eliminados en ese dispositivo. Luego, restáuralo con el siguiente comando:
$ debugfs mi <inode_number>
Y eso es todo. Es bastante fácil.
Usando ext4magic
Otra forma alternativa de recuperar archivos borrados en un disco con un sistema de archivos Ext4 es usar Ext4magic. Esta aplicación también es bastante simple de usar.
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 quisiera recuperar los archivos eliminados de una carpeta llamada archivos, el comando sería similar a este:
$ sudo ext4magic /dev/sdb1 -r -d files
Así de fácil es usar ext4magic. Todo esto gracias a que Ext4 es un sistema de archivos comunitario y de código abierto.
Recuperar archivos sobrescritos (usando bisturí)
Scapel es otra herramienta de código abierto que le permite recuperar archivos de unidades formateadas, archivos sobrescritos e incluso unidades dañadas. Es bien conocido por su velocidad y eficiencia. En este sentido, surge como una alternativa a tener en cuenta.
Bisturí talla archivos sin la ayuda de sistemas de archivos . Intenta extraer encabezados y pies de página de archivos e intenta adivinar la estructura completa del archivo usando algunos algoritmos bien diseñados.
Al igual que TestDisk, está disponible en los repositorios oficiales de la mayoría de las distribuciones de Linux. Por tanto, su instalación se reduce al uso del terminal y el gestor de paquetes de la distribución.
La forma más rápida y sencilla de utilizar Scapel es la siguiente:
$ scalpel [device] -o [output_folder]
La carpeta de salida especifica dónde scalpel colocará todos los archivos recuperados. Tenga en cuenta que Scalpel creará el directorio de salida por sí mismo.
Pero, ¿cómo sabe Scapel qué archivos recuperar? Bueno, eso está definido en el archivo de configuración de la aplicación.
Este archivo de configuración generalmente se encuentra en la siguiente ubicación:
/etc/scalpel/scalpel.conf
Y puedes abrirlo con tu editor de texto favorito, y ahí solo tendrás que descomentar las líneas para definir los formatos de archivo a buscar.
El formato de archivo que elimines, Scalpel lo buscará.
A continuación, ejecute el comando Scalpel completo y, en la carpeta de salida, verá los archivos recuperados.
$ sudo scalpel /dev/sdb1 -o recovered_files1
A veces, Scalpel restaura partes del archivo. Eso depende del estado de la unidad y de la cantidad de datos dañados.
Además, hay muchos algoritmos de craving que puede usar, pero discutimos aquí la forma básica de craving de datos.
Recuperar archivos de un sistema que no sea de arranque
Este es un caso delicado porque necesitamos acceder desde un Live cd de Ubuntu u otra distribución similar de Linux. Una vez que hayamos arrancado, podríamos usar TestDisk para intentar recuperar los datos.
En este caso, tendríamos que utilizar un disco externo donde guardar los datos. Por otro lado, en caso de que TestDisk no pueda hacer el trabajo, también podemos probar con extundelete o ext4magic siempre que la partición sea Ext4.
Si no funciona, puede intentar regenerar la partición usando TestDisk como se explicó anteriormente.
Conclusión
Es posible eliminar archivos accidentalmente. La idea es conocer las herramientas y técnicas adecuadas para recuperar estos archivos.
En esta publicación, hemos cubierto varias circunstancias y diferentes sistemas de archivos que podrían ayudar a evitar este tipo de problemas.
Sigue regresando.
Gracias.