Определение конфигурации RAID по записям MFT с помощью просмотрщика структур

RAIDОпределение конфигурации часто является самым сложным этапом при восстановлении данных с RAID. Иногда эта задача дополнительно усложняется попытками «вылечить» массив деструктивными способами вроде инициализации новой конфигурации, создания новых файловых систем и т.п. В этой статье я рассмотрю такой пример с файловой системой NTFS и расскажу, как с помощью нового «просмотрщика структур» можно определить правильную конфигурацию.

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

Предположим, нам надо восстановить данные с RAID5 из 5 дисков, на котором была файловая система NTFS. Но начало каждого участника затерто из-за деструктивных попыток «лечения». Дабы упростить статью, я буду считать, что уже известны размер блока (128 секторов), начало страйпирования (0й LBA).

Осталось определить порядок дисков и алгоритм ротации блоков у RAID 5. Для этого очень хорошо подходят записи MFT. Попробуем найти их черновым восстановлением.

Записи MFT на участнике RAID

Записи MFT на участнике RAID

Записи нашлись, их номера указаны в поле «comment» в формате:
[№ первой записи .. № последней записи] (длина последовательности в записях)
В правильной конфигурации они должны следовать друг за другом непрерывно. Попробуем собрать именно такую конфигурацию.

Для начала надо понять где примерно на RAID будут лежать записи MFT. Моя оценка такая: 1 907 968  * 4 = 7 631 872. Где 1 907 968 — начало записей на одном из участников, а 4 — коэффициент пересчета для RAID5 из 5 дисков. Можно оценивать и с большими допущениями, главное «попасть» в таблицу.

Если вам пока еще трудно делать такие оценки, то можно воспользоваться RAID-калькулятором. Там нужно указать все известные параметры. Алгоритм и индекс участника можно оставить по-умолчанию.

RAID-калькулятор

RAID-калькулятор

Теперь открываем форму создания нового RAID, устанавливаем все известные параметры, очищаем таблицу. Настраиваем форму так, чтобы были открыты вкладки «Проводник», «Таблица», «Структура» (из нижней панели). Должно получиться как на скриншоте.

Форма определения конфигурации массива

Форма определения конфигурации массива

Перемещаясь по ячейкам таблицы мы можем увидеть, как меняется содержимое вкладки «структура». Там отображаются поля записи MFT, оценка оказалась правильно, а разборщик структур определил как надо отобразить данные. Нас прежде всего интересует связь между ячейкой и номером записи (поле MFTRecordId или просто ID).

Ячейка таблицы и номер записи MFT

Ячейка таблицы и номер записи MFT

В этом примере в строке 1 у записей были такие номера: 192, 256, 320,  384 и одна ячейка не содержала запись. У такого RAID5 в строке 1 должны быть блоки данных 4, 5, 6, 7 и один блок XOR. Легко догадаться, что блоки данных надо выстроить в порядке возрастания номера записи (192 – 4, 256 – 5, 320 – 6, 384 — 7), а ячейка без записи — это XOR.

У меня получилась такая матрица:

Строка 1 заполнена

Строка 1 заполнена

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

Конфигурация определена

Конфигурация определена

RAID массив собран. Если запустить черновое восстановление на нем, то можно убедиться в правильности собранной конфигурации — записи MFT должны выстроиться друг за другом. В моем примере получилась область из более чем 70 000 записей, что больше чем 3500 полных периодов — т. е. матрица RAID полностью подтвердилась более чем 3500 раз.

Черновое восстановление на RAID

Черновое восстановление на RAID

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

Примечание 1. Распространена ситуация, когда на RAID хранятся виртуальные машины с NTFS. В этом случае методика полностью повторяется — предполагаем что найдется большой непрерывный участок таблицы MFT, собрав который можно определить конфигурацию. Оригинальный пример был именно таким, но, ради упрощения, я убрал это из описания.

Примечание 2. Методика определения параметров RAID по записям MFT не нова и должна быть хорошо известна опытным специалистам. Все то же самое можно сделать с помощью HEX-редактора и тетрадки с ручкой. Но, на мой взгляд, описанные выше инструменты позволяют сильно упростить решение этой задачи.

Такая же методика применима, например, к файловой системе VMFS. В ней большинство служебных структур содержат поле Position — байтовое смещение от начала раздела. Или к потоковым видео-файлам, которые содержат метку времени. Эти поля можно использовать также как номер записи в таблице MFT.

Помимо этого, просмотрщик стурктур позволят использовать файлы для определения конфигурации массива. Там используется немного другая методика, о ней я обязательно напишу позже.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, средний: 5,00)
Loading...Loading...

Об авторе Александр Леоненко

Разработчик Data Extractor и Data Extractor RAID Edition
Запись опубликована в рубрике Data Extractor RAID Edition с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>