Cómo recuperar archivos borrados en Linux con testdisk

Una ilustración de una ventana de terminal en una computadora con Linux.
Fatmawati Achmad Zaenuri / Shutterstock

¿Alguna vez eliminó un archivo y se arrepintió de inmediato? ¡Lo necesitas de vuelta y rápido! Pero, ¿qué pasa si el archivo es tan nuevo que aún no se ha realizado una copia de seguridad? Afortunadamente, hay algo que puedes hacer al respecto.

→ Índice de contenidos

rm: Abreviatura de Remorse?

Es demasiado fácil usar el archivo rm comando y te encontrarás mirando una ventana de terminal con una creciente sensación de arrepentimiento. Un pequeño error con los comodines y puede eliminar mucho más de lo que quería.

El sistema de archivos predeterminado de Linux, ext4 utiliza inodos para contener datos sobre cada archivo y una tabla de inodos para realizar un seguimiento de los inodos. El inodo contiene metadatos sobre el archivo, como su nombre, quién lo posee, cuáles son los permisos, etc.

También contiene puntos de entrada a enlaces físicos que apuntan al archivo. Cada archivo tiene al menos un enlace físico. Cada vez que crea un nuevo vínculo físico, el número de vínculos físicos aumenta en uno. Cada vez que elimina un enlace físico, el número de enlaces físicos en el inodo se reduce en uno.

Cuando elimina un archivo que el inodo ha marcado como no utilizado (y listo para su reutilización), se elimina el último vínculo físico. Cuando esto sucede, el archivo no aparecerá en las listas de directorios y no podrá usarlo ni acceder a él.

Sin embargo, los datos que componen el contenido del archivo todavía están presentes en el disco duro. Si pudiera parchear el inodo para que contenga la información correcta, el archivo se restauraría. Por supuesto, esto solo funcionaría si los datos que componen el archivo en el disco duro permanecen intactos y no se sobrescriben.

Alternativamente, puede crear un nuevo inodo, copiar los datos supervivientes del antiguo inodo y luego reemplazar los bits que faltan.

Esas son actividades no triviales. Por lo general, cuando elimina un archivo por error, es en el peor momento posible. Siempre es cuando necesita ese archivo y lo necesita ahora. No tiene tiempo para ensuciarse con los editores de la industria y otras utilidades. Además, si se trata de un archivo que acaba de crear, es probable que aún no se haya realizado una copia de seguridad, por lo que ni siquiera estos le ayudarán.

Aquí donde testdisk Adelante. Es fácil de usar y no requiere un conocimiento detallado y de bajo nivel del sistema de archivos. ¡Echemos un vistazo a cómo usarlo!

RELACIONADO: Todo lo que siempre quiso saber sobre inodos en Linux

Instalación de Testdisk

Instalar testdisk en Ubuntu, use este comando:

sudo apt-get install testdisk

sudo apt-get install testdisk en una ventana de terminal.

En Fedora, debe escribir:

sudo dnf install testdisk

sudo dnf instala testdisk en una ventana de terminal.

En Manjaro, debes usar pacman:

sudo pacman -Sy testdisk

sudo pacman -Sy testdisk en una ventana de terminal.

Usando testdisk

Aunque se ejecuta en una ventana de terminal, testdisk tiene una interfaz rudimentaria. Use las teclas de flecha para navegar y Enter para hacer una selección. Para mantener las cosas ordenadas, es mejor crear un directorio para los archivos restaurados.

Escribimos lo siguiente para crear un directorio llamado "restaurado" para nuestros archivos restaurados:

mkdir restored

mkdir restaurado en una ventana de terminal.

Escribimos lo siguiente para cambiar al nuevo directorio y empezar testdisk desde allí:

cd restored/

cd restaurado / en una ventana de terminal.

Tenemos que usar sudo con testdisk, luego escribimos lo siguiente:

sudo testdisk

sudo testdisk en una ventana de terminal.

La primera pregunta testdisk pregunta sobre el registro. Puede crear un nuevo archivo de registro, utilizar uno existente o no registrar nada. No importa la opción que elija; no afectará el camino testdisk Ópera.

Las opciones de registro de testdisk en una ventana de terminal.

Puede simplemente presionar Enter para aceptar la opción resaltada y crear un nuevo archivo de registro. Se creará en el directorio desde el que comenzó testdisk. Cuando realiza su selección, testdisk pregunta qué disco duro contiene el sistema de archivos en el que desea trabajar.

Enumera los discos duros que puede encontrar, así como los archivos squashfs Archivo "/ dev / loop". Habrá uno para cada aplicación que instale desde un archivo snap. Son de solo lectura, por lo que no debería haber podido eliminar nada de estos sistemas de archivos.

Un menú del disco duro en testdisk en una ventana de terminal.

Solo hay un disco duro físico en esta computadora de prueba, por lo que usamos la flecha hacia abajo para resaltar la opción "/ dev / sda". Luego usamos la flecha derecha para seleccionar "Continuar" y luego presionamos Enter.

"Para proceder" seleccionado en una ventana de terminal.

testdisk también debe conocer el tipo de partición. Presenta un menú de opciones, junto con el tipo de partición que se detectó automáticamente a continuación.

Menú de tipo de tabla de particiones en testdisk en una ventana de terminal.

A menos que tenga una buena razón para no hacerlo, resalte el tipo de partición que se detectó automáticamente y luego presione Enter.

En el menú de funciones que se muestra, resalte "Avanzado" y luego presione Entrar.

"Avanzado" seleccionado en el menú de funciones en una ventana de terminal.

Aparecerá el menú de selección de partición.

El menú de selección de partición en testdisk en una ventana de terminal.

Los archivos que buscamos se encuentran en la partición del sistema de archivos de Linux. Solo tenemos una partición de Linux en nuestro disco duro, pero es posible que tenga más.

Seleccione la partición donde se ubicaron los archivos, use las teclas de flecha izquierda y derecha para seleccionar "Lista", luego presione Entrar. Aparecerá el menú de selección de archivos.

El menú de selección de archivos en testdisk en una ventana de terminal.

Utilice las flechas hacia arriba y hacia abajo o las teclas PgUp y PgDn para navegar por la lista de archivos y directorios. Presione la flecha derecha o Enter para ingresar a un directorio y la flecha izquierda o Esc para salir de un directorio.

Buscamos archivos propiedad de dave. Los archivos de todas las cuentas de usuario se encuentran en el directorio "Inicio". A continuación, resaltamos el directorio "Inicio", luego podemos presionar Flecha derecha o Enter para ingresar a ese directorio.

A continuación, se enumeran todas las cuentas de usuario. Resaltamos dave, luego presione la flecha derecha o Enter para navegar a ese directorio.

Un directorio de inicio en testdisk en una ventana de terminal.

Ahora podemos ver los archivos a los que pertenecen. dave cuenta. Los elementos en rojo se han eliminado. Navegamos por los archivos y directorios hasta encontrar los archivos que queremos recuperar.

Archivos eliminados en TestDisk en una ventana de terminal.

Para recuperar un archivo, simplemente resáltelo y luego presione c (minúscula).

La pantalla cambia y le indica que elija un destino para el archivo recuperado. Porque creamos un directorio llamado "Restaurado" y comenzamos testdisk a partir de él, la primera entrada en la lista (.) es ese directorio. Para recuperar este archivo eliminado en ese directorio, presionamos C (mayúsculas).

El menú de destino del archivo en TestDisk en una ventana de terminal.

Después de hacer esto, volverá a la pantalla de selección de archivos. Si desea recuperar más archivos, simplemente repita el proceso. Resalte un archivo eliminado, presione c (minúscula) para copiarlo, luego presione C (mayúscula) para recuperarlo.

Trabajar con archivos restaurados

Después de restaurar un archivo, el árbol de directorios se reconstruye a su ubicación original, lo cual es útil porque le recuerda en qué parte de su disco duro residía el archivo original. Esto significa que si necesita copiarlo nuevamente, ya sabe dónde colocarlo.

Si recupera varios archivos de diferentes ubicaciones del sistema de archivos que tienen el mismo nombre de archivo, aún deberán archivarse por separado.

Puede escribir lo siguiente para ver el contenido del directorio "Restaurado":

ls

Si preguntaste testdisk para crear un archivo de registro, estará en el directorio "Restaurado". Dado que nuestros archivos recuperados estaban ubicados en "/ home / dave", fueron copiados a nuestro directorio "Restaurado", anidado en directorios con el mismo nombre.

Podemos cambiar al directorio "dave" copiado usando cd. Asegúrese de no incluir una barra inclinada (/) en la ruta: desea cambiar al sistema "home" local, no al sistema "/ home".

Escribimos lo siguiente:

cd home/dave

Los archivos recuperados se encuentran en ese directorio, por lo que escribimos:

ls

Está en una ventana de terminal.

Echemos otro vistazo a los archivos recuperados con la extensión -l (lista larga) opción:

ls -l

ls -l en una ventana de terminal.

Por que usamos sudo almorzar testdisk, los archivos recuperados se restauraron con "root" como propietario. Podemos volver a cambiar el propietario a "dave" usando chown:

sudo chown dave.dave *

sudo chown dave.dave * en una ventana de terminal.

Escribimos lo siguiente para asegurarnos de que se haya restaurado la propiedad correcta:

ls -l

ls -l en una ventana de terminal.

testdisk: código para la encuesta

Esa sensación de alivio tras recuperar un archivo importante que, hasta hace un momento, parecía irremediablemente perdido, es algo que siempre agradecerás.

Aquí porque testdisk es una utilidad tan útil. Después de recorrer los menús y comenzar a restaurar archivos, es fácil caer en un ritmo de resaltado, c, C, repetir.

Deja una respuesta

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

Subir Change privacy settings