¿Existe un comando para recuperar / recuperar archivos borrados rm
?
$ rm -rf /path/to/myfile
¿Cómo me puedo recuperar myfile
? Si existe tal herramienta, ¿cómo puedo usarla?
linux
data-recovery
deleted-files
pylover
fuente
fuente
Respuestas:
El enlace que alguien proporcionó en los comentarios es probablemente su mejor oportunidad.
Hack de Linux debugfs: Recuperar archivos
Ese artículo, aunque parece un poco intimidante, es bastante sencillo de seguir. En general, los pasos son los siguientes:
Use debugfs para ver un registro de sistemas de archivos
En el indicador de depuración
Salida de muestra
Ejecute el comando en debugfs
Determinar archivos inode
Con la información de inodo anterior, ejecute los siguientes comandos
Archivos recuperados a
recovered.file.001
.Otras opciones
Si lo anterior no es para ti, he usado herramientas como
photorec
recuperar archivos en el pasado, pero está orientado solo a archivos de imagen. He escrito mucho sobre este método en mi blog en este artículo titulado:Cómo recuperar archivos corruptos jpeg y mov de la tarjeta SDD de una cámara digital en Fedora / CentOS / RHEL .
fuente
debugfs -w /dev/sdb2
perolsdel
0 deleted inodes found.
extundelete
es más fácil para ext3 / 4 y probablemente conduciría a los mismos resultados./dev/mapper/wks01-root: No such file or directory while opening filesystem
¿De dónde sacaste esto/dev/mapper/wks01-root
?Con un poco de posibilidades, a veces puedo recuperar archivos borrados con este script o la siguiente solución en la respuesta:
Hay otro truco útil: si conoce un patrón en sus archivos eliminados, escriba alt+ sys+ resuopara reiniciar + volver a montar en solo lectura, luego con un live-cd, use
grep
para buscar en el disco duro:luego edite
/tmp/recover
para conservar solo los archivos que tenía antes.Oye, si con la filosofía de Unix todo son archivos, es hora de aprovechar esto, ¿no?
fuente
grep
solución basada es muy inteligente y funcionó para mí, incluso con el sistema de archivos aún montado. ¡Gracias!grep -av "[^[:print:]]"
grep
solución funcionó para mí con una modificación: lo hicesudo grep --line-buffered -ab "$PATTERN" /dev/sda1 | tee lines
y obtuve compensaciones de bytes (como123123123:line\n456456456:another\n...
), luego lo hicen=1000; sudo dd of=before if=/dev/sda1 ibs=1 skip=$[123123123-$n] count=$n
yn=1000; sudo dd of=after if=/dev/sda1 ibs=1 skip=123123123 count=$n
con diferentesn
valores.Lo que funcionó para mí fue dada por arco (sólo se aplica a archivos de texto):
donde
/dev/sdXN
está la partición que contiene el archivo perdido (verifiquemount
si no está seguro).¡Toma un poco de tiempo, pero funcionó cuando borré accidentalmente un código fuente que aún no había confirmado!
fuente
rm data/*.json python myFile.py
lugar derm data/*.json && python myFile.py
/dev/sdXN
es para el sistema de archivos, ¿verdad? Encontré la mía condf -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep: conflicting matchers specified
Aunque esta pregunta está resuelta y tiene algunos años, quiero mencionar la utilidad testdisk .
Cómo recuperar archivos con testdisk se explica bien en este tutorial . Para recuperar archivos, ejecute
testdisk /dev/sdX
y seleccione su tipo de tabla de particiones. Después de esto, seleccione[ Advanced ] Filesystem Utils
, luego elija su partición y seleccione[Undelete]
. Ahora puede explorar y seleccionar archivos eliminados y copiarlos a otra ubicación en su sistema de archivos.fuente
Tuve el mismo problema la semana pasada y probé muchos programas, como debugfs, photorec, ext3grep y extundelete. ext3grep fue el mejor programa para recuperar archivos. La sintaxis es muy fácil:
o:
Este video es un mini tutorial que puede ayudarte.
fuente
Se puede usar una alternativa en
del
lugar derm
eliminar:http://fex.belwue.de/fstools/del.html
del
tiene una función de recuperación y funciona con cualquier sistema de archivos.Por supuesto, no es una solución si ya ha eliminado sus archivos con "no tomar prisioneros" rm: -}
fuente
del
comando.conectar la unidad a través de la interfaz externa
umount /dev/{sd*}
extundelete --restore-all /dev/{sd*}
Consulte este enlace para obtener más información: recuperar un archivo recién eliminado en ext4 con extundelete .
fuente
Herramientas de recuperación - Línea de comando:
Herramientas de recuperación - Gui:
Informaciones:
En mi experiencia personal, recupero mis datos utilizando ufs-explorer y photorec
(1) = No es de código abierto, no es gratis
(2) = No es de código abierto, gratis
(3) = Código abierto y gratuito
(4) = Tener soporte ntfs
(5) = Tiene función de estructura de directorio
fuente
No estoy de acuerdo con que sea imposible, simplemente muy, muy difícil, y tampoco lo he hecho desde Linux:
Cuando se eliminan los archivos, en realidad no se eliminan. Lo que sucede es que el espacio que tenían en el disco duro se reinicia, de modo que si la computadora intenta escribir datos allí, nada se queja. En general, los datos en su disco duro que pensó que eliminó pueden estar allí casi un año después. O al menos, esta es mi experiencia en una máquina con Windows. Si funciona o no de la misma manera desde una línea de comandos en Linux, no estoy seguro, pero es probable que necesite un Live CD por separado para abrir la partición así, y tampoco hay garantía de que los archivos sigan allí. He hecho esto en Windows XP varias veces usando Zero Assumption Recovery. Estoy seguro de que hay una herramienta similar si te fijas lo suficiente.
fuente
Cuando elimina un archivo, el recuento de enlaces en la tabla de inodo para ese archivo disminuye en uno. En Unix, cuando el recuento de enlaces cae a 0, los bloques de datos para ese archivo se marcan como libres y, por lo general, se pierden referencias a esos bloques de datos. Acabo de descubrir por el comentario de @ fedorqui que puede haber alguna forma de acceder a esos bloques, pero eso solo es aplicable al sistema de archivos ext3.
Una forma de preservar los archivos será escribir una función que le permita mover los archivos a un área de basura (digamos
$HOME/.trash
) y recuperar los archivos necesarios desde allí. Esta función puede ser aliasrm
. Puede programar un trabajo cron para eliminar los archivos que han estado en el área de la papelera durante un cierto número de días.fuente
Esto podría ahorrarles problemas a algunos de ustedes.
Si alguna vez usó gedit para editar ese archivo, por defecto se creará una copia de ese archivo.
Por ejemplo, supongamos que hemos eliminado accidentalmente 'myfile.txt'.
En la carpeta que solía contener el archivo que acaba de eliminar, use estos comandos y recuperará la copia desde allí:
ls | grep 'myfile.txt~'
con un poco de suerte lo encontrará y luego:
cp 'myfile.txt~' 'myfile.txt'
He recuperado un archivo ahora mismo usando este método. ¡La mejor de las suertes!
fuente