Мини-HOWTO: Восстановление удаленных файлов с файловой системы Ext2fs в Linux

Abstract

Представьте себе следующую картину. Последние три дня вы не ели, не спали, даже не принимали душ. И, наконец, ваши усилия вознаграждены: вы закончили программу, которая принесет вам всемирную известность и славу. Все, что вам осталось сделать - это запаковать ее архиватором tar и поместить на Metalab. Да... и удалить все копии старых файлов, созданные Emacs. Итак, вы набиваете на клавиатуре rm * ~. Лишний пробел в вашей команде вы замечаете слишком поздно. Вы только что удалили вашу супер программу! Но помощь у вас под рукой. Этот документ рассказывает, как можно восстановить удаленные файлы с файловой системы ext2 (Second Extended File System). Может быть, несмотря ни на что, вам удастся выпустить вашу программу...


Введение

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

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

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

Вы не сможете восстановить удаленные файлы с файловой системы ext2, как минимум, без прав доступа для чтения к непосредственно к устройству (device), на котором хранился файл. Подразумевается, что вы должны иметь права root, хотя некоторые дистрибутивы (например Debian GNU/Linux) имеют группу disk, члены которой имеют доступ к этим устройствам. Также вам потребуется утилита debugfs из пакета e2fsprogs, который должен быть установлен.

Почему мы написали этот документ? Потому, что имеем большой опыт случайного и непоправимого использования команды rm -r с правами root. Ваш покорный слуга однажды удалил около 97 необходимых JPEG файлов, которые невозможно было найти в других источников. Но, при помощи некоторых полезных подсказок (см. раздел Разд. Ссылки и благодарности) и большого терпения, я восстановил 91 файл в первозданном виде. Пять из оставшихся мне удалось восстановить частично (по крайней мере было понятно, что это за картинки). Лишь один файл невозможно было просмотреть, но, я уверен, что потерял не более 1024 байт информации (это очевидно из заголовка файла).

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

Версии документа

Предыдущие опубликованные версии документа:

Изменения в версии 1.1

Какие изменения были внесены в эту версию? Во-первых, кое-что было изменено в самом примере, на котором показано восстановление файла. Спасибо всем, кто указал на ошибку. Надеюсь, я стал внимательнее при создании интерактивных программ.

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

В-третьих, в середине документа был убран огромный кусок закодированной uuencode программы fsgrab. Программу теперь можно найти на моем сайте и на сайте Metalab(и зеркалах).

В-четвертых, документ был переведен в LDP SGML. Этот язык (SGML) может быть легко преобразован в другие языки (включая HTML и LaTeX) для просмотра и печати. Одно из преимуществ - красивый вид в печатных изданиях, другое - наличие перекрестных ссылок при просмотре через WWW.

Изменения в версии 1.2

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

Первое изменение было предложено Egil Kvaleberg egil@kvaleberg.no, и оно касалось команды dump в debugfs. Спасибо еще раз Egil.

Второе касается использования chattr, чтобы избежать удаления важных файлов. Спасибо Herman Suijs H.P.M.Suijs@kub.nl за упоминание об этом.

Абстрактная часть была пересмотрена. Были добавлены URL для организаций и программного обеспечения. Также были внесены некоторые другие незначительные изменения (исправлен typos и т.п.).

Где можно найти этот документ

Последнюю версию этого документа всегда можно найти на сайте Linux Documentation Project (и зеркалах).

Последняя версия также лежит на моем сайте в нескольких форматах:

  • SGML. Это исходный текст SGML, написанный с использованием пакета SGML Tools.

  • HTML. Это HTML, автоматически созданный из SGML.

  • Текст. Это простой текст, созданный из SGML.



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости