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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

На этом рисунке приведена диаграмма, схематично поясняющая формат GUID Partition Table. Каждый логический блок (LBA) имеет размер ровно 512 байт. Отрицательные адреса логических блоков говорят о том, что их нумерация начинается с конца тома (диска), причем последний адресуемый блок имеет адрес −1.

Возможности[править | править вики-текст]

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

GPT использует современную систему адресации логических блоков (LBA) вместо применявшейся в MBR адресации «Цилиндр — Головка — Сектор» (CHS). Доставшаяся по наследству MBR со всей своей информацией содержится в блоке LBA 0, оглавление GPT — в блоке LBA 1. В оглавлении содержится адрес блока, где начинается сама таблица разделов, обычно это следующий блок — LBA 2. В случае 64-битной версии ОС Microsoft Windows NT, для таблицы разделов зарезервировано 16 384 байт (при использовании сектора размером 512 байт это будет 32 сектора), так что первым используемым сектором каждого жёсткого диска в ней будет блок LBA 34.

Кроме того, GPT обеспечивает дублирование — оглавление и таблица разделов записаны как в начале, так и в конце диска.

Теоретически, GPT позволяет создавать разделы диска размером до 9,4 ЗБ (9,4 × 1021 байт), в то время как MBR может работать только до 2,2 ТБ (2,2 × 1012 байт).

Наследственный MBR (LBA 0)[править | править вики-текст]

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

Записи данных о разделах (LBA 2-33)[править | править вики-текст]

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

Идентификаторы (GUIDs) различных типов разделов[править | править вики-текст]

Ассоц. платф. Тип раздела Глобально-уникальный идентификатор (GUID)
(Нет) Неиспользуемая запись данных 00000000-0000-0000-0000-000000000000
Схема разделов MBR 024DEE41-33E7-11D3-9D69-0008C781F39F
Системный раздел EFI C12A7328-F81F-11D2-BA4B-00A0C93EC93B
Windows Резервный раздел Microsoft E3C9E316-0B5C-4DB8-817D-F92DF00215AE
Раздел основных данных EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Менеджер логических томов, раздел мета-данных 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
Менеджер логических томов, раздел данных AF9B60A0-1431-4F62-BC68-3311714A69AD
Раздел восстановления DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
HP-UX Раздел данных 75894C1E-3AEB-11D3-B7C1-7B03A0000000
Раздел Сервиса E2A1E728-32E3-11D6-A682-7B03A0000000
Linux Раздел данных EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
RAID раздел A19D880F-05FC-4D3B-A006-743F0F84911E
Своп-раздел 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
Раздел Менеджера логических томов (LVM) E6D6D379-F507-44C2-A23C-238F2A3DF928
Зарезервировано 8DA63339-0007-60C0-C436-083AC8230908
FreeBSD Загрузочный раздел 83BD6B9D-7F41-11DC-BE0B-001560B84F0F
Раздел данных 516E7CB4-6ECF-11D6-8FF8-00022D09712B
Своп-раздел 516E7CB5-6ECF-11D6-8FF8-00022D09712B
Раздел UFS (Unix File System) 516E7CB6-6ECF-11D6-8FF8-00022D09712B
Раздел менеджера томов Vinum 516E7CB8-6ECF-11D6-8FF8-00022D09712B
Раздел ZFS 516E7CBA-6ECF-11D6-8FF8-00022D09712B
Mac OS X Раздел HFS+ (Hierarchical File System) 48465300-0000-11AA-AA11-00306543ECAC
Apple UFS 55465300-0000-11AA-AA11-00306543ECAC
ZFS 6A898CC3-1DD2-11B2-99A6-080020736631
Apple RAID раздел 52414944-0000-11AA-AA11-00306543ECAC
Apple RAID раздел, offline 52414944-5F4F-11AA-AA11-00306543ECAC
Загрузочный раздел Apple 426F6F74-0000-11AA-AA11-00306543ECAC
Apple Label 4C616265-6C00-11AA-AA11-00306543ECAC
Apple TV Recovery partition 5265636F-7665-11AA-AA11-00306543ECAC
Solaris Загрузочный раздел 6A82CB45-1DD2-11B2-99A6-080020736631
Корневой раздел 6A85CF4D-1DD2-11B2-99A6-080020736631
Своп раздел 6A87C46F-1DD2-11B2-99A6-080020736631
Backup-раздел 6A8B642B-1DD2-11B2-99A6-080020736631
Раздел /usr 6A898CC3-1DD2-11B2-99A6-080020736631
Раздел /var 6A8EF2E9-1DD2-11B2-99A6-080020736631
Раздел /home 6A90BA39-1DD2-11B2-99A6-080020736631
EFI_ALTSCTR 6A9283A5-1DD2-11B2-99A6-080020736631
Зарезервированные разделы 6A945A3B-1DD2-11B2-99A6-080020736631
6A9630D1-1DD2-11B2-99A6-080020736631
6A980767-1DD2-11B2-99A6-080020736631
6A96237F-1DD2-11B2-99A6-080020736631
6A8D2AC7-1DD2-11B2-99A6-080020736631

Примечание 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).

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]