Recuperando archivos borrados accidentalmente

79

Accidentalmente borré un archivo de mi computadora portátil. Estoy usando Fedora. ¿Es posible recuperar el archivo?

crskhr
fuente
99
¿Cuál es tu sistema de archivos?
echox

Respuestas:

94

Aconsejaría contra la instalación inmediata de alguna utilidad. Básicamente, tu mayor enemigo aquí son las escrituras en disco. Desea evitarlos a toda costa en este momento.

Su mejor opción es una copia de seguridad automática creada por su editor, si existe. Si no, intentaría el siguiente truco usando grep si recuerda alguna cadena única en su archivo .tex:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

Reemplace /dev/sda1con el dispositivo en el que estaba el archivo y reemplace 'string'con la cadena única en su archivo. Esto puede llevar algo de tiempo. Pero básicamente, lo que hace es buscar la cadena en el dispositivo y luego devuelve 100 líneas antes y después de esa línea y la coloca file.txt. Si necesita más líneas devueltas, simplemente ajuste las opciones -By -Asegún corresponda. Es posible que le devuelvan un montón de basura extra, pero debería poder recuperar su texto.

Buena suerte.

Steven D
fuente
8
Alguien me mostró esto un par de semanas después de cambiarme a Linux, cuando eliminé un documento de texto que realmente necesitaba, casi me dejó alucinado
Michael Mrozek
18
Por cierto, -B100 -A100se puede reemplazar por equivalente -C100(C para "contexto"). Y definitivamente no lo usaría -isi fuera posible, sino tenerlo -Fen su lugar.
rozcietrzewiacz
Probablemente, como era de esperar, supongo que se han reutilizado los mismos bloques de disco, este método no funcionó para un archivo que sobrescribí accidentalmente, no eliminé accidentalmente.
ntc2
Sí, en la mayoría de los sistemas de archivos, los mismos bloques se reutilizan cuando un archivo simplemente se sobrescribe. Tenga en cuenta que algunas aplicaciones "evitan esto" en cierto sentido al escribir primero un archivo temporal (lo que lo convierte en una escritura separada), y luego renombrar ese archivo sobre el archivo anterior (que reemplaza los datos desde el punto de vista del usuario). Esto se hace por varias razones diferentes. Los sistemas de almacenamiento (incluidos los sistemas de archivos) que hacen esto todo el tiempo se denominan copia al escribir .
un CVn
necesitas / dev / sda1 ?? ¿Puedes ir al director donde estaba el archivo y ejecutarlo sin / dev / sda1?
coolcool1994
22

Es posible, solo será una molestia.

ACTUALIZACIÓN: antes de probar este método, eche un vistazo a la respuesta de Steven .

Necesitará el paquete testdisk , mucho espacio en disco y mucho tiempo.

PhotoRec, una parte de TestDisk, puede recuperar archivos de casi cualquier disco. PhotoRec admite la búsqueda de .texarchivos.


Primero, instale testdisk ejecutando

yum install testdisk

nota: necesitará mucho espacio libre en otra unidad, donde puede guardar los archivos recuperados.

Recupere todos los archivos eliminados en su disco ejecutándose photorecen el espacio libre del disco.

sudo photorec

y siga las instrucciones ... (recuerde no guardar los archivos en el mismo disco del que se está recuperando)

Después de que el proceso se haya completado, todos los archivos recuperados deben estar en un directorio, donde debe ejecutar:

find -name '*.tex' > filelist

Esto generará una lista de archivos que podrían ser el que perdió. Deberá verificarlos todos, ya que los nombres de archivo se perderán.

Stefan
fuente
11
photorec es una buena utilidad, solo estaría preocupado por las escrituras en disco que sucederán durante la instalación. ¿Hay alguna forma de obtener esto como un ejecutable independiente que puede ejecutarse desde medios externos?
Steven D
1
Sí, tienes mucha razón. No sé acerca de un ejecutable independiente, ¿pero uno podría intentar usar algún live-cd?
Stefan
2
para reducir los archivos recuperados con Photorec, la tercera pantalla le dará a [File Opt] seleccionar esto. Puede seleccionar de una lista qué tipos de archivos desea o no desea recuperar.
Steve Burdine
13

Muchos editores de texto guardan archivos de respaldo. Si tiene mucha suerte, puede haber algo como yourfile.tex ~ que incluya una versión anterior de su archivo.

fschmitt
fuente
4

En cualquier caso, dejaría de trabajar en el dispositivo que se utiliza lo antes posible para evitar cualquier escritura en el disco, y arrancaré en un sistema operativo de recuperación dedicado, como SystemRescueCd , que es un Live-CD para que pueda montar su disco de solo lectura en para evitar una mayor pérdida de datos.

Esas distribuciones incluyen muchas herramientas de recuperación mencionadas por otros, y puede instalar la mayoría de las que faltan.

Siempre tiendo a tener un CD con una versión reciente de SystemRescueCd en mi lector USB externo, por si acaso.

Martin C.
fuente
3

NOTA: Agregué esta respuesta con respecto a alguna otra pregunta sobre los archivos de base de datos eliminados (servidor MySQL) que se cerró y apuntó a esta. Creo que también puede ser útil en algunas otras situaciones similares (en la medida en que algún proceso todavía mantenga abiertos los descriptores de archivo).

Si su proceso aún se está ejecutando, puede encontrar sus archivos /proc/<pid>fd/y simplemente copiarlos. Enviar SIGSTOPprimero al grupo de procesos. Copia los archivos. Cree una nueva instancia en el lateral y mantenga esta o detenida kill -9y vuelva a colocar los archivos en su lugar. InnoDB se recuperará por sí solo cuando se ejecute, pero si hubiera algo de MyISAM, tendrá que hacerlo manualmente.

pawel7318
fuente
2

Accidentalmente borré mi archivo sqlite db.

Lo que hice para averiguar el archivo fue,

Abrí la ubicación /proc/en un navegador de archivos y busqué el archivo sqlite db eliminado allí.

Descubrí ese archivo en un resultado de búsqueda. Copié ese archivo desde allí a mi antiguo lugar.

Thaha kp
fuente
0

Tuve el mismo problema hace dos años y probé muchos programas, como debugfs, photorec, ext3grep y extundelete. ext3grep fue el mejor programa para recuperar archivos. La sintaxis es muy fácil:

ext3grep image.img --restore-all

o:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

Este video es un mini tutorial que puede ayudarte.

Juan
fuente
0

Si no tiene una copia de seguridad, una herramienta de recuperación de disco de terceros puede recuperar algunos o todos los datos, pero debe dejar de usar la máquina ahora. Los archivos de la papelera ahora están disponibles para que su sistema los sobrescriba. Una vez que se sobrescriben, es prohibitivo recuperar los datos. He tenido éxito con la recuperación de datos de uflysoft (hay otras aplicaciones de recuperación de datos de Mac OS): debe tener una "unidad de recuperación" (no su unidad principal o una unidad de recuperación) en la que guardar los datos recuperados. Arranca desde el disco de recuperación de datos (sistema)

Gallup Noel
fuente