4

Я сделал это в командной строке (Ubuntu 12.04, ext4)

mv some_arbit_file required_file

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

3 ответа3

4

Некоторые люди предлагают

$ su
# umount /home
# grep -a -A800 -B800 'soldier' /dev/sda2 | strings > recovered_file

Там, где ваш файл находился в файловой системе /home, 'home был смонтирован на /dev //sda2, а военная является ключевой фразой, которая, вероятно, будет уникальной для перезаписанного файла.

recovered_file может быть большим, но может содержать текст из перезаписанного файла. Если перезаписанный файл не был в основном текстовым, этот подход бесполезен.

Важно принять меры для предотвращения дальнейшей записи операционной системой файловой системы, содержащей ваш файл. Хороший способ - это загрузка с live-CD. Если вы можете размонтировать файловую систему или перемонтировать ее только для чтения, это тоже хорошо.


Вам может быть интересно прочитать http://carlo17.home.xs4all.nl/howto/undelete_ext3.html - хотя это относится больше к удаленным файлам, чем к перезаписанным. Однако, если вы ранее редактировали перезаписанный файл, вполне вероятно, что редактор оставил несколько удаленных копий на диске как естественную часть процесса редактирования.

1

Прекратите использовать / размонтировать соответствующий раздел как можно скорее.

Рассмотрим эту тему, где упоминается extundelete . Кроме того, существуют photorec, прежде всего, и скальпель, которые являются очень мощными резчиками файлов, которые могут помочь восстановить ваш файл (например, путем поиска более старых версий или резервных копий вашего файла, которые еще не были перезаписаны).

Все эти инструментов доступны в вашей Ubuntu метких хранилищ (PhotoRec поставляется с пакетом TestDisk).

Не забудьте сохранить результаты восстановления в другом разделе, чем тот, из которого вы восстанавливаете данные.

Однако, если ваш файл действительно был перезаписан (т. Е. Та же область жесткого диска, на которой был сохранен старый файл, использовалась для хранения нового файла), то нет возможности восстановить файл (Примечание: это действительно только для жесткие диски - ssds хранит (и "перезаписывает") файлы другим способом). Если вам повезет, вы сможете восстановить только те части файла, которые не были перезаписаны, например, если новый файл был меньше старого.

0

Я не думаю, что требуемый_файл был фактически перезаписан этим действием. Это было скорее "несвязано" с соответствующим инодом, чтобы "исчезнуть". Кроме того, some_arbit_file не изменил своего местоположения - это был скорее "указатель", который ранее указывал на required_file, который сейчас указывает здесь.

Существуют инструменты, которые помогут вам в таких случаях, например, Sleuthkit или Testdisk. Но они требуют некоторой ручной работы - и это не так легко сделать, если вы не знаете, с чего начать. Также есть скрипт ext3undel, который использует эти инструменты и автоматизирует процесс, или отдельная утилита extundelete.

Все, что вы пытаетесь сделать: вообще не трогать поврежденный раздел диска, увеличивает ваши шансы на восстановление потерянного файла. Лучше всего выполнить все действия на другом компьютере, а подключенный диск только для чтения, даже для восстановления, также повышает ваши шансы. Если у вас нет другого компьютера, вы можете попробовать live CD (не устанавливайте поврежденный диск в режиме записи и здесь!). Даже будучи LiveCD, они позволяют устанавливать программное обеспечение в памяти, поэтому вы можете получить и запустить любой из вышеупомянутых инструментов. Имейте под рукой дополнительный носитель (например, карту памяти, SD-карту, внешний диск ...) для хранения восстановленных файлов и запуска процесса - в зависимости от того, что вы выбрали - оттуда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .