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

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

Поля дескрипторов групп в файловой системе UFS1 перечислены в табл. 17.5.

Таблица 17.5. Структура данных дескриптора группы в UFS1

Диапазон

Описание

Необходимость

0-3

Не используется

Нет

4-7

Сигнатура (0x090255)

Нет

8-11

Время последней записи

Нет

12-15

Номер группы

Нет

16-17

Количество цилиндров в группе

Нет

18-19

Количество индексных узлов в группе

Нет

20-23

Количество фрагментов в группе

Нет

24-27

Количество каталогов

Нет

28-31

Количество свободных блоков

Нет

32-35

Количество свободных индексных узлов

Нет

36-39

Количество свободных фрагментов (неполные блоки)

Нет

40-43

Последний выделенный блок

Нет

44-47

Последний выделенный фрагмент

Нет

48-51

Последний выделенный индексный узел

Нет

52-83

Сводка свободных фрагментов

Нет

84-87

Количество свободных блоков в каждом цилиндре (смещение в байтах)

Нет

88-91

Таблица позиций свободных блоков (смещение в байтах)

Нет

92-95

Битовая карта индексных узлов (смещение в байтах)

Да

96-99

Битовая карта фрагментов (смещение в байтах)

Нет

100-103

Следующее свободное пространство в дескрипторе (смещение в байтах)

Нет

104-107

Количество свободных кластеров, то есть смежных блоков (смещение в байтах)

Нет

108-111

Битовая карта блоков (смещение в байтах)

Нет

112-115

Количество блоков в группе

Нет

116-167

Не используется

Нет

168+

Битовые карты и т. д.

Да

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

Чтобы проанализировать дескриптор первой группы в нашей системе OpenBSD UFS1, необходимо определить его местонахождение. Для первой группы базовое смещение соответствует фрагменту 0. Из суперблока известно, что дескриптор группы смещен от базы на 24 фрагмента, поэтому мы просматриваем фрагмент 24 программой dcat:

# dcat -f openbsd openbsd.dd 24

0000000: 0000 0000 5502 0900 c99d 0f41 0000 0000 ....U......A....

0000016: 1000 8007 801f 0000 0200 0000 2f03 0000 ............/...

0000032: 7807 0000 ObOO 0000 8801 0000 1001 0000 x...............

0000048: 0700 0000 0000 0000 0000 0000 0000 0000 ................

0000064: 0000 0000 0100 0000 0000 0000 0000 0000 ................

0000080: 0100 0000 a800 0000 e800 0000 0801 0000 ................

0000096: f801 0000 8206 0000 e405 0000 0406 0000 ................

0000112: f003 0000 0000 0000 0000 0000 0000 0000 ................

[...]

Байты 4-7 содержат сигнатуру, a в байте 24 начинается информация о количестве свободных индексных узлов и блоков, которую мы уже видели ранее в области сводки групп цилиндров. Также здесь присутствует служебная информация о выделении; из байтов 40-43 видно, что последний выделенный блок имел адрес 392 (0x0188), а из байтов 44-47 - что последний выделенный фрагмент (неполный блок) имел адрес 272 (0x0110). Последняя выделенная запись индексного узла указана в байтах 48-51; мы видим, что это был индексный узел 7.

Смещение битовой карты индексных узлов хранится в байтах 92-95; мы видим, что битовая карта смещена на 264 байта (0x0108) от начала группы дескрипторов. Битовая карта фрагментов (байты 96-99) удалена на 504 байта (0x0 lf8) от начала дескриптора группы. Битовая карта блоков (байты 108-111) хранится со смещением 1540 байт (0x0604) от начала дескриптора.

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


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



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

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