7. Вопросы, связанные с файловой системой

7.1. Восстановление поврежденного суперблока

[Замечание]Замечание

Представленная ниже информация применима только к файловым системам ext2 и ext3. Если у вас другая файловая система, пожалуйста, прочтите прилагаемую к ней документацию.

Суперблок - это первый блок каждого из разделов ext2FS/ext3FS. Он содержит важную информацию о файловой системе, такую как: ее размер, свободное пространство и т.п. (это похоже на метод, используемый в разделах FAT). Раздел с поврежденным суперблоком не может быть примонтирован. К счастью ext2FS/ext3FS хранят несколько резервных копий суперблока, разбросанных по разделу.

Загрузите свою систему с помощью загрузочного диска. Местоположение резервных копий зависит от размера блока файловой системы. Для файловых систем с размером блока в 1 КБ они находятся в начале каждого 8-килобайтного (8192 байт) блока, для файловых систем с размером блока в 2 КБ они находятся в начале каждого 16-килобайтного (16384 байт) блока и т.д. Вы можете воспользоваться командой mke2fs -n [имя_устройства_вашего_диска], чтобы узнать, в каких байтах находятся копии суперблока. Допуская, что размер блока - 1 КБ, первая резервная копия находится в байте под номером 8193. Чтобы восстановить суперблок из этой копии, выполните команду e2fsck -b 8193 /dev/hda4; замените hda4, соответственно, на название своего поврежденного раздела. Если окажется, что этот блок также поврежден, попробуйте следующий из байта под номером 16385 и так далее до тех пор, пока вы не найдете подходящую копию. Перезагрузите свою систему, чтобы изменения вступили в силу.

7.2. Восстановление удаленных файлов

Аннотация

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

Вы можете быть удивлены тем, что случайно удаленные файлы можно восстановить. Для файловой системы GNU/Linux ext2 разработано несколько утилит, которые позволяют вам восстановить удаленные файлы и каталоги. Однако они не смогут восстановить файлы, удаленные несколько месяцев назад. Вследствие использования диска пространство, помеченное как «свободное», уже было перезаписано. Поэтому наилучшим способом защиты от случайного или умышленного удаления информации является резервное копирование.

[Замечание]Замечание

Пожалуйста, учтите, что утилит для восстановления файлов, удаленных на файловых системах reiserfs, (пока что) не существует. Следите за информацией на домашней странице ReiserFS, чтобы быть в курсе последних новостей.

Единственная утилита восстановления - Recover. Это интерактивная утилита. Если вы являетесь обладателем Mandriva Linux PowerPack Edition™, она уже имеется на CD-ROM contribs. В противном случае вы можете найти ее на веб-сайте Rpmfind. Зайдите на него и загрузите RPM. После того, как вы получите RPM, установите его. Затем выполните команду recover и отвечайте на задаваемые вам вопросы. Вопросы помогут вам установить промежуток времени для поиска удаленных файлов и каталогов, чтобы уменьшить время происка[29].

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

[Замечание]Замечание

Существуют также мини-HOWTO на тему «восстановления удаленных файлов» с ext2, взгляните на Ext2fs-Undeletion и восстановление полностью удаленной структуры каталога.



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