Как восстановить файл, перезаписанный другим в Linux?

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

mv some_arbit_file required_file 

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

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

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

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

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

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


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

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

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

Все эти инструменты доступны в ваших репозиториях Ubuntu apt ( photorec поставляется с пакетом testdisk ).

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

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

Я не думаю, что обязательный файл был фактически перезаписан этим действием. Это было довольно «несвязано» из соответствующего индексного дескриптора, чтобы «исчезнуть». И some_arbit_file не изменил его местоположение – это скорее «указатель», который ранее указывал на требуемый файл, который сейчас указывает здесь.

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

Независимо от того, что вы пытаетесь сделать: не затрагивая затронутый раздел диска, все ваши шансы восстановить потерянный файл. Делать все действия на другой машине лучше, и монтировать затронутый диск только для чтения, даже для восстановления также улучшает ваши шансы. Не имея другой машины, вы можете попробовать жить компакт-диск (убедитесь, что здесь тоже не монтируется затронутый диск!). Даже будучи LiveCD, они позволяют устанавливать программное обеспечение в память, поэтому вы можете извлекать и запускать любой из вышеупомянутых инструментов. У вас есть дополнительный носитель (например, карта памяти, SD-карта, внешний диск …), чтобы сохранить восстановленные файлы и запустить процесс – в зависимости от того, что вы выбрали – оттуда.

  • Как сделать cut / copy / paste в GVim на Ubuntu работать с Ctrl + X, Ctrl + C, Ctrl + V?
  • Как узнать MAC-адрес моего адаптера WiFi на Ubuntu Linux?
  • RDP эквивалент для Ubuntu 10.10
  • Grub2 не может загружать Windows 7 с ошибкой «недопустимая подпись»
  • Как восстановить указатель мыши в Gnome
  • Ubuntu Server 12.10 - После ввода учетных данных на экране входа в систему снова появляется экран входа в систему. Экран входа в систему
  • Инициировать скрипты для каждого пользователя
  • Как я могу перечислить все IP-адреса в подключенной сети, предпочтительно с помощью терминала?
  • Хвост держится на дне после того, как я прокручиваю колесико
  • Как полностью отключить процесс от терминала?
  • Как я могу контролировать температуру процессора в Linux?
  • Interesting Posts

    Каков наилучший способ реализовать «запомнить меня» для веб-сайта?

    Как улучшить производительность графики DataGridView?

    Внешняя сортировка строк, ограниченная памятью, с объединенными и подсчитанными дубликатами на критическом сервере (миллиарды имен файлов)

    Как включить LogCat / Console в Eclipse для Android?

    Предупреждать пользователя о несохраненных изменениях перед выходом на страницу

    Как преобразовать переменную типа enum в строку?

    Длинные описания компонентов Inno Setup

    Как проверить частную функцию или class с частными методами, полями или внутренними classами?

    Измените столбец MySQL как AUTO_INCREMENT

    Удаление нескольких столбцов на основе имен столбцов в Pandas

    Использование lapply .SD в data.table R

    Когда пользователь отправляет сообщение моему боту, он получает приветственное сообщение. Но когда пользователь отвечает на это, бот снова отправляет приветственное сообщение. Как я могу это исправить?

    Передача данных ArrayList в веб-службу SOAP в android

    Получение параметров init в сервлете

    Аутентификация очереди в спецификации запроса

    Давайте будем гением компьютера.