Si está utilizando el sistema de archivos ext3, intente seguir el COMO de Carlo Wood
En pocas palabras,
- Utilice ext3grep $ IMAGE --ls --inode 2 | grep your_file para encontrar el archivo que está buscando (donde $ IMAGE es su partición, por ejemplo / dev / sda2)
- Encuentre el bloque del sistema de archivos que contiene el diario del espacio no asignado.
- Encuentra todos los descriptores de diario que hacen referencia al bloque que se encontró anteriormente.
- Copie el bloque con dd.
- Edite el archivo para eliminar los ceros finales.
- cat el archivo donde quieras
De la fuente:
"El capítulo Ejemplo de recuperación manual
En el siguiente ejemplo recuperaremos manualmente un pequeño archivo. Solo se proporciona una salida parcial para ahorrar espacio y hacer que el ejemplo sea más legible.
Usando ext3grep $ IMAGE --ls --inode encontramos el nombre del archivo que queremos recuperar:
$ ext3grep $ IMAGEN --ls --inode 2 | grep carlo 3 final d 195457 D 1202352103 jue 7 feb 03:41:43 2008 drwxr-xr-x carlo
$ ext3grep $ IMAGEN --ls --inode 195457 | grep 'bin $' | head -n 1 34 35 d 309540 D 1202352104 jue 7 feb 03:41:44 2008 drwxr-xr-x bin
$ ext3grep $ IMAGEN --ls --inode 309540 | grep start_azureus 9 10 r 309631 D 1202351093 jue 7 feb 03:24:53 2008 rrwxr-xr-x start_azureus
Obviamente, el inodo 309631 se borra y no tenemos números de bloque para este archivo:
$ ext3grep $ IMAGEN --print --inode 309631 [...] Inode es Grupo no asignado: 19 Id de generación: 2771183319 uid / gid: modo 1000/1000: rrwxr-xr-x tamaño: 0 número de enlaces: 0 sectores: 0 (-> 0 bloques indirectos).
Inode Times: Acceso: 1202350961 = Jue 7 de febrero 03:22:41 2008 Archivo modificado: 1202351093 = Jue 7 de febrero 03:24:53 2008 Inode modificado: 1202351093 = Jue 7 de febrero 03:24:53 2008 Tiempo de eliminación: 1202351093 = Jue 7 de febrero 03:24:53 2008
Bloques directos:
Por lo tanto, intentaremos buscar una copia anterior en el diario. Primero, encontramos el bloque del sistema de archivos que contiene este inodo:
$ ext3grep $ IMAGEN --inode-to-block 309631 | grep reside Inode 309631 reside en el bloque 622598 en el desplazamiento 0xf00.
Luego, encontramos todos los descriptores de revistas que hacen referencia al bloque 622598:
$ ext3grep $ IMAGE --journal --block 622598 [...] Descriptores de diario que hacen referencia al bloque 622598: 4381294 26582 4381311 28693 4381313 28809 4381314 28814 4381321 29308 4381348 30676 4381349 327188817171881871881871871871881871871871881881881871871881818818181881817081708171708181717081717 4382137 6672 4382138 7536 4382139 7984 4382140 8931
Esto significa que la transacción con el número de secuencia 4381294 tiene una copia del bloque 622598 en el bloque 26582, y así sucesivamente. El número de secuencia más grande, en la parte inferior, debe ser los últimos datos escritos en el disco y, por lo tanto, el bloque 8931 debe ser el mismo que el bloque actual 622598. Para encontrar la última copia no eliminada, uno debe comenzar en la parte inferior y trabajar hacia arriba.
Si intenta imprimir dicho bloque, ext3grep reconoce que es un bloque de una tabla de inodo e imprimirá el contenido de los 32 inodos en él. Sin embargo, solo deseamos ver el inodo 309631; entonces usamos un grep inteligente:
$ ext3grep $ IMAGEN --print --block 8931 | grep -A15 'Inode 309631' -------------- Inode 309631 ----------------------- Id de generación: 2771183319 uid / gid: modo 1000/1000: rrwxr-xr-x tamaño: 0 número de enlaces: 0 sectores: 0 (-> 0 bloques indirectos).
Inode Times: Acceso: 1202350961 = Jue 7 de febrero 03:22:41 2008 Archivo modificado: 1202351093 = Jue 7 de febrero 03:24:53 2008 Inode modificado: 1202351093 = Jue 7 de febrero 03:24:53 2008 Tiempo de eliminación: 1202351093 = Jue 7 de febrero 03:24:53 2008
Bloques directos:
De hecho, esto es lo mismo que vimos en el bloque 622598. A continuación, observamos números de secuencia más pequeños hasta que encontramos uno con un tiempo de eliminación 0. El primero que encontramos (de abajo hacia arriba) es el bloque 6073:
$ ext3grep $ IMAGEN --print --block 6073 | grep -A15 'Inode 309631' -------------- Inode 309631 ----------------------- Id de generación: 2771183319 uid / gid: modo 1000/1000: rrwxr-xr-x tamaño: 40 número de enlaces: 1 sectores: 8 (-> 0 bloques indirectos).
Inode Times: Acceso: 1202350961 = Jue 7 de febrero 03:22:41 2008 Archivo modificado: 1189688692 = Jue 13 de septiembre 15:04:52 2007 Inode modificado: 1189688692 = Jue 13 de septiembre 15:04:52 2007 Tiempo de eliminación: 0
Bloques directos: 645627
Lo anterior está automatizado y se puede hacer mucho más rápido con la opción de línea de comando --show-journal-inodes. Esta opción encontrará el bloque al que pertenece el inodo, luego buscará todas las copias de ese bloque en el diario, y posteriormente imprimirá solo el inodo solicitado de cada uno de estos bloques (cada uno de los cuales contiene 32 inodos, como usted sabe), eliminando duplicados :
$ ext3grep $ IMAGE --show-journal-inodes 309631 Número de grupos: 75 Bloque de diario mínimo / máximo: 1115/35026 Cargando descriptores de diario ... hecho La transacción de diario 4381435 se envuelve, algunos bloques de datos podrían haberse perdido de esta transacción. Número de descriptores en la revista: 30258; números de secuencia mín. / máx .: 4379495/4382264 Copias del inodo 309631 encontradas en la revista:
-------------- Inode 309631 ----------------------- Id de generación: 2771183319 uid / gid: 1000/1000 modo: rrwxr-xr-x tamaño: 0 número de enlaces: 0 sectores: 0 (-> 0 bloques indirectos).
Inode Times: Acceso: 1202350961 = Jue 7 de febrero 03:22:41 2008 Archivo modificado: 1202351093 = Jue 7 de febrero 03:24:53 2008 Inode modificado: 1202351093 = Jue 7 de febrero 03:24:53 2008 Tiempo de eliminación: 1202351093 = Jue 7 de febrero 03:24:53 2008
Bloques directos:
-------------- Inode 309631 ----------------------- Id de generación: 2771183319 uid / gid: 1000/1000 modo: rrwxr-xr-x tamaño: 40 número de enlaces: 1 sectores: 8 (-> 0 bloques indirectos).
Inode Times: Acceso: 1202350961 = Jue 7 de febrero 03:22:41 2008 Archivo modificado: 1189688692 = Jue 13 de septiembre 15:04:52 2007 Inode modificado: 1189688692 = Jue 13 de septiembre 15:04:52 2007 Tiempo de eliminación: 0
Bloques directos: 645627
El archivo es realmente pequeño: solo un bloque. Copiamos este bloque con dd como se muestra antes:
$ dd if = $ IMAGE bs = 4096 count = 1 skip = 645627 of = block.645627 1 + 0 registros en 1 + 0 registros 4096 bytes (4.1 kB) copiados, 0.0166104 segundos, 247 kB / s
y luego edite el archivo para eliminar los ceros finales, o copie los primeros 40 bytes (el tamaño dado del archivo):
$ dd if = block.645627 bs = 1 count = 40 of = start_azureus 40 + 0 registros en 40 + 0 registros 40 bytes (40 B) copiados, 0.000105397 segundos, 380 kB / s
$ cat start_azureus cd / usr / src / azureus / azureus ./azureus &
¡Recuperado!"