Текст книги "Восстановление данных"
Автор книги: Алексей Гультяев
Жанр: Базы данных, Компьютеры
сообщить о неприемлемом содержимом
Текущая страница: 25 (всего у книги 25 страниц)
Восстановление данных в файловой системе NTFS
Как вы уже знаете из материала главы 3, файловая система NTFS содержит целый ряд механизмов, призванных повысить надежность хранения данных. Это, в свою очередь, ведет к существенному усложнению структуры NTFS по сравнению с FAT32. Даже детальное изучение структуры записей, хранящихся в MFT (главной таблице файлов), не гарантирует возможность восстановления данных «вручную».
Ситуация усугубляется тем, что на сегодняшний день практически отсутствуют инструменты, обеспечивающие удобные средства просмотра и редактирования MFT.
По указанной причине мы ограничим круг рассматриваемых вопросов следующими ситуациями:
восстановление элемента таблицы разделов, содержащего сведения об NTFS-разделе;
восстановление загрузочного сектора логического диска с NTFS;
восстановление служебной информации в MFT.
Перечисленные задачи можно решить посредством совместного использования уже знакомых вам инструментов: Norton DiskEdit и Paragon Partition Manager, а также утилиты Partition Table Editor, входящей в состав пакета Norton PartitionMagic.
Восстановление элемента таблицы разделовИмеется в виду ситуация, когда операционной системе Windows XP при загрузке не удается опознать логический диск с NTFS вследствие повреждения описывающего его (диск) элемента таблицы разделов. Чтобы получить более полное представление о возникшей ситуации, целесообразно запустить утилиту Norton Partition Table Editor.
ПРИМЕЧАНИЕ
Утилита Norton Partition Table Editor (в дальнейшем для краткости будем называть ее PTEdit) состоит из единственного исполняемого файла – PTEDIT.exe. Ее особенность состоит в том, что она при запуске обеспечивает перевод системыв однозадачный режим (за счет загрузки собственной DOS). Однако для работыс NTFS-разделами ее лучше запускать либо из средыWindows 98, либо из среды «настоящей» MS DOS, например, с гибкого диска. Размер файла PTEDIT.exe – около 500 Кбайт.
После запуска PTEdit на экране появится диалоговое окно, с помощью которого можно просмотреть и отредактировать основные параметры любого элемента таблицы разделов выбранного физического диска (рис. 7.18).
Выбор физического диска выполняется с помощью раскрывающегося списка Hard Disk (Жесткий диск).
Строки расположенной ниже таблицы соответствуют четырем элементам основной таблицы разделов. В столбцах выводятся следующие сведения:
Type (Тип) – тип файловой системы или раздела; отображается в виде шест-надцатеричного кода;
Boot (Загрузка) – признак загрузочного раздела; для загрузочного активного раздела, как вы знаете, должно быть указано значение 80;
Starting (Начальное положение) – адрес первого сектора раздела, заданный
номером цилиндра (Cyl), головки (Head) и сектора (Sector);
Ending (Конечное положение) – адрес последнего сектора раздела, также заданный номером цилиндра, головки и сектора;
Sectors Before (Предшествует секторов) – количество секторов жесткого диска, предшествующих первому сектору раздела в соответствии с адресацией LBA (то есть при «сквозной» нумерации по головкам и цилиндрам);
Sectors (Секторов) – размер раздела, измеренный в секторах.
Рис. 7.18. Стартовое окно утилиты Partition Table Editor
Чтобы просмотреть цепочку дополнительных таблиц расширенного раздела (EPBR), выполните следующие действия.
1. Переместите курсор в строку, соответствующую расширенному разделу (его код равен 0Fh).
2. Щелкните на кнопке Goto EPBR (Перейти на EPBR), расположенной под таблицей.
Если вы знаете, что восстанавливаемый NTFS-раздел находится на прежнем месте, но в соответствующей ему строке указан неверный тип раздела, вы можете попробовать установить корректное значение принудительно. Для этого щелкните на кнопке Set Type (установить тип) и в открывшемся окне выберите требуемое значение (рис. 7.19). Для раздела NTFS оно равно 07h.
Если вам известны корректные значения других параметров раздела и они отличаются от представленных в таблице, вы можете (предварительно запомнив или записав на бумаге текущие значения) ввести их в поля таблицы. Чтобы внесенные изменения были записаны на диск, щелкните на кнопке Save Change (Сохранить изменения).
Рис. 7.19.Можно принудительно установить требуемый тип раздела
Восстановление загрузочного сектора раздела NTFSСОВЕТ
Если восстанавливаемый раздел вообще опознается как пустой, можно попробовать создать на его месте новый, такого же типа, как у восстанавливаемого раздела, и (обязательно!) точно такого же размера. Для выполнения этой процедуры можно использовать либо Paragon Partition Manager, либо Norton PartitionMagic (о работе с ними рассказано в третьей главе).
Состав информации, содержащейся в загрузочном секторе раздела NTFS, во многом аналогичен составу информации в загрузочном секторе раздела FAT32: в его первых трех байтах записана команда перехода на программу начальной загрузки ОС, затем идет код файловой системы, а вслед за ним – поля блока параметров BIOS (BPB). Чтобы оценить корректность содержимого загрузочного сектора раздела NTFS, переместите курсор в строку соответствующего раздела и щелкните на кнопке Boot Record (Загрузочная запись), расположенной под таблицей (см. рис. 7.18). В дополнительном окне будет представлено содержимое BPB в текстовом формате (рис. 7.20).
По сравнению с BPB раздела FAT32 здесь присутствуют следующие специфические поля:
Total NTFS Sectors (Всего секторов в NTFS) – общее число секторов в разделе;
MFT Start Cluster (Начальный кластер MFT) – номер первого кластера таблицы MFT;
MFT Mirror Start Cluster (Начальный кластер зеркала MFT) – номер первого кластера копии таблицы MFT;
Clusters per FRS (Кластеров в FRS) – размер одной записи таблицы MFT (в кластерах);
Clusters per Index Block (Кластеров в индексном блоке) – размер индексного блока (в кластерах).
Рис. 7.20. Диалоговое окно NTFS Boot Record
Если повреждения незначительны, можно отредактировать значения полей непосредственно в окне NTFS Boot Record. После внесения изменений щелкните на кнопке Write (Записать), чтобы перенести их на диск.
Если загрузочный сектор поврежден существенно или вам неизвестны корректные значения полей, следует заменить загрузочный сектор его резервной копией. Для версии NTFS, используемой в Windows XP, копия загрузочного сектора хранится в самом последнем секторе логического диска.
Операцию копирования сектора можно выполнить либо с помощью Norton Disk-Edit, либо с помощью Paragon Partition Manager (точнее, с помощью входящей в него утилиты Просмотр секторов). Следует отметить, что в данном случае второй вариант даже предпочтительнее, поскольку Partition Manager «знаком» с NTFS лучше, чем Norton DiskEdit.
Итак, чтобы заменить загрузочный сектор NTFS его резервной копией с помощью утилиты Просмотр секторов, выполните следующие действия.
1. После загрузки Paragon Partition Manager щелкните правой клавишей мыши на изображении восстанавливаемого раздела и выберите в контекстном меню пункт Посмотреть сектора.
2. В окне утилиты Просмотр секторов (рис. 7.21) введите в редактируемом поле Абсолютный сектор|Наберите выражение для оценки: номер последнего сектора раздела (он отображается справа от раскрывающегося списка) и нажмите клавишу Enter.
3. Щелкните на кнопке Сохранить, расположенной в правой части окна утилиты, и в дополнительном окне укажите адрес и имя двоичного (.bin) файла, в который следует записать содержимое сектора.
4. Вернитесь к нулевому (загрузочному) сектору раздела, введя 0 в поле Абсолютный сектор|Наберите выражение для оценки:.
5. Щелкните на кнопке Настройки и в дополнительном окне установите флажок Разрешить запись. После того как вы закроете окно, станет доступна кнопка Восстановить.
6. Щелкните на кнопке Восстановить и в открывшемся окне укажите bin-файл, из которого следует считать содержимое сектора.
Рис. 7.21. Представление загрузочного сектора в окне утилиты Просмотр секторов
После двух подтверждений с вашей стороны о корректности замены будет выполнена запись на диск.
В том случае, если повреждена и резервная копия загрузочного сектора, остается только один выход: отредактировать содержимое загрузочного сектора вручную. Для выполнения этой операции также пригодна утилита Просмотр секторов, но можно использовать и Norton DiskEdit. Распределение пространства загрузочного сектора логического диска NTFS представлено в табл. 7.5.
Для успешного проведения восстановительных работ в разделе NTFS необходимо определить его геометрию, которая характеризуется набором следующих параметров:
размер сектора (в байтах);
размер кластера (в секторах);
номера начального кластера таблицы MFT и ее копии;
размер записи таблицы MFT (в кластерах).
Первый из названных параметров полностью аналогичен одноименному параметру для раздела FAT32.
Что касается размера кластера, то, как и для FAT32, он зависит от объема раздела, но может быть изменен пользователем при форматировании раздела (либо с помощью соответствующих функций таких инструментов, как Norton PartitionMagic или Paragon Partition Manager, рассмотренных в главе 3).
Восстановление служебной информации в MFTКак вы уже знаете, таблица MFT представляет собой метафайл с именем $MFT, в котором хранятся записи с атрибутами других метафайлов и записи с атрибутами файлов пользователя (подробнее о логической структуре MFT см. главу 3).
Для разделов объемом в несколько гигабайт и при большом количестве файлов данных размеры MFT могут достигать десятков мегабайт. При этом граница MFT может изменяться динамически в зависимости от объема записанных на диск данных и наличия свободного пространства.
Кроме того, каждый файл в NTFS может иметь собственный набор атрибутов (об этом также достаточно подробно говорилось в главе 3); некоторые из них задаются самим пользователем.
Все это существенно затрудняет анализ и восстановление MFT на уровне отдельных записей.
Тем не менее в случае повреждения MFT вы можете попытаться восстановить записи, относящиеся к метафайлам, а затем поручить восстановление файлов и папок одному из программных инструментов, рассмотренных в четвертой главе.
Поиск таблицы MFT
Номер первого кластера таблицы MFT содержится в поле Clusters to MFT загрузочного сектора. Если вам удалось его восстановить, то с помощью утилиты Просмотр секторов можно перейти на этот кластер и проверить корректность записей, относящихся к метафайлам.
Для перехода по номеру кластера выполните следующие действия.
1. Откройте первый (загрузочный) сектор диска.
2. В разделе Абсолютный сектор, в поле Наберите выражение для оценки введите формулу для вычисления номера первого сектора MFT: <N класте-pa>x<Sectors per Cluster>, где <N кластера» – это шестнадцатеричное значение номера первого кластера MFT, а <Sectors per Cluster> – это размер кластера, записанный в поле Sectors per Cluster (например: 40 000 х 8, рис. 7.22)
3. Нажмите клавишу Enter.
Характерные признаки «исправной» MFT:
каждая запись начинается со слова FILE0, размещенного в первых пяти байтах сектора;
для большинства записей метафайлов в байтах со смещением F2h хранится имя метафайла, которое всегда начинается с символа $;
первая запись описывает сам метафайл $MFT.
Последовательность размещения записей других метафайлов приведена в табл. 7.6.
Далее в файле $MFT следуют записи с информацией обо всех остальных файлах и каталогах.
В том случае, если поле Clusters to MFT загрузочного сектора повреждено или переход по номеру кластера привел «неизвестно куда», можно попробовать доверить поиск MFT самой утилите Просмотр секторов.
Для этого щелкните на кнопке Перейти и в открывшемся меню (рис. 7.23) выберите команду NTFS4MFT. Обратите внимание, что здесь же указан номер сектора (относительно начала раздела), с которого начинается MFT.
Рис. 7.23.Поиск таблицы MFT с помощью утилиты Просмотр секторов
Если и этот прием не даст результата, остается последний выход: вернуться к работе с программой Norton DiskEdit и попытаться найти таблицу MFT с помощью полнотекстового поиска по разделу. В качестве ключа поиска можно использовать имя метафайла – $MFT. Однако при этом следует учитывать, что имена файлов в NTFS представлены в двухбайтовой кодировке UNICODE, а Norton DiskEdit работает с однобайтовым кодом ASCII.
Если основная таблица MFT повреждена, следует проверить состояние ее копии. Напомним, что в NTFS не предусмотрено создание полной копии MFT. Сокращенная копия, MFT Mirror, содержит лишь первые четыре записи из основной таблицы, относящиеся к метафайлам $MFT, $MFTMirr, $LogFile и $Volume.
Напомним также, что копия MFT в версии NTFS для Windows XP всегда расположена в середине раздела. Поэтому если в загрузочной записи адрес ее начала отсутствует, несложно его вычислить исходя из числа секторов раздела.
Можно также попробовать перейти к сектору с копией MFT с помощью утилиты Просмотр секторов, воспользовавшись командой NTFS MFT зеркальный из меню Перейти (см. рис. 7.23).
Если копия уцелела, необходимо отыскать ее последний сектор и затем перенести содержимое «зеркала» в соответствующие секторы, отведенные под основную MFT.
С помощью утилиты Просмотр секторов эта операция выполняется таким же образом, как и перенос копии загрузочного сектора.
Размер и структура записи таблицы MFT
С учетом сказанного выше большое значение имеет правильное определение размера записи таблицы MFT. Его значение хранится в поле Clusters per FRS загрузочного сектора.
Многие дисковые утилиты, в том числе PTEdit, отображают это значение как десятичное целое положительное число в диапазоне 0-255 (обычно равное 246, см. рис. 7.20). В действительности это значение следует рассматривать как шест-надцатеричное целое со знаком, в котором старший разряд отводится для представления знака. Если число положительно (то есть в десятичном представлении меньше 128), то оно означает количество кластеров, занимаемых одной записью таблицы MFT. Если же число отрицательное (больше десятичного 127), то для определения размера записи MFT нужно использовать следующую формулу:
FRS= 2(256 – Clusters_Per_FRS)
Здесь FRS – количество байтов, занимаемых записью MFT, а Clusters_Per_FRS – значение поля Clusters per FRS.
Например, если в поле Clusters per FRS представлено значение 246 (то есть шест-надцатеричное F6), то в приведенной выше формуле показатель степени 2 будет равен 10, а для FRS получим значение 1024, то есть размер записи MFT составляет 1 Кбайт. Аналогично значение поля Clusters per FRS, равное 245 (F5h), соответствует размеру записи MFT, равному 211 = 2048 байт, или 2 Кбайт.
Запись MFT содержит список областей переменной длины, каждая из которых соответствует одному из атрибутов файла. Размер этого списка и состав хранящихся в нем атрибутов для каждого файла может быть своим.
Если все атрибуты файла или каталога не помещаются в базовой записи, создается одна или несколько дополнительных записей. При этом базовая запись содержит атрибут, в котором перечислены все атрибуты данного файла и каталога, а также указание, в каких именно записях (базовой или дополнительных) хранятся те или иные атрибуты.
Каждая запись MFT состоит из заголовка фиксированного формата, вслед за которым идет список атрибутов переменной длины. Приступая к исследованию записи MFT, сначала нужно проанализировать ее заголовок. Формат заголовка записи MFT представлен в табл. 7.7.
Несколько слов по поводу так называемого массива корректировки. Перед сохранением записи MFT операционная система заменяет последние два байта каждого сектора специальным значением – шаблоном корректировки, который должен быть одинаковым для всех секторов одной записи MFT, но различаться для разных записей MFT. Оригинальное содержимое последних байтов секторов записи MFT сохраняется во второй и последующих ячейках (два байта) массива корректировки. В первую ячейку массива при этом записывается значение шаблона корректировки.
Процедура «ручного» побайтного восстановления записей MFT может потребовать кропотливого труда в течение нескольких часов (если не больше). Решиться на такой шаг можно лишь в случае потери действительно «жизненно важных» данных. Альтернативный способ – обратиться к услугам специальных служб восстановления. Их адреса можно найти в Интернете. Разумеется, доверить свои данные можно далеко не всем. К числу служб восстановления, имеющих достаточно высокий авторитет, можно отнести, в частности, службу компании Ontrack, создателя описанного в книге пакета для восстановления данных EasyRecovery.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.