Como un sistema operativo multiusuario y multitarea, una vez que se eliminan los archivos de Linux, es difícil recuperarlos. Aunque el comando de eliminación simplemente elimina la marca en el nodo del archivo y en realidad no borra el contenido del archivo, otros usuarios y algunos procesos que tienen acciones de escritura sobrescribirán rápidamente los datos. Sin embargo, para el Linux utilizado por la familia, o si lo soluciona después de eliminar accidentalmente el archivo, aún puede recuperarlo.
1. Breve introducción de la estructura del sistema de archivos Ext2
En el sistema de archivos Ext2 utilizado por Linux, los archivos se almacenan en bloques. Por defecto, el tamaño de cada bloque es de 1K. Diferentes bloques se distinguen por números de bloque. Cada archivo también tiene un nodo, que contiene información como el propietario del archivo, los permisos de lectura y escritura y el tipo de archivo. Para un archivo de menos de 12 bloques, el número de bloque del archivo se almacena directamente en el nodo. Si el archivo tiene más de 12 bloques, el nodo almacena el número de bloque de un bloque indirecto después de los 12 números de bloque. En el bloque correspondiente al número de bloque indirecto, se almacena el número de bloque de 256 bloques de datos (cada bloque en Ext2fs) El número ocupa 4 bytes, por lo que el número de bloque que se puede almacenar en un bloque es 1024/4 = 256). Si hay un archivo más grande, habrá un bloque indirecto secundario y un bloque indirecto terciario en el nodo.
2. Recuperar archivos que se eliminaron accidentalmente
La mayoría de las distribuciones de Linux proporcionan una herramienta de depuración que se puede usar para editar el sistema de archivos Ext2. Sin embargo, todavía hay mucho trabajo por hacer antes de usar esta herramienta.
Primero vuelva a montar la partición donde se eliminó el archivo por error. Use el siguiente comando: (asumiendo que el archivo está en la partición /usr)
mount? Cr? Cn? Co remount /usr
-r significa montaje en modo de solo lectura; -n significa no escribir /Etc /mtab, si es para restaurar el archivo en /etc, agregue este parámetro. Si el sistema dice que la partición xxx está ocupada, puede usar el comando del fusor para ver qué procesos están usando esta partición? N:
fuser? Cv? Cm /usr
Si no hay procesos importantes, Deténgalos con el siguiente comando:
fuser -k? Cv? Cm /usr
Luego puede volver a montar estos sistemas de archivos.
Si instala todos los archivos en una partición grande, puede usar linux single para ingresar al modo de usuario único en el indicador de inicio, para minimizar la posibilidad de que el sistema procese la escritura de datos en el disco duro, o Simplemente cuelgue el disco duro en otra máquina. Además, la información recuperada no debe estar escrita /arriba para evitar destruir información útil. Si tiene dos /windows en su máquina, puede escribir en estas particiones:
mount? Cr? Cn /dev /hda1 /mnt /had
Luego puede ejecutar debugfs: (asumiendo que Linux es /dev /hda5)
#debugfs /dev /hda5
Aparecerá el debugfs de debugfs:
Use el comando lsdel para obtener información sobre muchos archivos eliminados. :
debugfs: lsdel
debugfs: Se encontraron 2692 inodos eliminados.
Inodo Propietario Modo Tamaño Bloques Tiempo borrado
164821 0 100600 8192 1/1 Sol 13 de mayo 19:22:46 2001 ................................................................................
36137 0 100644 4 1 /1 mar 24 de abril 10:11:15 2001
196829 0 100644 149500 38/38 lun 27 de mayo 13:52:04 2001
debugfs:
Hay muchos archivos listados (Encontrado 2692 aquí), el primer campo es el número de nodo del archivo, el segundo campo es el propietario del archivo, el tercer campo es el permiso de lectura y escritura, luego el tamaño del archivo, el número de bloques, el tiempo de eliminaciónLuego puede juzgar cuáles necesitamos según el tamaño del archivo y la fecha de eliminación. Por ejemplo, queremos restaurar el archivo cuyo nodo es 196829:
Primero puede verificar el estado del archivo:
debugfs: stat < 196829 >
Inode: 196829 Tipo: Modo normal : 0644 Banderas: 0x0 Versión: 1
Usuario: 0 Grupo: 0 Tamaño: 149500
Archivo ACL: 0 Directorio ACL: 0
Enlaces: 0 Cantidad de bloques: 38 < Br>
Fragmento: Dirección: 0 Número: 0 Tamaño: 0
ctime: 0x31a9a574 - Mon May 27 13:52:04 2001
atime: 0x31a21dd1 - Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 - Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 - Lun May 27 13:52:04 2001
BLOQUES:
594810 594811 594
Todo el mundo sabe que el script de shell es como un archivo por lotes (.bat) en la era temprana de
Para los sistemas en Internet, es importante tener claro la situación: la red no es segura. Por lo
Ese día, mi colega me mostró un paso de operación en mi computadora , usando un comando env, bueno,
Después VPN se establece la conexión, es necesario realizar los siguientes ajustes: 1, haga cli
Resumen de la práctica de configuración de NIC dual bajo el sistema Linux
Cómo solucionar el "error fatal: security /pam
CentOS Linux VPS instala IPSec + L2TP VPN
Comando de linux detallado mkdir
Implementación de servidor TCP y cliente bajo Linux tutorial
Tutorial básico sobre el uso flexible de herramientas RPM en Linux
Seleccionar principio de aplicación de función de análisis
¡Linux nginx admite el archivo .htaccess para implementar el método pseudoestático!
Administración y mantenimiento del sistema Linux - Comando zip /unzip
Sincronización y programación de tareas en el kernel de Linux
Preguntas frecuentes sobre Windows 10 Time to Market, actualización gratuita, compatibilidad
dnzg: Win8.1 9369 Versión añadió MetroUI Administrador de archivos
¿Se puede desactivar la memoria virtual de Windows 7?
Win7 IE hace doble clic para permitir el acceso a la solución de la página de descarga
Cómo escribir información de registro para WinPE