47029 (588463), страница 5
Текст из файла (страница 5)
Ручное восстановление данных в FAT32
Для исследования внутренней структуры раздела целесообразно использовать утилиту Disk Editor, входящую в пакет Acronis Disk Director.
Для перехода в новый режим выберите в меню Object пункт Drive (Устройство). После того как Disk Editor завершит сканирование, установите переключатель режимов в положение Logical disks и затем выберите в списке логических дисков тот, с которым вы собираетесь работать. После этого Disk Editor начнет сканирование диска с целью определения структуры файловой системы и построения полного дерева папок и файлов. Чтобы получить сведения о FAT и корневом каталоге, не обязательно дожидаться полного завершения сканирования, можно его прервать через несколько секунд после начала, нажав клавишу Esc. После получения от вас подтверждения о прекращении сканирования Disk Editor выведет на экран содержимое корневого каталога в текстовой форме (рис. 7.16). Если Disk Editor по какой-то причине не смог самостоятельно обнаружить корневой каталог, попробуйте перейти к нему по относительному адресу его первого сектора. Номер этого сектора можно определить по значению поля First cluster of Root блока BPB. Кроме того, при поиске корневого каталога необходимо учитывать следующее. Корневой каталог (как и любой другой каталог в FAT32) содержит 32-байтовые элементы — дескрипторы, описывающие файлы и вложенные каталоги. Первый дескриптор корневого каталога содержит сведения о логическом диске (точнее говоря, о самом корневом каталоге), в том числе: метку тома, дату и время создания, атрибуты каталога как элемента файловой системы. Остальные дескрипторы, хранящиеся в корневом каталоге, содержат большее количество сведений о связанных с ними элементах данных.
Описание лишь наиболее важных полей дескриптора, которые представлены на первом экране:
-
Name — имя элемента данных (файла или папки); если элемент данных отмечен как удаленный, то в качестве первого символа имени используется байт Е5 (в текстовом формате Disk Editor заменяет его буквой х);
-
Ext — расширение файла (для папок это поле пусто);
-
ID — тип элемента данных; возможные значения:
-
Vol — том;
-
Dir — каталог;
-
LFN — аббревиатура от Long File Name, длинное имя файла (об LFN см. главу 3, раздел «Выбор имен папок и файлов»);
-
File — файл;
-
Erased — удален (указывается только для файлов);
-
Del LFN — удаленное длинное имя (признак устанавливается после переименования файла или папки);
-
-
Size — размер (в байтах);
-
Date — дата создания или изменения;
-
Time — время создания или изменения;
-
Cluster — номер первого кластера;
-
A, R, S, Н, D, V — атрибуты элемента данных (архивный, только чтение, системный, скрытый, каталог, том); значения всех атрибутов хранятся в одном байте дескриптора.
Чтобы просмотреть содержимое какого-либо вложенного каталога, переместите курсор в соответствующую строку и нажмите клавишу Enter.
Если сведения о корневом (или вложенном) каталоге, представленные Disk Editor, кажутся вам «подозрительными», можно попробовать интерпретировать записанные в нем данные самостоятельно, переключившись в режим просмотра шестнадцатеричного кода. Для этого в меню View выберите пункт as Hex. Формат дескриптора каталога представлен в табл. 1
Анализируя полученную информацию, вы можете обнаружить подозрительные изменения в полях размера файла, даты и времени. При необходимости их можно исправить «вручную».
Таб. 1 Формат дескриптора каталога [13]
Кроме того, для каждого файла в столбце Cluster отображается номер распределенного ему первого кластера. Следует просмотреть весь каталог до конца: необходимо проверить, что в каталоге отсутствуют посторонние данные. Они могут быть записаны туда вирусом. Если перейти в режим неформатированного просмотра, можно убедиться, что свободные элементы каталога содержат нулевые значения. Если же после свободных элементов находятся какие-либо данные, существует очень большая вероятность того, что они записаны туда вирусом или системой защиты программ от несанкционированного копирования (если исследуемый каталог содержит такие программы). В том случае, когда каталог поврежден полностью или частично, ссылки на описанные в нем файлы будут потеряны. Если вы найдете тем или иным способом секторы, содержащие нужный вам файл с разрушенным дескриптором, то, пользуясь описанной ниже методикой, сможете восстановить дескриптор и получить доступ к файлу.
Процедура основана на использовании функций Disk Editor по поиску различных элементов файловой системы FAT. Например, чтобы найти потерянные каталоги (такие, на которые нет ссылок из других каталогов, в том числе из корневого), требуется выполнить следующее.
-
В меню Tools выберите команду Find Object (Найти объект), а в дополнительном меню выберите вариант Subdirectory (Подкаталог).
-
Программа Disk Editor просматривает секторы диска в поисках такого, в начале которого находится последовательность байтов 2Е 20 20 20 20 20 20 20 20 20 20. Эта последовательность соответствует дескриптору, содержащему ссылку каталога на себя самого.
-
Нажимая комбинацию клавиш Ctrl+G, вы можете продолжить поиск нужного каталога, пока не найдете тот, который содержит интересующие вас файлы.
-
Как только нужный каталог найден, необходимо записать физический адрес сектора диска, содержащего каталог, а затем найти либо вычислить номер кластера, соответствующего каталогу.
Для поиска номера кластера, в котором располагается найденный каталог, перейдите в режим текстового просмотра каталога, выбрав в меню View пункт as Directory. Затем в меню Link выберите команду Cluster chain (fat) (Цепочка кластеров (fat)). На экране появится содержимое таблицы FAT в текстовом режиме просмотра, при этом искомый номер кластера будет выделен. Зная номер кластера потерянного каталога, можно создать новый дескриптор каталога, например, в корневом каталоге диска, и сделать в этом дескрипторе ссылку на найденный каталог. После этого потерянный каталог вновь станет доступным.
Восстановление данных в файловой системе NTFS
Файловая система NTFS содержит целый ряд механизмов, призванных повысить надежность хранения данных. Это, в свою очередь, ведет к существенному усложнению структуры NTFS по сравнению с FAT32. Даже детальное изучение структуры записей, хранящихся в MFT (главной таблице файлов), не гарантирует возможность восстановления данных «вручную». Ситуация усугубляется тем, что на сегодняшний день практически отсутствуют инструменты, обеспечивающие удобные средства просмотра и редактирования MFT.
По указанной причине мы ограничим круг рассматриваемых вопросов следующими ситуациями:
-
восстановление элемента таблицы разделов, содержащего сведения об NTFS-разделе;
-
восстановление служебной информации в MFT.
Перечисленные задачи можно решить посредством совместного использования таких инструментов, как Norton Disk Editor и Paragon Partition Manager, а также утилиты Partition Table Editor, входящей в состав пакета Norton PartitionMagic.
Восстановление элемента таблицы разделов
Имеется в виду ситуация, когда операционной системе Windows ХР не удается опознать флеш диск с NTFS вследствие повреждения описывающего его (диск) элемента таблицы разделов. Чтобы получить более полное представление о возникшей ситуации, целесообразно запустить утилиту Norton Partition Table Editor. После запуска PTEdit на экране появится диалоговое окно, с помощью которого можно просмотреть и отредактировать основные параметры любого элемента таблицы разделов выбранного физического диска. Выбор физического диска выполняется с помощью раскрывающегося списка Hard Disk (Жесткий диск).
Строки расположенной ниже таблицы соответствуют четырем элементам основной таблицы разделов. В столбцах выводятся следующие сведения:
-
Туре (Тип) — тип файловой системы или раздела; отображается в виде шестнадцатеричного кода;
-
Boot (Загрузка) — признак загрузочного раздела; для загрузочного активного раздела, как вы знаете, должно быть указано значение 80;
Starting (Начальное положение) — адрес первого сектора раздела, заданный номером цилиндра (Cyl), головки (Head) и сектора (Sector);
Ending (Конечное положение) — адрес последнего сектора раздела, также заданный номером цилиндра, головки и сектора;
Sectors Before (Предшествует секторов) — количество секторов жесткого диска, предшествующих первому сектору раздела в соответствии с адресацией LBA (то есть при «сквозной» нумерации по головкам и цилиндрам);
Sectors (Секторов) — размер раздела, измеренный в секторах.
Рис. 19. Стартовое окно утилиты Partition Table Editor
Чтобы просмотреть цепочку дополнительных таблиц расширенного раздела (EPBR), выполните следующие действия.
-
Переместите курсор в строку, соответствующую расширенному разделу (его код равен OFh).
-
Щелкните на кнопке Goto EPBR (Перейти на EPBR), расположенной под таблицей.
Если вы знаете, что восстанавливаемый NTFS-раздел находится на прежнем месте, но в соответствующей ему строке указан неверный тип раздела, вы можете попробовать установить корректное значение принудительно. Для этого щелкните на кнопке Set Туре (установить тип) и в открывшемся окне выберите требуемое значение (рис. 7.19). Для раздела NTFS оно равно 07h. Если вам известны корректные значения других параметров раздела и они отличаются от представленных в таблице, вы можете (предварительно запомнив или записав на бумаге текущие значения) ввести их в поля таблицы. Чтобы внесенные изменения были записаны на диск, щелкните на кнопке Save Change (Сохранить изменения)
Рис. 20.Список типов раздела
Если восстанавливаемый раздел опознается как пустой, можно попробовать создать на его месте новый, такого же типа, как у восстанавливаемого раздела, и обязательно точно такого же размера. Для выполнения этой процедуры можно использовать либо Paragon Partition Manager, либо Norton PartitionMagic.
Восстановление служебной информации в MFT
Таблица MFT представляет собой метафайл с именем $MFT, в котором хранятся записи с атрибутами других метафайлов и записи с атрибутами файлов пользователя. Для разделов объемом в несколько гигабайт и при большом количестве файлов данных размеры MFT могут достигать десятков мегабайт. При этом граница MFT может изменяться динамически в зависимости от объема записанных на диск данных и наличия свободного пространства. Кроме того, каждый файл в NTFS может иметь собственный набор атрибутов, некоторые из них задаются самим пользователем.
Все это существенно затрудняет анализ и восстановление MFT на уровне отдельных записей. Тем не менее, в случае повреждения MFT вы можете попытаться восстановить записи, относящиеся к метафайлам, а затем поручить восстановление файлов и папок одному из программных инструментов, рассмотренных раннее.
Поиск таблицы MFT
Номер первого кластера таблицы MFT содержится в поле Clusters to MFT загрузочного сектора. Если вам удалось его восстановить, то с помощью утилиты Просмотр секторов можно перейти на этот кластер и проверить корректность записей, относящихся к метафайлам.
Для перехода по номеру кластера выполните следующие действия.
-
Откройте первый (загрузочный) сектор диска.
-
В разделе Абсолютный сектор, в поле Наберите выражение для оценки введите формулу для вычисления номера первого сектора MFT:
* , где — это шестнадцатеричное значение номера первого кластера MFT, a — это размер кластера, записанный в поле Sectors per Cluster (например: 40000х 8, рис. 21)
3.Нажмите клавишу Enter. Характерные признаки «исправной» MFT:
-
каждая запись начинается со слова FILE0, размещенного в первых пяти байтах сектора;
-
для большинства записей метафайлов в байтах со смещением F2h хранится имя метафайла, которое всегда начинается с символа $;
-
первая запись описывает сам метафайл $MFT.
Рис. 21. Поиск первого сектора MFT с помощью утилиты Просмотр секторов
Последовательность размещения записей других метафайлов приведена в таб. 2.
Таблица 2. Последовательность размещения записей метафайлов в файле $MFT[13]
Далее в файле $MFT следуют записи с информацией обо всех остальных файлах и каталогах.
В том случае, если поле Clusters to MFT загрузочного сектора повреждено или переход по номеру кластера привел «неизвестно куда», можно попробовать доверить поиск MFT самой утилите Просмотр секторов.
Для этого щелкните на кнопке Перейти и в открывшемся меню (рис. 22) выберите команду NTFS ► MFT. Обратите внимание, что здесь же указан номер сектора (относительно начала раздела), с которого начинается MFT.
Рис. 22. Поиск таблицы MFT с помощью утилиты Просмотр секторов
Если и этот прием не даст результата, остается последний выход: вернуться к работе с программой Norton Disk Editor и попытаться найти таблицу MFT с помощью полнотекстового поиска по разделу. В качестве ключа поиска можно использовать имя метафайла — $MFT. Однако при этом следует учитывать, что имена файлов в NTFS представлены в двухбайтовой кодировке UNICODE, a Norton Disk Editor работает с однобайтовым кодом ASCII. Если основная таблица MFT повреждена, следует проверить состояние ее копии. Напомним, что в NTFS не предусмотрено создание полной копии MFT. Сокращенная копия, MFT Mirror, содержит лишь первые четыре записи из основной таблицы, относящиеся к метафайлам $MFT, $MFTMirr, $LogFile и $Volume. Напомним также, что копия MFT в версии NTFS для Windows ХР всегда расположена в середине раздела. Поэтому если в загрузочной записи адрес ее начала отсутствует, несложно его вычислить исходя из числа секторов раздела. Можно также попробовать перейти к сектору с копией MFT с помощью утилиты Просмотр секторов, воспользовавшись командой NTFS ► MFT зеркальный из меню Перейти.