Восстановление случайно удаленных файлов


79

Я случайно удалил файл с моего ноутбука. Я использую Fedora. Возможно ли восстановить файл?


9
какая у тебя файловая система?
echox

Ответы:


94

Я бы посоветовал не устанавливать сразу какую-либо утилиту. По сути, ваш самый большой враг здесь - запись на диск. Вы хотите избежать их любой ценой прямо сейчас.

Ваша лучшая ставка - это автоматическое резервное копирование, созданное вашим редактором - если оно существует. Если нет, я бы попробовал следующий трюк с использованием grep, если вы помните какую-то уникальную строку в вашем файле .tex:

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

Замените /dev/sda1устройство, на котором был файл, и замените 'string'его уникальной строкой. Это может занять некоторое время. Но в основном, это то, что он ищет строку на устройстве, а затем возвращает 100 строк до и после этой строки и вставляет ее file.txt. Если вам нужно больше строк вернулись только настроить -Bи -Aпараметры в зависимости от обстоятельств. Вы можете получить кучу лишнего мусора, но вы сможете вернуть свой текст.

Удачи.


8
Кто-то показал мне это через пару недель после того, как я перешел на Linux, когда я убил текстовый документ, в котором я действительно нуждался - это поразило меня
Майкл Мрозек

18
Кстати, -B100 -A100может быть заменен на эквивалентный -C100(C для «контекста»). И я бы точно не использовал, -iесли бы это было возможно, но имел бы -Fна своем месте.
rozcietrzewiacz

Вероятно неудивительно - я предполагаю, что те же самые блоки диска были повторно использованы - этот метод не работал для файла, который я случайно перезаписал, а не случайно удалил.
ntc2

Да, в большинстве файловых систем одни и те же блоки используются повторно, когда файл просто перезаписывается. Обратите внимание, что некоторые приложения «обходят это» в некотором смысле, сначала записывая временный файл (что делает его отдельной записью), затем переименовывая этот файл поверх старого файла (который заменяет данные с точки зрения пользователя). Это сделано по ряду разных причин. Системы хранения (включая файловые системы), которые делают это постоянно, называются копированием при записи .
CVN

тебе нужен / dev / sda1 ?? Можете ли вы просто пойти к директору, где находился файл, и запустить без / dev / sda1?
coolcool1994

22

Это возможно, это просто будет хлопот.

ОБНОВЛЕНИЕ: прежде чем попробовать этот метод, пожалуйста, посмотрите на ответ Стивена .

Вам понадобится пакет testdisk , много места на диске и много времени.

PhotoRec, входящий в состав TestDisk, может восстанавливать файлы практически с любого диска. PhotoRec поддерживает поиск .texфайлов.


Сначала установите testdisk , запустив

yum install testdisk

примечание: вам понадобится много свободного места на другом диске, где вы сможете сохранить восстановленные файлы.

Восстановите все удаленные файлы на вашем диске, запустив photorecсвободное место на диске.

sudo photorec

и следуйте инструкциям ... (не забудьте сохранить файлы на тот же диск, с которого вы восстанавливаете)

После завершения процесса все восстановленные файлы должны находиться в одном каталоге, где вы должны выполнить:

find -name '*.tex' > filelist

Это выведет список файлов, которые могут быть теми, которые вы потеряли. Вам придется проверить все из них, так как имена файлов будут потеряны.


11
Photorec - хорошая утилита, я бы просто беспокоился о записи на диск, которая произойдет во время установки. Есть ли способ получить это как отдельный исполняемый файл, который может работать с внешнего носителя?
Стивен Д

1
Да, вы очень правы. Я не знаю об отдельном исполняемом файле, но можно попробовать использовать live-cd?
Стефан

2
чтобы сократить файлы, восстановленные с помощью Photorec, на третьем экране выберите [File Opt]. Вы можете из списка выбрать, какие типы файлов вы хотите или не хотите восстанавливать.
Стив Бурдин

13

Многие текстовые редакторы хранят файлы резервных копий. Если вам действительно повезло, может быть что-то вроде yourfile.tex ~, включая предыдущую версию вашего файла.


9

Есть и другие инструменты восстановления данных и наиболее эффективными являются в первую очередь , PhotoRec , скальпель и магия спасение . (Я предполагаю, что описанного здесь трюка с grep недостаточно). Здесь вы можете найти несколько уроков о том, как их использовать:

http://www.howtogeek.com/howto/15761/recover-data-like-a-forensics-expert-using-an-ubuntu-live-cd/

https://help.ubuntu.com/community/DataRecovery


4

В любом случае я бы прекратил работать на используемом устройстве как можно скорее, чтобы избежать записи на диск, и загрузился бы в специальную операционную систему восстановления, такую ​​как SystemRescueCd , которая является Live-CD, так что вы можете монтировать диск только для чтения в Чтобы предотвратить дальнейшую потерю данных.

Эти дистрибутивы включают в себя множество инструментов восстановления, упомянутых другими, и вы можете установить большинство отсутствующих.

На всякий случай, я всегда склонен иметь компакт-диск с последней версией SystemRescueCd в моем внешнем USB-ридере.


3

ПРИМЕЧАНИЕ. Я добавил этот ответ относительно другого вопроса об удаленных файлах базы данных (сервер MySQL), который был закрыт и на него указывался. Я полагаю, что это может быть полезно и в некоторых других подобных ситуациях (поскольку некоторый процесс все еще держит дескрипторы файлов открытыми).

Если ваш процесс еще запущен, вы можете найти свои файлы /proc/<pid>fd/и просто скопировать их. Отправьте SIGSTOPсначала в группу процессов. Скопируйте файлы. Создайте новый экземпляр сбоку и остановите kill -9его или поставьте файлы на свои места. InnoDB будет восстанавливаться самостоятельно при запуске, но если MyISAM было немного, вам придется делать это вручную.


2

Я случайно удалил свой файл базы данных sqlite.

Что я сделал, чтобы выяснить файл,

Открыл местоположение /proc/в файловом браузере и искал там удаленный файл базы данных sqlite.

Я обнаружил этот файл в результате поиска. Скопировал этот файл оттуда в мое старое место.


0

У меня была такая же проблема два года назад, и я пробовал много программ, таких как debugfs, photorec, ext3grep и extundelete. ext3grep была лучшей программой для восстановления файлов. Синтаксис очень прост:

ext3grep image.img --restore-all

или же:

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’

Это видео - мини-учебник, который может вам помочь.


0

Если у вас нет резервной копии, инструмент восстановления диска стороннего производителя может восстановить некоторые или все данные, но вы должны прекратить использование машины сейчас. Удаленные файлы теперь доступны для вашей системы, чтобы перезаписать их. Как только они будут перезаписаны, восстановление данных будет чрезмерно дорогостоящим. Я успешно использовал восстановление данных uflysoft (есть другие приложения для восстановления данных Mac OS) - у вас должен быть «диск восстановления» (не ваш основной диск или диск, с которого вы извлекаете информацию), на котором можно сохранить восстановленные данные. Вы загружаетесь с диска восстановления данных (системы)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.