ФЭНДОМ


GUID-таблица разделов (GPT, GUID Partition Table) была разработана в связи с необходимостью преодоления ограничений, накладываемых традиционной таблицей разделов жёсткого диска, не позволяющей создавать разделы размером свыше 2 Тбайт или располагать их на дисках за пределами первых 2 Тбайт их ёмкости. GPT является частью стандарта UEFI, первая версия которого появилась в 2000-м году.

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

Защитная MBR Править

Файл:Gpt.png

Диски, использующие GPT, в нулевом секторе по-прежнему могут содержать обычную главную загрузочную запись (MBR), используемую для загрузки с этого диска операционной системы в том случае, если компьютер не соответствует спецификации UEFI. Если возможность загрузки с таких компьютеров не требуется, вместо обычной («унаследованной» или «традиционной» — legacy, как называет её спецификация UEFI) MBR в нулевом секторе находится защитная MBR, предотвращающая уничтожение информации на диске при попытке использования с ним операционных систем и дисковых утилит, не умеющих работать с GPT.

Оба варианта MBR имеют одинаковый формат, полностью соответствующий традиционной MBR. В защитной MBR, однако, код начального загрузчика не используется, поскольку загрузка с такого диска может выполняться только на компьютерах, удовлетворяющих спецификации UEFI, и осуществляется не так, как на компьютерах без поддержки UEFI (подробнее о процессе загрузки можно прочитать здесь).

Таблица разделов в обоих видах MBR также имеет одинаковый формат. Разница заключается в том, что на дисках, допускающих загрузку на компьютерах без поддержки UEFI, в ней должен быть определён хотя бы один раздел, содержащий загружаемую традиционным загрузчиком ОС; этот раздел должен быть помечен как активный, а процесс загрузки из него ничем не будет отличаться от обычного. Кроме того, в таблице разделов традиционной MBR будет определён раздел с кодом системы, равным EFh, что соответствует файловой системе UEFI. Этот раздел помечается как неактивный, однако именно его будет использовать BIOS компьютера, соответствующего спецификации UEFI, и лишь в случае отсутствия такого раздела будет запущен код традиционного загрузчика.

В таблице разделов защитной MBR определён только один раздел с кодом системы EEh, покрывающий собой весь диск. Поле начала этого раздела в формате CHS задаёт цилиндр 0, головку 0 и сектор 2 (первый сектор соответствует самой MBR), поле начала в формате LBA — сектор 1. Поля конца соответствуют последнему сектору физического диска, а если его ёмкость превосходит предел, допускаемый традиционной таблицей разделов, то они содержат значения FFFFFFh для адреса в формате CHS и FFFFFFFFh для адреса в формате LBA.

Заголовок GPT Править

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

Обозначение Смещение Размер Описание
Signature 00h 8 Сигнатура заголовка GPT (строка символов «EFI PART», 5452415020494645h)
Revision 08h 4 Версия формата заголовка; к номеру версии спецификации UEFI она отношения не имеет. Сейчас используется первая версия заголовка, которой соответствует значение 00010000h
HeaderSize 0Ch 4 Размер заголовка GPT в байтах. Он должен превосходить 92 и не должен превышать размер сектора
HeaderCRC32 10h 4 Контрольная сумма заголовка GPT размером HeaderSize байтов. При подсчёте контрольной суммы начальное значение этого поля принимается равным нулю
Reserved 14h 4 Зарезервированное поле; должно содержать нуль
MyLBA 18h 8 LBA этой копии заголовка
AlternateLBA 20h 8 LBA другой копии заголовка
FirstUsableLBA 28h 8 LBA первого блока, с которого могут начинаться разделы этого диска
LastUsableLBA 30h 8 LBA последнего блока, после которого на диске не может быть разделов
DiskGUID 38h 16 Уникальный идентификатор (GUID) этого диска
PartitionEntryLBA 48h 8 LBA начала массива разделов диска
NumberOfPartitionEntries 50h 4 Количество записей в массиве разделов диска
SizeOfPartitionEntry 54h 4 Размер каждой записи массива разделов; должен быть кратен 8
PartitionEntryArrayCRC32 58h 4 Контрольная сумма масива разделов. Подсчёт суммы начинается с начала блока, адрес которого указан полем PartitionEntryLBA, и охватывает NumberOfPartitionEntries * SizeOfPartitionEntry байт, то есть весь массив разделов
Reserved 5Сh Размер сектора - 5Сh Резервная область заголовка, должна содержать нули

Поля FirstUsableLBA и LastUsableLBA определяют область диска, доступную для размещения в ней разделов. За пределами этой области находятся лишь структуры данных UEFI, предназначенные для управления разделами, то есть MBR, заголовок GPT и массив разделов GPT.

Массив разделов Править

Массив разделов начинается непосредственно за блоком заголовка GPT, то есть со второго блока диска (LBA=2). Копия массива находится в конце диска и вплотную примыкает к копии заголовка, то есть кончается предпоследним блоком диска.

Массив разделов состоит из записей одинакового формата, каждая из которых описывает один раздел диска. Первая запись начинается с начала первого сектора массива, последующие вплотную примыкают друг к другу. Размер записей может меняться, однако на одном диске все записи имеют одинаковую длину, указанную в заголовке GPT и кратную 8.

Обозначение Смещение Размер Описание
PartitionTypeGUID 0h 16 GUID типа данного раздела. Определяет файловую систему, используемую для хранения данных в этом разделе
UniquePartitionGUID 10h 16 GUID раздела. Является уникальным идентификатором раздела и создаётся каждый раз, когда создаётся раздел
StartingLBA 20h 8 LBA первого блока данного раздела на диске
EndingLBA 28h 8 LBA последнего блока данного раздела на диске
Attributes 30h 8 Атрибуты раздела
PartitionName 38h 72 Строка в кодировке Unicode, содержащая имя данного раздела
Reserved 80h размер записи - 80h Неиспользуемая часть записи массива разделов

GUID типов разделов Править

Каждая файловая система получает свой GUID, однозначно её идентифицирующий. Стандарт UEFI определяет следующие GUID типов разделов.

Значение GUID Описание
00000000-0000-0000-0000-000000000000 Неиспользуемая запись
C12A7328-F81F-11d2-BA4B-00A0C93EC93B Системный раздел UEFI
024DEE41-33E7-11d3-9D69-0008C781F39F Раздел, содержащий традиционную MBR

Разработчики ОС для своих файловых систем формируют собственные коды GUID.

Атрибуты разделов Править

Каждый раздел имеет поле атрибутов длиной 64 бита. Версия 2.2 спецификации UEFI определяет их следующим образом.

Бит Описание
0 Признак необходимости раздела для функционирования машины. Установкой этого бита владелец/создатель раздела указывает, что без него компьютер может оказаться неработоспособным. В частности, ОС может отказаться загружаться или даже устанавливаться, если этого раздела нет. Удалять или модифицировать такой раздел может только программное обеспечение, точно знающее его назначение и функции, все остальные программы, встретив такой раздел в GPT, не должны каким-либо образом менять его
1 Когда этот бит установлен, BIOS не должна создавать для этого раздела устройство EFI_BLOCK_IO_PROTOCOL. Подробно это описано в спецификации UEFI
2–47 Зарезервировано для нужд UEFI; должны быть равны нулю
48–63 Используются для нужд разработчиков файловых систем. При изменении значений разрядов 0–47 значения этих разрядов должны сохраняться, они изменяются только программным обеспечением соответствующей файловой системы

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

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