Структуры данных Sparc


В системах на базе Sparc структура разметки диска создается в первом секторе диска (сектор 0). Секторы 1-15 содержат загрузочный код системы, а в секторах 16 и далее создаются разделы для хранения файловых систем и областей подкачки. В Solaris используется файловая система UFS; как будет показано в главе 16, эта файловая система начинается с сектора 16. Пример строения диска Sparc показан на рис. 6.5 и в табл. 6.9.
Таблица 6.9. Структура данных разметки диска Sun Sparc

Диапазон байтов

Описание

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

0-127

Метка в кодировке ASCII

Нет

128-261

Sparc VTOC (см. табл. 6.10)

Да

262-263

Пропускаемые секторы (модификация)

Нет

264-265

Пропускаемые секторы (чтение)

Нет

266-419

Зарезервировано

Нет

420—421

Скорость диска

Нет

422—423

Количество физических цилиндров

Нет

424—425

Коэффициент дублирования цилиндров

Нет

426-429

Зарезервировано

Нет

430—431

Коэффициент чередования

Нет

432—433

Количество цилиндров данных

Нет





Диапазон байтов

Описание

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

434—435

Количество альтернативных цилиндров

Нет

436—437

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

Да

438—439

Количество секторов в дорожке

Да

440—443

Зарезервировано

Нет

444—451

Карта диска для раздела 1 (см. табл. 6.13)

Да

452—459

Карта диска для раздела 2 (см. табл. 6.13)

Да

460—467

Карта диска для раздела 3 (см. табл. 6.13)

Да

468—475

Карта диска для раздела 4 (см. табл. 6.13)

Да

476—483

Карта диска для раздела 5 (см. табл. 6.13)

Да

484—491

Карта диска для раздела 6 (см. табл. 6.13)

Да

492—499

Карта диска для раздела 7 (см. табл. 6.13)

Да

500-507

Карта диска для раздела 8 (см. табл. 6.13)

Да

508-509

Сигнатура (OxDABE)

Нет

510-511

Контрольная сумма

Нет


В байтах 128-261 находится оглавление тома (VTOC). Эта структура содержит общее количество разделов (байты 12-13), а также флаги, тип и временной штамп для каждого раздела. Поля VTOC перечислены в табл. 6.10.
Таблица 6.10. Структура данных VTOC в разметке диска Sun Sparc

Диапазон байтов

Описание

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

0-3

Версия (0x01)

Нет

4-11

Имя тома

Нет

12-13

Количество разделов

Да

14-15

Тип раздела 1 (см. табл. 6.11)

Нет

16-17

Флаги раздела 1 (см. табл. 6.12)

Нет

18-19

Тип раздела 2 (см. табл. 6.11)

Нет

20-21

Флаги раздела 2 (см. табл. 6.12)

Нет

22-23

Тип раздела 3 (см. табл. 6.11)

Нет

24-25

Флаги раздела 3 (см. табл. 6.12)

Нет

26-27

Тип раздела 4 (см. табл. 6.11)

Нет

28-29

Флаги раздела 4 (см. табл. 6.12)

Нет

30-31

Тип раздела 5 (см. табл. 6.11)
/>Нет

32-33

Флаги раздела 5 (см. табл. 6.12)

Нет

34-35

Тип раздела 6 (см. табл. 6.11)

Нет

36-37

Флаги раздела 6 (см. табл. 6.12)

Нет

38-39

Тип раздела 7 (см. табл. 6.11)

Нет

40—41

Флаги раздела 7 (см. табл. 6.12)

Нет

42—43

Тип раздела 8 (см. табл. 6.11)

Нет

44-45

Флаги раздела 8 (см. табл. 6.12)

Нет

46-57

Загрузочная информация

Нет

58-59

Зарезервировано

Нет

60—63

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

Нет

64-101

Зарезервировано

Нет

102-105

Временной штамп раздела 1

Нет

продолжение



Таблица 6.10 (продолжение)




Поле типа каждого раздела VTOC указывает, для чего используется данный раздел и где он должен монтироваться. Тем не менее при монтировании файловых систем операционная система руководствуется специальным конфигурационным файлом. Таким образом, даже если раздел помечается типом /usr/, это еще не означает, что он будет смонтирован как /usr/. В отличие от других систем, структура разметки диска Solaris не задает тип файловой системы для каждого раздела. Допустимые значения типов разделов перечислены в табл. 6.11.
Таблица 6.11. Типы разделов Sun (для Sparc и i386)





Каждый раздел также обладает полем флагов. Допустимые значения флагов перечислены в табл. 6.12 (установка хотя бы одного флага для раздела не обязательна).
Таблица 6.12. Значения флагов для разделов Sun (для Sparc и i386)
Описание
alt="" />Раздел не может монтироваться Раздел доступен только для чтения
Вся эта информация полезна, но в контексте нашего обсуждения самой важной частью разметки диска является местонахождение разделов. Начальный цилиндр и размер каждого раздела хранятся в структурах карты диска, а не в VTOC. Карта диска находится в конце структуры разметки диска, а поля ее записей перечислены в табл. 6.13.
Таблица 6.13. Структура данных карты диска Sun Sparc

Диапазон байтов

Описание

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

0-3

Начальный цилиндр

Да

4-7

Размер

Да





Однако нас интересует начальный сектор, а не цилиндр, поэтому значение придется преобразовать — к счастью, это делается несложно.
Вспомните, что цилиндр X состоит из дорожек X на каждой пластине диска. Чтобы преобразовать адрес цилиндра в адрес сектора, следует умножить адрес цилиндра на количество секторов в дорожке и количество головок (оба значения находятся в структуре разметки диска).
Для примера возьмем диск с 15 головками и 63 секторами на дорожку. Если адрес начального цилиндра равен 1 112, вычисление дает следующий результат: 63 * 15 * 1112 - 1 050 840
Таким образом, мы должны обратиться к сектору 1 050 840 и проанализировать данные при помощи программ с поддержкой схемы адресации LBA.
Давайте рассмотрим пример с реальными структурами в шестнадцатеричном виде. Далее приводится содержимое первого сектора жесткого диска Solaris Sparc:

# dd if=sparc-disk.dd bs=512

count=l |

xxd





0000000

4d61

7874

6f72 2038

3532 3530

4136

2063

Maxtor 85250A6

с

0000016

796с

2031

3038 3534

2061

6c74

2032

2068

yl 10854 alt 2

h

0000032

6420

3135

2073

6563

2036 3300

0000

0000

d 15

sec 63.,,


0000048

0000

0000 0,000 0000

0000

0000

0000

0000




Г... НУЛИ ]











0000128

0000

0001

0000

0000

0000

0000

0008

0002




0000144

0000 0003

0001

0005

0000

0000

0000

0000




0000160

0000

0007

0000

0004

0000

0008

0000

0000




0000176

0000

0000

0000

0000

0000

0000

600d

deee




[... НУЛИ ]











0000416

0000

0000

1518 2a68

0000

0000

0000
/>0001

..*h


0000432

2а66

0002 000f 003f

0000

0000

0000

0826


?

amp;

0000448

0020

ЬОбЬ 0000

0000

0010

0176

0000

0000

k

              v..


0000464

009с

8286

0000

0000

0000

0000

0000

0000




0000480

0000

0000

0000

0609

0007

cdOd

0000

1101




0000496

005d bdd5 0000 0458

0006 3e61

dabe

lffe


..X..gt;a...



На платформе Sparc используется обратный порядок байтов, поэтому числа переставлять не нужно. В первых восьми строках содержится 128-байтовая метка в кодировке ASCII, описывающая тип жесткого диска. Таблица VTOC начинается с позиции 128; байты 140-141 показывают, что структура содержит 8 разделов. В байтах 142-173 перечислены типы (2 байта) и флаги (2 байта) для каждого раздела. Так, тип первого раздела содержится в байтах 142-143, и значение поля равно 2, что соответствует разделу /. Флаги хранятся в байтах 144-145, значение поля равно 0. Байты 146-147 показывают, что второй раздел относится к типу 3 (область подкачки), а поле флагов в байтах 148-149 равно 1 (раздел не монтируется).
В байтах 436-437 приводится количество головок 15 (0x0f), а в байтах 438- 439 — количество секторов на дорожку 63 (0x3f)- Эти данные понадобятся для преобразования адресов цилиндров.
Карта диска начинается с байта 444; начальный цилиндр и размер задаются 4- байтовыми числами. У первого раздела начальный цилиндр равен 2 086 (0x00000826), а размер — 2 142 315 (0x0020b06b). Вспомните, что разделу назначен тип /. Начальный сектор вычисляется по следующей формуле:
15 * 63 * 2 086 - 1 971 270 Раздел находится в первой позиции таблицы, поэтому он будет считаться «сегментом 0» диска, хотя он отдален от начала диска на многие тысячи секторов.

Описание следующего раздела хранится в байтах 452-459, с начальным цилиндром 0 и размером 1 048 950 (0x00100176). Это пространство подкачки, соответствующее «сегменту 1». Третья запись таблицы разделов, «сегмент 2», обычно представляет весь диск и находится в байтах 460-467. В нашем примере ее начальный цилиндр равен 0, а размер составляет 10 257 030 секторов.
Существует несколько программ, позволяющих просмотреть содержимое разметки диска Sparc, но не все они могут использоваться в процессе экспертизы. Команды Solaris format и prvtoc работают только с устройствами, но не с файлами образов устройств. С другой стороны, команда Linux fdisk успешно работает с образами дисков Sparc. Также можно запустить программу mmls из пакета The Sleuth Kit с параметром -t sun. Для образа диска из рассматриваемого примера программа mmls выдала следующий результат: mmls -t sun sparc-disk.dd

Sun VTOC Units are
Slot

in 512-byte sectors Start End

Length

Description

00

01

0000000000

0001048949

0001048950

swap (0x03)

01

02

0000000000

0010257029

0010257030

backup (0x05)

02

07

0001050840

0001460024

0000409185

/home/ (0x08)

03

05

0001460025

0001971269

0000511245

/var/ (0x07)

04

00

0001971270

0004113584

0002142315

/ (0x02)

05

06

0004113585

0010257029

0006143445

/usr/ (0x04)

<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Структуры данных Sparc:

  1. Структуры данных
  2. Структуры данных
  3. Структуры данных журнала
  4. Структуры данных
  5. Структуры данных
  6. Атрибуты и структуры данных индексов
  7. Структуры данных i386
  8. 14.1. ЗАДАЧИ И СТРУКТУРА. ИСТОЧНИКИ ДАННЫХ
  9. Структуры данных FAT
  10. Структуры данных NTFS
  11. Структуры данных Ext2 и Ext3
  12. Структуры данных UFS1 и UFS2
  13. Структура основных данных стартового маркетингового анализа
  14. СТРУКТУРА ОСНОВНЫХ ДАННЫХ ЭКОНОМИЧЕСКОГО АНАЛИЗА ВНЕШНЕЙ СРЕДЫ, НЕОБХОДИМЫХ МЕЖДУНАРОДНОМУ МЕНЕДЖЕРУ
  15. СТРУКТУРА ОСНОВНЫХ ДАННЫХ ПОЛИТИЧЕСКОГО АНАЛИЗА ВНЕШНЕЙ СРЕДЫ, НЕОБХОДИМЫХ МЕЖДУНАРОДНОМУ МЕНЕДЖЕРУ
  16. 3. Защита прав на программы для ЭВМ и базы данных Регистрация программ для ЭВМ и баз данных