Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Определение файловой системы в разделах - MBR и GPT диcков

Определение файловой системы в разделах MBR и GPT диcков.

Таблица разделов MBR.

Таблица разделов — это часть главной загрузочной записи (MBR), состоящая из четырёх записей по 16 байт. Каждая запись описывает один из разделов жёсткого диска. Первая запись находится по смещению 1BEh от начала сектора, содержащего MBR, каждая последующая запись вплотную примыкает к предыдущей. Для создания на диске более 4 разделов используются расширенные разделы, позволяющие создать неограниченное количество логических дисков внутри себя.

MBR логически можно разделить на три области (рис. 1): код начального загрузчика (446 байт), таблицу разделов (четыре записи по 16 байт каждая, первая запись находится по смещению 1BEh от начала MBR) и сигнатуру — слово со значением AA55h, занимающее последние два байта MBR (смещение 1FEh). BIOS проверяет сигнатуру, чтобы убедиться в корректности MBR, и если сигнатура не равна указанному значению, загрузка не выполняется и выдаётся сообщение об ошибке.

В операционных системах Microsoft серии Windows NT и их последовательницах, включая Windows Vista и Windows 7 и др., а также в некоторых альтернативных системах длина области загрузчика сокращена до 440 байт; непосредственно за ней (со смещения 1B8h) следует четырёхбайтовая сигнатура («номер») диска и два резервных байта, обычно равных нулю (рис. 2).

Начальный загрузчик, находящийся в MBR, в общем случае определяет, какой из разделов диска является активным, загружает в память начальный сектор этого раздела (Boot-сектор) и передаёт ему управление.

 

 

Рис. 1.

 

Рис. 2.

 

Рис. 3. Формат 16 байтной строки (записи) таблицы разделов

 

На рис. 3 показан формат 16 байтной строки определяющей раздел на диске MBR. В байте со смещением 0004 указывается тип раздела (файловая система раздела). В таблице 1 и таблице 2 указаны коды обозначения вида раздела (файловой системы раздела).

 

Таблица 1. Коды типов файловых систем

 

  

   Таблица 2

 

 Добавление к коду типа раздела шестнадцатеричного числа 10делает раздел «скрытым» (hidden). Например, если дентификатор 0С указывает на раздел FAT32, то идентификатор 0С +10 = 1С соответствует скрытому разделу FAT32.

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

Массив разделов (записи данных о разделах GPT-диска).

GPT — это стандарт формата размещения таблиц разделов на физическом жестком диске. Массив разделов начинается непосредственно за блоком заголовка GPT, то есть со второго блока диска (LBA 2) и стандартно заканчивается на LBA 33. Копия массива разделов находится в конце диска и вплотную примыкает к копии заголовка, то есть кончается предпоследним блоком диска. Массив разделов состоит из записей одинакового формата, каждая из которых описывает один раздел диска. Первая запись начинается с начала первого сектора массива, последующие вплотную примыкают друг к другу.

Размер записей может меняться, однако на одном диске все записи имеют одинаковую длину, указанную в заголовке GPT и кратную 8 (табл. 3). Например, на машине с установленной 64-битной ОС Microsoft Windows, зарезервировано 128 записей данных о разделах, каждая запись длиной 128 байт (т. о. возможно создание 128 разделов на диске).

Записи данных о разделах (англ. Partition entries) просты и расположены с равным приращением адресов. Первые 16 байт определяют GUID типа раздела (например, GUID системного EFI-раздела имеет вид «C12A7328-F81F-11D2-BA4B-00A0C93EC93B»). Следующие 16 байт содержат GUID, уникальный для данного конкретного раздела. Далее записываются данные о начале и конце раздела (в 64-битных LBA), если они имеются. Остальное место отводится информации об атрибутах и именах разделов. Структура записи данных о разделах показана в таблице 3.

 

   Таблица 3.

 

Каждая файловая система получает свой GUID, однозначно ее идентифицирующий. Разработчики ОС для своих файловых систем формируют собственные коды GUID (табл. 4).

 

Таблица 4. Идентификаторы (GUIDs) различных типов разделов (примеры):

 

Примечание 1: GUID для раздела данных Linux является дубликатом GUID для раздела основных данных Microsoft Windows.

Примечание 2: Порядок записи байтов в написаниях GUID является little-endian. К примеру, GUID системного раздела EFI записан как: C12A7328-F81F-11D2-BA4B-00A0C93EC93B, что соответствует последовательности 16 байтов: 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B. Обратите внимание, что байты пишутся задом наперед только в первых трех блоках: (C12A7328-F81F-11D2).

Примечание 3: В связи с такой неудобной для восприятия кодировкой типа файловой системы раздела, часто тип файловой системы раздела определяют по информации из BOOT-сектора раздела (рис. 4), который стандартно находится в начальном секторе раздела указанном в таблице 3 ( 8 байтов со смещением 20h).

 

Рис. 4. Например, BOOT-сектор раздела NTFS (LBA 02801000 — начальный сектор раздела NTFS GPT-диска).

 

 

 

 

 

 

 

 

 


Лицензия