В базе данных LDM хранятся определения динамических разделов и правила создания логических томов. Компания Microsoft не опубликовала точного описания строения базы данных LDM, но Интернет-группы идентифицировали некоторые внутренние структуры данных (одна из групп, Linux NTFS, доступна по адресу: http://Linux-ntfs.sourceforge.net). Из опубликованных справочных руководств Microsoft [Solomon and Russinovich, 2000] известно, что база данных LDM состоит из четырех основных частей. Приватный заголовок сходен с загрузочным сектором файловой системы. Он описывает уникальные характеристики диска и логического тома. Эта структура содержит уникальный идентификатор диска (GUID) и имя дисковой группы. Windows содержит только одну дисковую группу, имя которой определяется именем компьютера. Далее следует оглавление, состоящее из 16 секторов. По данным Соломона и Руссиновича, оглавление «содержит информацию о строении базы данных», то есть о следующей части LDM.

Область базы данных содержит описания дисков, разделов, компонентов и томов. Для каждого динамического диска (как DOS, так и GPT) в базе данных создается запись диска. Записи разделов описывают структуру разделов на динамических дисках. Записи компонентов описывают процесс объединения разделов. Каждая запись раздела содержит ссылку на используемую ей запись компонента. Записи компонентов существуют для объединения, чередования и зеркального копирования. Наконец, записи томов описывают логические тома, то есть результат применения компонентов к разделам.

Рассмотрим пример с двумя динамическими дисками. Имеется логический том, первая часть которого занимает 15 Мбайт на диске 1, вторая - 10 Мбайт на диске 2, а последняя часть - 20 Мбайт на диске 1 (конечно, эти цифры гораздо меньше тех, которые используются в реальных ситуациях). Структура логического тома показана на рис. 7.10. Программа Microsoft dmdiag (http://www.microsoft.com/ windows2000/techinfo/reskit/tools/existing/dmdiag-o.asp) предназначена для вывода информации о записях в базе данных. Результат ее работы выглядит так:

Disk: Diski rid=0.1027 updated=0.1222

assoc: diskid=6a565b54-b83a-4ebb-95eb-842ede926e88

flags:

Disk: Disk2 rid=0.1063 updated=0.1112

assoc: diskid=533fe4ab-0409-4ea6-98b3-9648bbc3bdl2

flags:

Эти две записи относятся к двум физическим дискам. Диску 1 присвоен идентификатор 0.1027, а диску 2 - идентификатор 0.1063.

Group: hashDgl rid=0.1025 update=0.1028

id: dgid=d4f40362-7794-429a-a6ad-a6dfc0553cee

diskset: id=00000000-0000-0000-0000-000000000000

copies: nconfig=all nlog-all

minors: >= 0

Запись определяет группу дисков и показывает, что имя дисковой группы определяется именем компьютера (hash).

Subdisk: Diskl-01 гid=0.1109 updated=0.1112

info: disk=0.1027 offset-0 len=30720 hidden=0

assoc: piex=0.1107 (column=0 offset=0)

Subdisk: Diskl-02 rid-0.1121 updated=0.1122

info: disk=0.1027 offset=0 len=40960 hidden=0

assoc: piex=0.1107 (column=0 offset=51200)

Эти две записи являются записями разделов для физического диска с именем Diskl (ГОЮ. 1027). Для обоих записей параметр plex со значением 0.1107 определяет запись компонента, используемую для создания логического тома. Первая запись (идентификатор 0.1109) определяет 15-мегабайтный раздел со смещением сектора 0 и размером 30 720 секторов. Вторая запись (идентификатор 0.1121) определяет 20-мегабайтный раздел со смещением 30 720 и размером 40 960 секторов.

Subdisk: Disk2-01 rid=0.1111 updated=0.1112

info: disk=0.1063 offset=0 len=20480 hidden=0

assoc: piex=0.1107 (column=0 offset=30720)

Запись определяет раздел для динамического диска Disk2 (ГОЮ. 1063) с идентификатором 0.1111, смещением 0 секторов и размером 20 480 секторов. Связи между физическим диском и записями динамических разделов показаны на рис. 7.11. Направление стрелки означает, что запись динамического раздела содержит указатель на физический диск.

Plex: Volume-01 гid=0.1107 update=0.1124

type: 1ayout=CONCAT

state: state=ACTIVE

assoc: vol=0.1105

Рис. 7.11. Связи между физическим диском и записями динамических разделов в базе данных ЮМ

Рис. 7.12. Связи между записями базы данных ЮМ (указатели на другие объекты обозначены стрелками)

Приведенный фрагмент является записью компонента объединения дисков (СОМСАТ), описывающей способ создания логического тома посредством объединения динамических разделов. Мы видим идентификатор 0.1107, который встречался в каждой из записей разделов. Также видно, что он ассоциируется с идентификатором тома 0.1105, описание которого приводится далее.

Volume: Volumel rid=0.1105 update=0.1124 mountname=F:

info: len=92160 guid=e40794d0-6e3c-4788-af3d-ff49d2ce769d

type: parttype=7 usetype=gen

state: state=ACTIVE

policies: read=SELECT

flags: writeback

База данных завершается последним фрагментом, содержащим запись логического тома. В записи указана точка монтирования F:\ и длина 92 160 секторов. Тому присвоен идентификатор 0.1105 и имя Volumel. Связи между записями показаны на рис. 7.12. Учтите, что все диски группы содержат одинаковые записи базы данных.

Итоговая организация логического тома показана на рис. 7.13. Обратите внимание: последовательность разделов в логическом томе не соблюдается.

Рис. 7.13. Диск LDM с двумя физическими дисками, тремя динамическими разделами и одним логическим томом

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

Динамические диски | Криминалистический анализ файловых систем | Снятие данных и анализ


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



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

  • Март
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс