Введение
Рано или поздно это происходит с каждым: через мгновение после
нажатия Enter вы осознате свою ошибку, но уже слишком поздно; вы
удалили очень важный файл или каталог, для которого не существует
резервной копии. Или, возможно, резервная копия есть, но она месячной
давности....и, пребывая в шоке, вы видите последний месяц, мгновенно
пролетающий перед вашими глазами, и с болью понимаете, что вам придется
делать все заново....
К счастью, вы помните, что файлы никогда реально не удаляются,
максимум - перезаписываются новым содержанием. Итак, вы как можно скорее
перемонтируете диск только для чтения. Но что теперь?
Если вы попробуете найти в Google ответ на запрос "восстановление удаленных
файлов в ext3", то практически любая найденная статья будет содержать вопрос
пользователя о том, возможно ли это, и ответ - "нет".
Наиболее часто цитируемый абзац взят из самого ext3
FAQ:
Q: Как можно восстановить удаленные файлы или отменить их удаление в разделе диска с файловой системой ext3?
A: На самом деле, это невозможно. Вот что сказал об этом один из разработчиков, Андреас Дилгер:
Чтобы обеспечить корректное восстановление ссылок в случае неожиданного
отказа системы, ext3 при удалении файла обнуляет указатели на блоки в индексном дескрипторе файла
(inode), в то время как ext2 просто помечает эти блоки как неиспользуемые в битовой карте блоков,
а индексный дескриптор как "удаленный", и не трогает указатели на блоки.
Ваша единственная надежда на то, чтобы найти при помощи grep все части удаленных
вами файлов, и надеяться на лучшее.
Однако это утвержение не совсем верно. Вся информация, возможно,
сохранилась, и указатели блоков в том числе. Вероятность этого немного
меньше, чем в случае с ext2, поскольку нужные данные придется восстанавливать из
журнала. Кроме того, мета-данные меньше связаны с реальными данными,
поэтому необходимо найти эвристический алгоритм для возврата к
предыдущему состоянию. Каждый раз, когда происходит доступ к файлу,
изменяется Время Доступа к нему, и его инод записывается на диск,
вместе с 31 другими инодами, которые так же принадлежат данному блоку.
Когда это происходит, копия блока записывается в журнал. Поэтому, если
ваш раздел не очень большой в сравнении с журналом, и
если Вы относительно недавно обращались к файлам, которые хотите восстановить,
возможно, Вам удастся восстановить указатели на блоки из журнала.
7-го февраля 2008 года я случайно полностью удалил мой
домашний каталог: более 3Гб данных были удалены командой rm
-rf. На
тот момент у меня была только резервная копия от июня 2007 года.
Невозможность восстановления данных была неприемлема. Поэтому я
проигнорировал всех, пытающихся меня в этом убедить и начал изучать,
как в действительности работает файловая система ext3, и что в
действительности происходит, когда файлы удаляются...
Через три недели, написав около 5000 строк кода, я восстановил на своем диске все файлы
до единого...читать дальше
|