recuperar un archivo recién eliminado en ext4 con extundelete

54

¿Existe una opción simple sobre extundeletecómo puedo tratar de recuperar un archivo llamado /var/tmp/test.isoque acabo de eliminar?

(No es tan importante que comience a volver a montar la unidad de solo lectura o cosas similares. También puedo volver a descargar ese archivo nuevamente)

Estoy buscando un comando simple con el que pueda probar si logro recuperarlo rápidamente.

Lo sé, es posible volver a montar la unidad en solo lectura : (consulte ¿Cómo puedo recuperar el único archivo en un disco vacío que acaba de eliminar? )

¿Pero esto también es posible de alguna manera en el disco aún montado?

rubo77
fuente
Pregunta general con cualquier utilidad: unix.stackexchange.com/questions/2677/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
Esa otra pregunta es demasiado amplia. Aquí estoy buscando una solución rápida e insegura sin mucho esfuerzo (y menos posibilidades de éxito)
rubo77
No quise implicar duplicar, pero es posible que desee agregarlo a la pregunta por qué esa pregunta no fue suficiente.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

36

Mirando la guía de uso de extundelete , parece que estás limitado a recuperar archivos de varias maneras.

Restaurando todo

extundelete está diseñado para recuperar archivos de una partición desmontada a una partición separada (montada). extundelete restaurará cualquier archivo que encuentre en un subdirectorio del directorio actual llamado "RECOVERED_FILES". Para ejecutar el programa, escriba "extundelete --help" para ver varias opciones disponibles para usted.

El uso típico para restaurar todos los archivos eliminados de una partición se ve así:

    $ extundelete /dev/sda4 --restore-all

Restaurando un solo archivo

Además de este método resaltado en el uso de la línea de comandos:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

Entonces debería poder lograr lo que quiere hacer esto:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

NOTA: En ambos casos, necesita conocer el dispositivo /dev/sda4para realizar este comando. Tendrá que volver a montar el sistema de archivos como de solo lectura. Esta es una de las condiciones de uso extundeletey no hay forma de evitarlo.

slm
fuente
2
sí, pero todo eso solo funciona si vuelvo a montar la unidad de solo lectura
rubo77
1
@ rubo77 - correcto, no hay forma de evitarlo.
slm
2
Esto realmente funcionó para mí un sistema de archivos ext4 sin volver a montarlo como de solo lectura. Si intenta hacerlo sin volver a montar r / o, recibirá una advertencia que parece indicarle que su probabilidad de éxito es menor si lo hace. Si es realmente súper vital recuperar el archivo, entonces parece que debería hacerlo.
Ben Crowell
Al igual que @BenCrowell, he usado sin volver a montar, pero el programa me anuncia sobre la corrupción de datos si continúo usando hdd ... fue un borrado recientemente, así que solo
presiono Enter
16

El escenario de uso típico al recuperar todos los archivos incluye la necesidad de restaurar todos los archivos eliminados /dev/sdX1durante aproximadamente la última hora:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

Si está satisfecho con los archivos recuperados:

mount -o remount,rw /dev/sdX1
sanmai
fuente
mount: debe especificar el tipo de sistema de archivos
remontar espera punto de montaje como argumento, no el dispositivo
Don't You Worry Child
@ Don'tYouWorryChild mount -orealiza ya sea dir o dispositivo, como porman mount
sanmai
En lugar de restar 2 horas desde la fecha que puede hacer $(date -d "-2 hours" +%s)y la salida de lsblk -ppuede ser útil para encontrar dónde se encuentra ese volumen EXT4 en caché LVM cifrado con LUKS. ;)
LiveWireBT