Cómo recuperar archivos borrados en Linux con testdisk

Contenidos

Una ilustración de una ventana de terminal en una computadora con Linux.

¿Alguna vez borró un archivo y se arrepintió instantáneamente? ¡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? Por suerte, puede haber algo que puedes hacer al respecto.

rm: ¿Corto de remordimiento?

Es demasiado fácil utilizar el rm comando y te encuentras mirando una ventana de terminal con un sentimiento de pesar cada vez más profundo. Un pequeño error con los comodines y puede eliminar mucho más de lo que pretendía.

El sistema de archivos predeterminado de Linux, ext4 utiliza inodos para guardar 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.

Además contiene puntos de entrada a links físicos que apuntan al archivo. Cada archivo tiene al menos un vínculo físico. Cada vez que crea un nuevo vínculo físico, el recuento de vínculos físicos aumenta en uno. Cada vez que elimina un link físico, el recuento de links 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 link físico. Cuando esto sucede, el archivo no se mostrará en las listas de directorios y no se puede usar ni ingresar a él.

A pesar de esto, los datos que componen el contenido del archivo aún están presentes en el disco duro. A pesar de esto, si pudiera parchear el inodo para que contuviera la información correcta, el archivo se restauraría. Decididamente, 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 posteriormente reemplazar los bits que faltan.

Esas son actividades no triviales. Por lo general, cuando elimina un archivo por error, es en el peor momento factible. Siempre es cuando necesita ese archivo y lo necesita ahora. No tiene tiempo para ensuciarse con los editores de sector y otras utilidades. Al mismo tiempo, si es un archivo que acaba de crear, es probable que aún no se haya realizado una copia de seguridad, por lo que tampoco lo ayudarán.

Aquí donde testdisk entra. Es fácil de utilizar y no necesita conocimientos detallados y de bajo nivel del sistema de archivos. ¡Echemos un vistazo a cómo usarlo!

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

Instalación de testdisk

Instalar testdisk en Ubuntu, use este comando:

sudo apt-get install testdisk

En Fedora, debe escribir:

sudo dnf install testdisk

En Manjaro, debes de utilizar pacman:

sudo pacman -Sy testdisk

Usando testdisk

Aún cuando se ejecuta en una ventana de terminal, testdisk dispone de una interfaz rudimentaria. Utilice 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

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

cd restored/

Tenemos que utilizar sudo con testdisk, entonces escribimos lo siguiente:

sudo testdisk

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

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 hallar, así como los squashfs Archivos “/ dev / loop”. Habrá uno de estos para cada aplicación que haya instalado desde un snap. Son de solo lectura, por lo que no debería haber logrado borrar nada de estos sistemas de archivos.

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”. Posteriormente usamos la flecha derecha para elegir «Continuar» y posteriormente pulsamos Enter.

testdisk además necesita saber el tipo de partición. Presenta un menú de alternativas, junto con el tipo de partición que se detecta automáticamente en la parte inferior.

A menos que tenga una buena razón para no hacerlo, resalte el tipo de partición que se ha detectado automáticamente y posteriormente presione Entrar.

En el menú de funciones que aparece, resalte “Avanzado” y posteriormente presione Entrar.

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

Los archivos que estamos buscando están en la partición del sistema de archivos de Linux. Solo tenemos una partición de Linux en nuestro disco duro, pero es factible que tenga más.

Seleccione la partición en la que estaban sus archivos, use las teclas de flecha izquierda y derecha para elegir «Lista» y posteriormente presione Entrar. Aparecerá el menú de selección de archivos.

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 que pertenecen a dave. Los archivos de todas las cuentas de usuario se encuentran en el directorio «Inicio». Entonces, resaltamos el directorio «Inicio», y posteriormente podemos presionar la flecha derecha o Enter para ingresar a ese directorio.

A continuación, se enumeran todas las cuentas de usuario. Resaltamos davey posteriormente presione la flecha hacia la derecha o Enter para ingresar a ese directorio.

Ahora podemos ver los archivos que pertenecen a la dave cuenta. Se han eliminado las entradas en rojo. Navegamos por los archivos y directorios hasta localizar los archivos que queremos recuperar.

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

La pantalla cambia y le indica que elija un destino para el archivo recuperado. Debido a que creamos un directorio llamado «Restaurado» y empezamos testdisk a partir de él, la primera entrada en el listado (.) es ese directorio. Para recuperar este archivo eliminado a ese directorio, pulsamos C (mayúsculas).

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

Trabajar con archivos restaurados

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

Si recupera varios archivos de diferentes ubicaciones del sistema de archivos que disponen el mismo nombre de archivo, deberán almacenarse de forma separada de todos modos.

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». Debido a que nuestros archivos recuperados estaban ubicados en «/ home / dave», se han copiado en 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 hacia adelante (/) en la ruta: desea cambiar al «hogar» local, no al sistema «/ hogar».

Escribimos lo siguiente:

cd home/dave

Los archivos recuperados están en ese directorio, por lo tanto escribimos:

ls

Echemos otro vistazo a los archivos recuperados usando el -l (lista larga) opción:

ls -l

Debido a que usamos sudo almorzar testdisk, los archivos recuperados se han restaurado con «root» como propietario. Podemos volver a cambiar el propietario a «dave» usando chown:

sudo chown dave.dave *

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

ls -l

testdisk: Código de alivio

Esa sensación de alivio después de recuperar un archivo importante que, hace un momento, se sintió irremediablemente perdido, es algo que siempre agradecerás.

Es es por esto que 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.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.