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

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

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


Организация разделов на MBR и GPT дисках (ликбез).

Организация разделов на MBR и GPT дисках (ликбез).

При подготовке дисков к работе их разбивают на разделы и в разделах создаются структуры для поддержки соответствующей файловой системы данного раздела, например, NTFS, FAT32 и др. Структуры файловых систем в разделах MBR и GPT дисков идентичны, но структуры осуществляющие разбиение на разделы у этих дисков значительно отличаются.

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

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

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

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

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

Рис. 1. Структура MBR (блок данных 1 сектора, 0 поверхности, 0 цилиндра — или LBA 0).

 

Рис. 2. Структура MBR.

 

Рис. 3. Структура более современного варианта MBR.

Каждая 16-ти байтная строка таблицы разделов MBR определяет раздел следующим образом (см. рис. 4). Адреса начала и конца раздела задаются в формате CHS или в формате LBA.

 

Рис. 4. Формат строки таблицы разделов.

В формате CHS используемом традиционными функциями дискового сервиса BIOS, номер цилиндра разорван на две части (рис. 5): старшие два бита хранятся в двух старших битах слова, отведённого под номера цилиндра и сектора; за ними следуют шесть бит номера сектора, а младшие восемь бит номера цилиндра занимают весь младший байт слова. Если задать корректный адрес с помощью формата CHS невозможно, все три байта полей начала и конца раздела должны содержать FFh.

Рис. 5. Два байта (2-й и 3-й) содержащие номер цилиндра и номер сектора.

32-разрядные номер начального сектора раздела и количество секторов в разделе, указанные в таблице разделов, позволяют использовать функции расширенного дискового сервиса, поддерживающие адресацию LBA. В этом случае 32-разрядный номер сектора является младшим двойным словом адреса в формате LBA, а старшее двойное слово будет равно нулю. Если число секторов в разделе превосходит FFFFFFFFh, то в поле длины указывается это значение. Если в 0-м байте строки содержится 80h — раздел активный из него возможна загрузка операционной системы, если в нем 00h — раздел неактивный (предназначен для хранения файлов). В 4-м байте строки указывается код тип файловой системы используемой в данном разделе (рис. 6).

 

Рис. 6. Коды определяющие тип файловой системы раздела (существуют и др. коды).

32-разрядные номер и количество секторов позволяют работать с разделами ёмкостью до 2 Тбайт; для выхода за пределы этого ограничения применяется иная схема деления диска на разделы, основанная на GUID-таблице разделов (GPT).

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

На рис. 7 показана структура диска GPT. GUID Partition Table (GPT) — стандарт формата размещения таблиц разделов на физическом жестком диске. Он является частью Расширяемого программного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта, предложенного Intel на смену BIOS. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR).

GUID Partition Table (GPT) является стандартом для верстки таблицы разделов на физическом жестком диске, c использованием глобальных уникальных идентификаторов (GUID). Хотя это является частью Unified Extensible Firmware Interface (UEFI), он также используется на некоторых BIOS системах из-за ограничения таблиц разделов в MBR. Диски GPT поддерживают тома до 18 эксабайт (1024 петабайт или 1048576 терабайт) и 128 разделов.

Рис. 7. Структура диска GPT.

UEFI — это стандартный интерфейс встроенного программного обеспечения (ПО) для компьютеров, заменяющий BIOS. В создании этого стандарта участвовали более 140 технологических компаний, составляющих часть консорциума UEFI, включая Майкрософт. Стандарт был создан для улучшения взаимодействия программного обеспечения и устранения ограничений BIOS.Вот некоторые из преимуществ UEFI:

- повышение безопасности при защите процессов, происходящих перед запуском или загрузкой, от атак bootkit.

- уменьшение времени загрузки или восстановления после гибернации;

- поддержка дисков объемом более 2,2 Тбайт;

- поддержка современных драйверов устройств с 64-разрядным встроенным ПО, которые система может использовать для привлечения более 17,2 миллиарда гигабайт памяти во время запуска;

- возможность использовать BIOS с оборудованием UEFI.

MBR (главная загрузочная запись) в силу своих особенностей ограничивает максимальный размер загрузочного диска до 2,2 ТБ. UEFI использует таблицу разделов GUID, которая использует глобальные уникальные идентификаторы и адреса разделов которые позволяют загрузку с жесткого диска такого размера, как 9,4 ZB (зетабайт). Терабайт составляет 1024 Гб, а зетабайта (zebibyte) является 1024x1024x1024 Гб. Также UEFI позволяет больше вариантов загрузки, не предписывает особые файловые системы и имеет превосходные способности к загрузке сети. Более быстрая загрузка осуществляется за счет отсутствия необходимости поиска загрузчика на всех диска.

Отсутствует ограничение на 4 основных раздела, и как следствие - отсутствие необходимости в логических разделах. Повышенная безопасность - GPT хранит резервную копию таблицы разделов в конце диска, поэтому в случае неполадок существует возможность восстановления разметки при помощи запасной таблицы. Реализована защита от повреждения устаревшими программами посредством Protective MBR. Существует возможность использования старых загрузочных секторов.

В отличие от MBR, которая начинается с исполняемой двоичной программы, призванной идентифицировать и загрузить ОС из активного раздела, GPT (рис. 7) опирается на расширенные возможности EFI для осуществления этих процессов. Однако MBR присутствует в самом начале диска (блок LBA 0) как для защиты, так и в целях совместимости. Собственно GPT начинается с Оглавления таблицы разделов (англ. Partition Table Header – загодовок GPT).

GPT использует современную систему адресации логических блоков (LBA) вместо применявшейся в MBR адресации «Цилиндр — Головка — Сектор» (CHS). Доставшаяся по наследству MBR со всей своей информацией содержится в блоке LBA 0, оглавление GPT — в блоке LBA 1.

В оглавлении содержится адрес блока, где начинается сама таблица разделов, обычно это следующий блок — LBA 2. В случае 64-битной версии ОС Microsoft Windows NT, за таблицей разделов было зарезервировано 16384 байт (при использовании сектора размером 512 байт это будет 32 сектора), так что первым используемым сектором каждого жёсткого диска в ней будет блок LBA 34. Кроме того, GPT обеспечивает дублирование — оглавление и таблица разделов записаны как в начале, так и в конце диска. Теоретически, GPT позволяет создавать разделы диска размером до 9,4 ЗБ (9,4 × 1021 байт), в то время как MBR может работать только до 2,2 ТБ (2,2 × 1012 байт).

Основная цель помещения MBR в начало диска c GPT чисто защитная. MBR-ориентированные дисковые утилиты могут не распознать и даже переписать GPT диски. Чтобы избежать этого, в таблице разделов MBR указывается наличие всего одного раздела, охватывающего весь GPT диск). Системный идентификатор (англ. System ID) для этого раздела устанавливается в значение 0xEE, указывающее, что применяется GPT. Вследствие этого EFI игнорирует MBR. Некоторые 32-битные операционные системы, не приспособленные для чтения дисков, содержащих GPT, тем не менее распознают этот cистемный идентификатор и представляют том в качестве недоступного GPT диска. Более старые ОС обычно представляют диск, как содержащий единственный раздел неизвестного типа и без свободного места; как правило, они отказываются модифицировать такой диск, пока пользователь явно не потребует и не подтвердит удаление данного раздела. Таким способом предотвращается случайное стирание содержимого GPT диска.

Оглавление (GPT заголовок) таблицы разделов (LBA 1) указывает те логические блоки на диске, которые могут быть задействованы пользователем (англ. the usable blocks). Оно также указывает число и размер записей данных о разделах, составляющих таблицу разделов. Так на машине с установленной 64-битной ОС Microsoft Windows Server 2003, было зарезервировано 128 записей данных о разделах, каждая запись длиной 128 байт. Таким образом возможно создание 128 разделов на диске.

Оглавление содержит GUID (англ. Globally Unique IDentifier — Глобально Уникальный Идентификатор) диска. В оглавлении также содержится его собственный размер и местоположение (всегда блок LBA 1), а также размер и местоположение вторичного (запасного) оглавления и таблицы разделов, которые всегда размещаются в последних секторах диска. Важно, что оно также содержит контрольную сумму CRC32 для себя и для таблицы разделов. Эти контрольные суммы проверяются процессами EFI при загрузке машины. Из-за проверок контрольных сумм недопустима и бессмысленна модификация содержимого GPT в шестнадцатеричных редакторах. Всякое редактирование нарушит соответствие содержания контрольным суммам, после чего EFI перезапишет первичный GPT вторичным. Если же оба GPT будут содержать неверные контрольные суммы, доступ к диску станет невозможным.

Первой структурой данных GPT является её заголовок (GPT Header); он размещается в первом секторе диска (LBA 1). Длина заголовка в будущем может увеличиться, однако он никогда не превысит размер одного физического сектора диска. Для увеличения надёжности хранения данных и устойчивости к сбоям предусмотрена резервная копия заголовка GPT, она хранится в последем секторе диска. Обе копии заголовка имеют ссылки друг на друга. Поля FirstUsableLBA и LastUsableLBA (рис. 8) определяют область диска, доступную для размещения в ней разделов. За пределами этой области находятся лишь структуры данных UEFI, предназначенные для управления разделами, то есть MBR, заголовок GPT и массив разделов GPT.

Рис. 8. Заголовок (GPT Header).

Массив разделов. Записи данных о разделах (массив разделов: LBA 2-33). Массив разделов начинается непосредственно за блоком заголовка GPT, то есть со второго блока диска (LBA 2). Копия массива находится в конце диска и вплотную примыкает к копии заголовка, то есть кончается предпоследним блоком диска. Массив разделов состоит из записей одинакового формата, каждая из которых описывает один раздел диска. Первая запись начинается с начала первого сектора массива, последующие вплотную примыкают друг к другу. Размер записей может меняться, однако на одном диске все записи имеют одинаковую длину, указанную в заголовке GPT и кратную 8 (рис. 9). Например, на машине с установленной 64-битной ОС Microsoft Windows, зарезервировано 128 записей данных о разделах, каждая запись длиной 128 байт (т. о. возможно создание 128 разделов на диске).

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

 

Рис. 9. Запись определяющая раздел (128 байт).

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

 

Рис. 10.

GPT использует простые и прямые 128 байтные записи для описания разделов. Первые 16 байт обозначают тип раздела - глобально уникальный идентификатор (GUID). Например, для системного раздела EFI {C12A7328-F81F-11D2-BA4B-00A0C93EC93B}. Вторые 16 байтов содержат GUID уникальный для раздела. Затем следуют 64-разрядные (8 байт) LBA адреса начального и конечного логического блока раздела, далее (8 байт) атрибуты раздела (флаги атрибутов), далее имя раздела (72 байта).

Местоположение массива записей разделов на диске определяется в заголовке GPT. Заголовок GPT содержит поле, указывающее размер записи таблицы разделов. Минимально необходимый составляет 128 байт, но реализации должны предусмотреть возможность использования других значений. Кроме того, в расчетах (см. Advanced Format) размер сектора не должен считаться жестко установленым на 512 байт в секторе, то есть, не может быть более четырех записей разделов в одном секторе. Спецификация GPT просто описывает размер и организацию структуры данных, а не в том, как много секторов она занимает на диске. 64 бита атрибутов таблицы разделов делятся между 48 бит - общие характеристики для всех типов разделов и - 16 бит для конкретного типа атрибутов. Каждый раздел имеет поле атрибутов длиной 64 бита. Версия 2.2 спецификации UEFI определяла их следующим образом (см. рис. 11).

 

Рис. 11. 64 бита атрибутов в записи таблицы разделов.

Материнским платам с UEFI, не нужна BIOS, потому что в ней есть своя встроенная BIOS, называется — модуль поддержки совместимости. Поэтому те программы, которым для работы нужен был BIOS, спокойно могут работать и на компьютерах с UEFI.

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Лицензия