В отличие от MBR, которая начинается с исполняемой двоичной программы, призванной идентифицировать и загрузить активный раздел, GPT опирается на расширенные возможности EFI для осуществления этих процессов. Однако MBR присутствует в самом начале диска (блок LBA 0) как для защиты, так и в целях совместимости. Собственно GPT начинается с Оглавления таблицы разделов (англ.Partition Table Header).
GPT использует современную систему адресации логических блоков (LBA) вместо применявшейся в MBR адресации «Цилиндр — Головка — Сектор» (CHS). MBR, доставшаяся по наследству со всей своей информацией, содержится в блоке LBA 0, оглавление GPT — в блоке LBA 1. В оглавлении содержится адрес блока, где начинается сама таблица разделов, обычно это следующий блок — LBA 2. Количество разделов не ограничено стандартом и зависит от операционной системы[1] (технически ограничено порядка 264 разделами из-за разрядности полей). Так в Microsoft Windows в таблице разделов резервируется место для 128 записей по 128 байт каждая (в GNU/Linux ядро поддерживает до 256 разделов[2]). Таким образом для таблицы разделов в Windows резервируется 16 384 байт (при использовании сектора размером 512 байт это будет 32 сектора), так что первым используемым сектором каждого жёсткого диска в ней будет блок LBA 34.
Кроме того, GPT обеспечивает дублирование — оглавление и таблица разделов записаны как в начале, так и в конце диска.
Теоретически, GPT позволяет создавать разделы диска размером до 9,4 ЗБ (9,4 × 1021 байт) (при размере сектора 512 байт, иначе — больше), в то время как MBR может работать только до 2,2 ТБ (2,2 × 1012 байт).
GPT позволяет назначать разделам идентификаторы GUID, имена и атрибуты, независимо от внутренних UUID файловых систем, их меток и прочего, и позволяет обращаться по таким именам вместо меток и номеров разделов. Благодаря поддержке Юникода в именах и щадящих ограничений на них, разделы могут быть названы на любом языке и сгруппированы по папкам[3].
Наследственный MBR (LBA 0)
Основная цель помещения MBR в начало диска — защитная. MBR-ориентированные дисковые утилиты могут не распознать и даже перезаписать GPT-диски. Чтобы избежать этого, указывается наличие всего одного раздела, охватывающего весь GPT-диск. Системный идентификатор (англ.System ID) для этого раздела устанавливается в значение 0xEE, указывающее, что применяется GPT. Вследствие этого EFI игнорирует MBR. Некоторые 32-битные операционные системы, например Windows XP, не приспособленные для чтения дисков, содержащих GPT, тем не менее распознаю́т этот Системный идентификатор и представляют том в качестве недоступного GPT-диска. Более старые ОС[какие?] обычно представляют диск как содержащий единственный раздел неизвестного типа и без свободного места; как правило, они отказываются модифицировать такой диск, пока пользователь явно не потребует и не подтвердит удаление данного раздела. Таким способом предотвращается случайное стирание содержимого GPT-диска.
Оглавление таблицы разделов (LBA 1)
Оглавление таблицы разделов указывает те логические блоки на диске, которые могут быть задействованы пользователем (англ.the usable blocks). Оно также указывает число и размер записей данных о разделах, составляющих таблицу разделов. Стандартно в Microsoft Windows резервируется 128 записей данных о разделах. Таким образом, возможно создание 128 разделов на диске.
Оглавление содержит GUID (англ.Globally Unique IDentifier — «глобально уникальный идентификатор») диска. В оглавлении также содержится его собственный размер и местоположение (всегда блок LBA 1), а также размер и местоположение вторичного (запасного) оглавления и таблицы разделов, которые всегда размещаются в последних секторах диска. Важно, что оно также содержит контрольную сумму CRC32 для себя и для таблицы разделов. Эти контрольные суммы проверяются процессами EFI при загрузке машины. Из-за проверок контрольных сумм недопустима и бессмысленна модификация содержимого GPT в шестнадцатеричных редакторах. Всякое редактирование нарушит соответствие содержания контрольным суммам, после чего EFI перезапишет первичный GPT вторичным. Если же оба GPT будут содержать неверные контрольные суммы, доступ к диску станет невозможным[к. 1].
Записи данных о разделах (LBA 2-33)
Записи данных о разделах (англ.Partition entries) просты и расположены с равным приращением адресов. Первые 16 байт определяют GUID типа раздела. Например, GUID системного EFI-раздела имеет вид «C12A7328-F81F-11D2-BA4B-00A0C93EC93B». Следующие 16 байт содержат GUID, уникальный для данного конкретного раздела. Далее записываются данные о начале и конце 64-битных LBA, если они имеются. Остальное место отводится информации об именах и атрибутах разделов.
Примечание 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).
Недостатки
Противоречивые реализации поддержки GPT, возможно, из-за закрытости большей части стандарта (например, GUID для раздела данных Linux был изменён на другой, в старых версиях parted используется нестандартная кодировка имён).
Не предусмотрено возможности назначать имя всему диску, как отдельным разделам (хотя у него есть свой GUID).
По-прежнему сильна привязка раздела к его номеру в таблице (например, многие загрузчики ОС предпочитают номер именам и GUID).
Количество дубликатов таблиц строго ограничено двумя, их позиции зафиксированы, что в случае повреждения диска, ошибок администрирования или ошибок программ недостаточно для удобного восстановления данных.
Ни резервная копия GPT, ни основная не позволяют аннулировать другую копию в случае, если та неверна, но имеет правильную контрольную сумму и не может быть стёрта, то есть не предусмотрено защиты от повреждённых секторов (плохих блоков), которая давно есть в некоторых (ext3, ext4[6]) файловых системах.