Как восстановить файл, перезаписанный другим в 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-карта, внешний диск …), чтобы сохранить восстановленные файлы и запустить процесс – в зависимости от того, что вы выбрали – оттуда.

  • Кто-нибудь знает, почему rsync будет продолжать отправлять файлы снова и снова?
  • Каковы возможные проблемы безопасности с помощью SSH-демона?
  • Может ли gedit на mac использоваться для редактирования файлов по ssh?
  • Перезагрузка браузера iceweasel (firefox)
  • Как переместить загрузочные файлы Windows 7 (bootmgr, ...) на другой диск?
  • Как настроить VLAN в той же подсети, что и Ethernet
  • Ubuntu 17.04 с системным разрешением DNS-запросы случайным образом выходят из строя
  • Ubuntu - подключите монитор к ноутбуку
  • Что означает среднее значение 0.0.0.0 в таблице маршрутизации?
  • Как отключить автоконфигурацию на IPv6 в Linux?
  • В Ubuntu на VirtualBox происходит сбой подключения к Интернету, когда виртуальная машина создается из «Импорт устройства»
  • Давайте будем гением компьютера.