Перейти к публикации

GPT — таблица разделов GUID

Denis

73 просмотра

Диски объемом более 2 Тбайт на наших глазах становятся реальностью. Что же нужно, чтобы компьютер смог работать с такими винчестерами?

Контроллер дисков и BIOS материнской платы должны, как минимум, поддерживать 48битную адресацию LBA. Когда под номер сектора отводится 48 битов, можно адресовать на диске до 248 ≈ 2,8 • 1014 байтов, т. е. почти 300 терабайт. Эта поддержка появляется в «железе», выпущенном после 2008 г. В идеале материнская плата должна соответствовать спецификации Extensible Firmware Interface (EFI), но пока это «экзотика». 

На диске должна быть создана таблица разделов нового типа — GPT (англ. GUID Partition Table, таблица разделов GUID). 

Операционная система должна «уметь» работать с таблицей разделов GPT. Таковы Windows 7, 64битные предыдущие версии Windows и некоторые сборки Linux. 

Сразу скажем, что такое GUID (Globally Unique Identifier, глобально уникальный идентификатор). Это концепция, согласно которой каждой цифровой «железке» и программному компоненту в мире желательно присвоить статистически уникальный 128битный идентификатор. Активное участие в ее разработке и продвижении принимают корпорация Microsoft и другие гиганты индустрии.

ПРИМЕЧАНИЕ

Философские аспекты GUID трогать не будем. Вы что-то сказали о «привязке» GUID конкретной копии Windows Home к GUID конкретного винчестера и материнской платы? Похоже, дело идет к тому... Честно говоря, мне это тоже не очень нравится! «Глубина-глубина, я не твой... Отпусти меня, глубина...»

Однако для строительства «цифрового мира во всем мире» что-то подобное, видимо, нужно. Недаром уникальные серийные номера давно уже прошиваются в ППЗУ сетевых карт, винчестеров, флеш-дисков, телефонов и даже в SPD планок оперативной памяти и в процессоры! Так что фантастика становится реальностью.

Одно отражение идея GUID нашла в сетевом протоколе IPv6. В результате у каждого компьютера на Земле появляется уникальный IPадрес, адресация в цифровых сетях становится довольно простой и прозрачной, а многие проблемы отпадают сами собой.

Другое воплощение идеи — архитектура EFI (Extensible Firmware Interface, расширяемый интерфейс микропрограмм). Не путайте ее с EFI — электронным впрыском топлива в двигателях автомобилей! Эта архитектура призвана заменить BIOS при загрузке компьютеров и взаимодействии аппаратных компонентов.

Попросту говоря, BIOS обращается к диску, подключенному к указанному порту, потом загрузчик MBR передает загрузку загрузочному сектору того раздела, который помечен как активный, последний отправляет к загрузочным файлам ОС и т. д. Материнская плата с EFI сразу же обратится к тому разделу, уникальный идентификатор (GUID) которого прописан в ее настройках! Для этого на диске и нужна структура GPT.

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

Protective MBR описан всего один раздел, занимающий весь диск. Разделу присвоен тип 00EE. Благодаря этому старые ОС и программы, не поддерживающие GPT, «видят» через MBR один раздел неизвестного им типа и не пытаются что-либо писать на диск. 

В первом секторе расположен первичный заголовок GPT. Он как раз и содержит GUID диска, сведения о собственном размере и ссылку на расположение вторичного (запасного) оглавления и запасной таблицы разделов, которые всегда находятся в последних секторах диска.

Кроме того, в заголовке хранятся две контрольные суммы (CRC32): самого заголовка и таблицы разделов. При загрузке компьютера микропрограмма EFI проверяет по этим контрольным суммам целостность GPT.

Секторы со второго по тридцать третий занимает таблица разделов. Она состоит из записей длиной по 128 байтов. Всего таких записей и, соответственно, разделов на диске может быть не более 128.

Первые 16 байтов записи содержат GUID типа раздела. Это напоминает код типа раздела в MBR. Например, GUID системного раздела EFI имеет вид C12A7328F81F11D2BA4B00A0C93EC93B. Следующие 16 байтов — уникальный идентификатор (GUID) конкретного раздела. Фактически, это его «серийный номер». Далее могут быть записаны данные о начале и конце раздела в 64битных координатах LBA (не обязательно). Затем следуют метка (имя) и атрибуты раздела.

В конце диска расположена резервная копия GPT — вторичный заголовок (Secondary GPT Header) и точно такая же таблица разделов. Номера секторов здесь обозначают отрицательными числами: –1 — последний сектор, –2 — предпоследний и т. д.

Простое редактирование GPT с помощью HEX-редакторов без вычисления и обновления контрольных сумм приводит к тому, что содержимое заголовка или таблицы перестает соответствовать контрольным суммам. Если микропрограмма EFI при проверке выявит такое расхождение, она перезапишет Primary GPT из вторичной копии. Если же обе записи GPT будут содержать неверные контрольные суммы, доступ к диску станет невозможным.

Таким образом, GPT обладает отказоустойчивостью и позволяет создать на диске до 128 основных разделов. По сравнению с MBR это серьезный шаг вперед! В принципе, пользователи Windows 7 свободно могут принимать GPT на вооружение. Однако в деле вы пока вряд ли столкнетесь с дисками такой логической организации.



0 комментариев


Рекомендованные комментарии

Нет комментариев для отображения

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
Вверх