MBR позволяет описать до четырех разделов. Тем не менее во многих системах этого количества недостаточно. Допустим, имеется 12-гигабайтный диск, который пользователь хочет разделить на шесть 2-гигабайтных разделов, потому что он использует несколько операционных систем. Описать шесть разделов при помощи четырех записей невозможно.

Именно тот способ, который был выбран для решения этой проблемы, делает разделы DOS такими сложными. Общий принцип состоит в следующем: в MBR создается одна, две или три записи для обычных разделов, а затем формируется «расширенный раздел», заполняющий все оставшееся место на диске. Прежде чем двигаться дальше, стоит разобраться с некоторыми терминами. Первичным разделом файловой системы называется раздел, представленный записью в MBR и содержащий файловую систему или другие структурированные данные. Первичным расширенным разделом называется раздел, представленный записью в MBR и содержащий вторичные разделы. На рис. 5.2 изображены три первичных раздела файловой системы с одним первичным расширенным разделом.

Рис. 5.2. Диск РОБ с тремя первичными разделами файловой системы и одним первичным расширенным разделом

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

Вторичный раздел файловой системы, также называемый в \Vmdows логическим разделом, находится в границах основного расширенного раздела и содержит файловую систему или другие структурированные данные. Вторичный расширенный раздел содержит таблицу разделов и дополнительный раздел файловой системы. Каждый вторичный расширенный раздел представляет собой «обертку» для вторичного раздела файловой системы; он описывает местонахождение вторичного раздела файловой системы и следующего вторичного расширенного раздела.

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

Рис. 5.3. Основной принцип и общая структура вторичных разделов (расширенных и файловых систем)

Общая картина

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

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

Рассмотрим пример. Имеется 12-гигабайтный диск, который требуется разбить на шесть 2-гигабайтных разделов. Первые три 2-гигабайтных раздела создаются в первых трех записях МВ11, а оставшиеся 6 Гбайт выделяются под первичный расширенный раздел, включающий дисковое пространство от 6 до 12 Гбайт.

Остается определить еще три раздела в формате связанного списка. Мы используем таблицу разделов в первом секторе первичного расширенного раздела, создаем вторичный раздел файловой системы в диапазоне от 6 Гбайт до 8 Гбайт и создаем вторичный расширенный раздел в диапазоне от 8 Гбайт до 10 Гбайт. Таблица разделов находится во вторичном расширенном разделе и содержит записи вторичного раздела файловой системы в диапазоне от 8 Гбайт до 10 Гбайт и вторичного расширенного раздела в диапазоне от 10 Гбайт до 12 Гбайт. Таблица разделов находится в последнем вторичном расширенном разделе и содержит запись последнего раздела файловой системы в диапазоне от 10 до 12 Гбайт. Схема показана на рис. 5.4.

Рис. 5.4. Структура диска с шестью разделами файловой системы

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

с шестью 25-мегабайтными разделами DOS в списке CFTT Yahoo! Groups (http:/ /groups.yahoo.com/group/cftt/). Образ содержал первичный расширенный раздел с двумя записями вторичных разделов файловых систем и одной записью вторичного расширенного раздела. Одни системные программы правильно обрабатывали запись третьего раздела, другие игнорировали его или вместо 25-мегабайтного раздела обнаруживали раздел объемом 1 Тбайт. Этот пример показывает, что даже такая распространенная схема, как разделы DOS, может вызывать проблемы у аналитических программ.

Расширенные разделы обладают специальными типами, которые используются в их записях таблиц разделов. А чтобы эта сложная схема стала еще сложнее, существует несколько типов расширенных разделов, среди которых не различаются типы первичных и вторичных расширенных разделов. Самые распространенные типы расширенных разделов - «расширенный раздел DOS», «расширенный раздел Windows 95» и «расширенный раздел Linux».

Загрузочный код

Загрузочный код диска DOS находится в первых 446 байтах первого 512-байтового сектора, то есть в MBR. В конце сектора находится таблица разделов. Стандартный загрузочный код Microsoft обрабатывает таблицу разделов MBR и определяет, для какого раздела установлен флаг загрузки. Обнаружив такой раздел, загрузчик обращается к его первому сектору и передает управление находящемуся в нем коду. Код в начале раздела является специфическим для операционной системы. Вирусы, внедряющиеся в загрузочный сектор, записывают себя в первые 446 байт MBR, чтобы они выполнялись при каждой загрузке компьютера.

В наши дни компьютеры с несколькими операционными системами становятся все более распространенным явлением. Проблема решается двумя способами. Система Windows записывает в загрузочный раздел код, который дает возможность пользователю выбрать загружаемую операционную систему. Другими словами, сначала выполняется загрузочный код в MBR, который передает управление загрузочному коду Windows. Загрузочный код Windows дает возможность пользователю выбрать раздел для загрузки системы.

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

Итоги

Сложность системы разделов DOS объясняется тем, что каждая таблица разделов может содержать не более четырех записей. В других системах разделов, рассматриваемых далее в этой главе, используются таблицы большего размера, поэтому такие системы получаются более простыми. Для получения информации о структуре диска с разделами DOS на высоком уровне необходимо выполнить следующие действия:

1. Прочитать MBR из первого сектора диска, идентифицировать и обработать четыре записи таблицы разделов.

2. При обработке записи расширенного раздела прочитать первый сектор расширенного раздела и обработать записи его таблицы разделов так же, как это делается для MBR.

3. При обработке записи обычного (не расширенного) раздела выводится его начальный сектор и размер. Конечный сектор определяется суммированием этих величин с вычитанием 1.

Основные концепции mbr | Криминалистический анализ файловых систем | Структуры данных


Криминалистический анализ файловых систем



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31