Что такое основной раздел
Основной и логический разделы жесткого диска: их суть и преобразование из одного типа в другой
Основной и логический разделы жесткого диска: их суть и преобразование из одного типа в другой
Как отключить мини-приложения в 11
Как вернуть старое контекстное меню в 11
Не запускается PC Health Check на 11
Не могу обновиться до 11
0xc190011f при обновлении до 11
Разделы жесткого диска (они же называемые томами, они же партиции от англ. partition) могут быть основными и логическими. Другое название основного типа раздела диска – первичный. Основные (или первичные) разделы диска используются для запуска операционной системы. Это системный раздел С, где непосредственно установлена Windows, и небольшой раздел с зарезервированным пространством (100 Мб, 350 Мб или 500 Мб), который, начиная с версии 7, создается для нужд операционной системы. Логические разделы диска от основных функционально не отличаются. Что на основных, что на логических разделах диска – и там, и там хранится информация. Отличие заключается в том, что с логического раздела диска невозможен запуск Windows. Если превратить системный раздел С из основного в логический, Windows не во всех, но в большинстве случаев сможет полноценно функционировать.
Но она во всех подряд случаях не захочет загружаться, если логическим сделать ее технический небольшой раздел с зарезервированным пространством, где, в частности, хранятся данные загрузки.
Ниже в деталях поговорим о сути основных и логических разделов жесткого диска, а также рассмотрим способы преобразования их типа из одного в другой и наоборот.
Содержание:
1. Лимит числа основных разделов на диске
На одном жестком диске должно быть не более 4-х основных разделов, если при этом нет логических. Если встает необходимость в создании более 4-х разделов диска, создаваемый 4-й раздел и все последующие разделы должны быть логическими. Так, после созданной тройки основных разделов 4-й раздел, называемый дополнительным или расширенным, будет представлять собой нечто контейнера, который, в свою очередь, можно делить на множество логических разделов.
2. Формирование основных и логических разделов
Штатная утилита управления дисками Windows не предоставляет пользователю возможность выбора типа раздела диска. Утилита сама обеспечивает оптимальный для большинства случаев расклад. Первые 3 создаваемых ею раздела – основные по умолчанию. А, начиная с 4-го, все создаваемые утилитой разделы автоматически создаются как логические.
По точно такому же принципу работает и сторонний менеджер дискового пространства – программа AOMEI Partition Assistant. Первые три раздела с настройками по умолчанию создаются как основные, а, начиная с 4-го – как логические. Но, в отличие от штатной утилиты Windows, AOMEI Partition Assistant предусматривает расширенный режим настроек создания раздела диска, где можно вручную выбрать для первой тройки создаваемых разделов основной или логический тип.
Еще один почитатель шаблонных предустановок – программа Paragon Hard Disk Manager. Ее настройки создания раздела диска по умолчанию тоже заточены под формирование первой тройки разделов как основных. И, как в предыдущей программе, при создании первой тройки разделов можно вручную сменить предустановленный основной тип на логический, значимый в программе как расширенный.
А вот программа Acronis Disk Director шаблонных параметров не придерживается. Форма создания нового раздела диска по умолчанию предусматривает создание логического раздела. Параметры типа раздела необходимо переназначить вручную – для создания основного раздела, соответственно, поставить галочки возле надписи «Основной» и возле надписи «Активный», если формируется раздел для Windows.
3. Зачем менять логический раздел диска на основной и наоборот
В каких случаях может возникнуть необходимость в смене логического типа раздела диска на основной и наоборот? Необходимость в проведении первой операции – это, как правило, те самые случаи неудачных экспериментов с преобразованием системных разделов Windows из основных в логические. Это также случаи возникновения проблем с установкой Windows, когда на жестком диске изначально были созданы только лишь логические разделы.
Необходимость в обратной операции – в преобразовании основного раздела в логический – возникает тогда, когда основных разделов на диске оказывается больше, чем нужно для конкретных ситуаций. Например, в случае восстановления Windows из резервной копии на раздел, отличный от исходного. Речь идет о переносе системы на другой, уже распределенный жесткий диск, где необходимо сохранить структуру и данные несистемных разделов, а на системный раздел восстановить из резервной копии «обжитую» Windows. Если жесткий диск имеет 4 основных раздела без логических или 3 основных, а все остальные являются логическими, программы для резервного копирования в некоторых случаях откажутся выполнять операцию по восстановлению Windows. Поскольку в составе резервной копии может содержаться не один системный раздел С, а еще и упомянутый выше технический раздел с зарезервированным пространством для нужд Windows. Этот небольшой раздел и системный раздел С по итогу завершения операции восстановления, будь она возможна, разделили бы основной раздел назначения на два раздела, при этом также основных. И таким образом нарушилось бы правило – или 4 основных раздела без логических, или 3 основных раздела, а все остальные логические. В этом случае проблема решается так: один из несистемных разделов, где хранятся пользовательские данные, преобразуется из основного в логический, каким, по сути, он и должен быть.
4. Установка Windows на логический раздел диска
При наличии на жестком диске основных разделов, даже если Windows целенаправленно устанавливать на логический раздел, операционная система сама в процессе установки преобразует его в основной. Windows даже выкрутится из ситуации, когда лимит основных разделов будет исчерпан. Она просто обустроит себе технический раздел на любом доступном основном разделе.
А вот если на жестком диске будут только лишь логические разделы, Windows на этапе выбора раздела диска устанавливаться не захочет. Проще всего дела будут обстоять, если на диске нет данных или они не представляют важности. В этом случае проблема легко решается подручными средствами самого установочного диска операционной системы. Существующие логические разделы диска удаляются кнопкой «Удалить»,
а на их месте формируются новые разделы с помощью кнопки «Создать».
На диске установки Windows 7 для доступа к этим кнопкам нужно жать опцию «Настройка диска».
Если делить диск на разделы не нужно, например, когда это 60-гигабайтный SSD, можно не создавать никаких разделов, а устанавливать Windows прямо на «Незанятое место на диске».
Но когда на жестком диске имеется большой объем данных, в таком случае без специальных программ для работы с дисковым пространством не обойтись. Необходимо раздел, на который планируется установка Windows, преобразовать из логического в основной.
5. Программа Acronis Disk Director 12 для решения поставленных задач
Назначенный при создании раздела основной или логический тип впоследствии изменить штатной утилитой управления дисками Windows невозможно. Для этого потребуется прибегнуть к более функциональным решениям в виде сторонних программ для работы с дисковым пространством компьютера, которые смогут провести операцию без удаления раздела, с сохранностью его данных. На фоне конкурентов в плане назначения разделам диска основного или логического типа Acronis Disk Director 12 выгодно отличается наличием «защиты от дурака». Тогда как, например, Paragon Hard Disk Manager бездумно согласится на эксперимент по преобразованию технического раздела Windows из основного в логический, Acronis Disk Director заботливо предупредит обо всех негативных последствиях планируемой операции.
Acronis Disk Director 12 настолько умная программа, что даже если эту операцию подтвердить, произойдет лишь эффект проведения операции, так сказать, обманка для «особо настойчивых». По-настоящему ничего не будет изменено, и после перезагрузки Windows технический раздел системы останется, как и прежде, основным.
Для критических случаев, когда Windows не загружается или попросту еще не установлена, Acronis Disk Director 12 в своем интерфейсе предусматривает создание загрузочного носителя.
После приветственного окошка выбираем «Windows-подобное представление» загрузочного носителя.
Пропускаем этап с параметрами ядра Linux.
Выбираем загрузочный носитель с поддержкой UEFI для компьютеров на базе этой BIOS или ограничиваемся обычной версией для 32-разрядных систем. Вариант выбора принципиален только для BIOS UEFI.
Далее определяемся с типом носителя и следуем соответствующим шагам мастера для завершения процесса.
Наконец, выставляем в BIOS приоритет загрузки с выбранного носителя и запускаем Acronis Disk Director 12.
6. Преобразование основного раздела диска в логический и наоборот
В окне Acronis Disk Director 12, будь это окно десктопной программы, или это интерфейс установочного носителя, выбираем нужный раздел диска. Выбирать можно хоть в таблице разделов диска вверху, хоть в визуальном их представлении внизу. Вызываем на разделе контекстное меню. Если это основной раздел, выбираем функцию «Преобразовать в логический».
Применяем ожидающую операцию.
Еще раз подтверждаем решение нажатием кнопки «Продолжить».
Раздел преобразован в логический.
Аналогично происходит операция по преобразованию логического раздела диска в основной. На выбранном логическом разделе в контекстном меню выбираем функцию «Преобразовать в основной».
В отдельных случаях возвращения техническому разделу Windows основного типа таким путем потребуется дополнительно осуществить восстановление загрузочного сектора.
В завершение
Завершить эту статью хотелось бы напутствием для новичков, которые собираются экспериментировать с дисковым пространством компьютера. Проверять потенциал профессионального софта в этой области не обязательно на физическом диске компьютера. Для этих целей средствами Windows (в той же утилите управления дисками) можно создать виртуальный VHD-диск, инициализировать его и уже с ним проводить разного рода эксперименты.
MBR или GPT? Что такое структуры накопителей и чем отличаются
Содержание
Содержание
Компьютер, жесткий диск, операционная система — для современного человека, это обыденные вещи. Но все самое интересное, заставляющее компьютер работать так, как мы
к тому привыкли, остается «за кадром». Сегодня поговорим об одной из вещей, которая позволяет существовать разделам на нашем накопителе — способе описания разделов, она же таблица разделов.
Таблица разделов — это структура, где содержится информация обо всех разделах на диске: как он называется (Label), откуда начинается, где заканчивается, какой объем имеет и т.д. Рассмотрим два различных варианта таких таблиц, а именно MBR и GPT.
MBR (Master Boot Record — главная загрузочная запись) непосредственным образом участвует в загрузке операционной системы. Но, кроме этого, она хранит и информацию, позволяющую описать разделы на компьютере. Чтобы объяснить, почему это работает так, а не иначе, и имеет определенные особенности/ограничения, придется немного углубиться в структуру MBR.
Если сигнатура не равна 55AAh, значит, MBR поврежден. В MBR процесс загрузки тесно связан с разделами диска, так как хранятся они «вместе».
Пусть процесс загрузки и не относится к теме материала, упрощенно и кратко расскажем
о нем. После выполнения определенных операций, BIOS читает первый сектор накопителя,
в котором и находится наша главная загрузочная запись. Выполняется код загрузчика, который просматривает таблицу разделов, и передает управление загрузчику операционной системы, который уже ее и загружает.
Вернемся к нашей таблице разделов. На нее выделено 64 байта, разделенных на 4 записи, по 16 байт.
Одна запись — это один раздел, из чего происходит первое ограничение MBR — максимальное число разделов на диске не может быть больше четырех. Но это утверждение правда лишь наполовину: нельзя создать больше четырех основных разделов. Но об этом чуть позже, сейчас же посмотрим на структуру самой 16-ти битной записи.
Самый первый бит в записи обозначает признак активности раздела — т.е. признак того, что операционную систему следует загружать именно из этого раздела — и может иметь значения 80h (раздел активен) и 00h (раздел не активен). Установленная операционная система должна находиться именно на активном разделе. Данное правило справедливо для стандартного загрузчика ОС семейства Windows — NTLDR, а вот для UNIX-систем это нужно не всегда.
А теперь переместимся в конец записи — к последним четырем байтам. Именно они в ответе за самое известное ограничение, связанное с использованием MBR — максимальный размер раздела.
На описание количества секторов в разделе отводится 4 байта, следовательно количество секторов ограничено величиной 232, где степень — это количество бит описания (4 байта = 32 бита). Поскольку размер сектора равен 512 бит, то максимальный размер раздела, который можно описать в таблице разделов MBR, составляет 232 x 512 = 2 ТБ. Те самые «два терабайта», набившие оскомину. Это техническое ограничение не обойти.
Расширенный раздел
Но давайте вернемся к тому, что максимальное количество разделов в таблице разделов ограничено четырьмя. Чтобы это обойти, был придумал особый тип раздела — расширенный (Extended Partition). Внимательный читатель заметил, что из 16 байт описания раздела один отведен именно под указание его типа. Для расширенного раздела там прописывается 0Fh (для современный Windows систем).
Расширенный раздел сильно отличается от остальных типов разделов. Он описывает не раздел, а некое пространство, где находятся логические диски. Наглядно это можно изобразить примерно так.
На рисунке видно, что на логическом диске находится один основной и один расширенный раздел. «Внутри» расширенного раздела создано шесть логических дисков (хотя в силу определенных причин во многих случаях будет использоваться термин «логический раздел»). Для созданных таким образом разделов есть некоторые ограничения, по сравнению
с основными. Например, они не могут быть активными.
GPT (GUID Partition Table) — таблица разделов GUID, создана для замены MBR и является частью UEFI, который в свою очередь пришел на замену BIOS. В новой версии таблицы разделов постарались убрать ограничения и недочеты MBR, которые были неявны на момент ее создания, но проявились с развитием технологий.
Как видно из расшифровки, основа GPT — GUID — Globally Unique Identifier — 128-битный статистически уникальный идентификатор. Уникальность здесь не стопроцентная, но поскольку количество вариантов равно 2 в 128 степени, то вероятность получить одинаковые GIUD (например, для разделов) крайне мала. Выглядит он как последовательность из 32 шестнадцатеричных цифр, разделенных на группы.
024DEE41-33E7-11D3-9D69-0008C781F39F — пример того, как выглядит GUID раздела с MBR.
Ниже вы можете видеть схематическое изображение структуры GPT. Кратко рассмотрим ее.
В первом физическом блоке диска, а точнее в блоке LBA0, поскольку GPT оперирует именно LBA адресами, расположен защитный (Protective) MBR. Его основное назначение — «защита» структуры диска благодаря обеспечению совместимости с устаревшим программным обеспечением, работающим с MBR, но «не знающем» о GPT.
В LBA1 находится основной заголовок GPT. В нем содержатся различные данные, например, где начинается и заканчивается область для размещения разделов, а также контрольные суммы самого заголовка и таблицы разделов, по которым происходит проверка их целостности.
Далее, начиная с блока LBA2, находится массив записей о разделах на диске. Каждая такая запись имеет размер 128 байт (размер может меняться в большую сторону), а на весь массив выделяется 16384 байта, что дает 32 LBA (для 64-битных ОС Windows). Таким образом, можно создать до 128-ми разделов.
Именно в каждой записи указывается GUID раздела, типа раздела, стартовый и конечный блоки (LBA) раздела. На последние выделяется по 8 бит данных, что теоретически позволяет создать раздел размером до 9,4 ЗБ (Зеттаба́йт, 1021). Фактически, размер раздела ограничен используемой ОС.
Достоинства и недостатки MBR и GPT
Итак, попробуем обобщить все вышесказанное в более краткой форме, указав сильные
и слабые стороны обоих решений.
Плюсы
Минусы
Плюсы
Минусы
Нет сомнений, что за GPT будущее. Его использование в современных ПК позволяет не думать о том, что в последующем можно натолкнуться на какие-либо ограничения. С другой стороны, на данный момент, обычный среднестатистический пользователь может с одинаковым успехом использовать любой из двух вариантов, и не замечать никакой разницы, если диски в его ПК не больше 2 ТБ.
Изучаем структуры MBR и GPT
Для работы с жестким диском его для начала необходимо как-то разметить, чтобы операционная система могла понять в какие области диска можно записывать информацию. Поскольку жесткие диски имеют большой объем, их пространство обычно разбивают на несколько частей — разделов диска. Каждому такому разделу может быть присвоена своя буква логического диска (для систем семейства Windows) и работать с ним можно, как будто это независимый диск в системе.
Способов разбиения дисков на разделы на сегодняшний день существует два. Первый способ — использовать MBR. Этот способ применялся еще чуть ли не с появления жестких дисков и работает с любыми операционными системами. Второй способ — использовать новую систему разметки — GPT. Этот способ поддерживается только современными операционными системами, поскольку он еще относительно молод.
Структура MBR
До недавнего времени структура MBR использовалась на всех персональных компьютерах для того, чтобы можно было разделить один большой физический жесткий диск (HDD) на несколько логических частей — разделы диска (partition). В настоящее время MBR активно вытесняется новой структурой разделения дисков на разделы — GPT (GUID Partition Table). Однако MBR используется еще довольно широко, так что посмотрим что она из себя представляет.
MBR всегда находится в первом секторе жесткого диска. При загрузке компьютера, BIOS считывает этот сектор с диска в память по адресу 0000:7C00h и передает ему управление.
Итак, первая секция структуры MBR — это секция с исполняемым кодом, который и будет руководить дальнейшей загрузкой. Размер этой секции может быть максимум 440 байт. Далее идут 4 байта, отведенные на идентификацию диска. В операционных системах, где идентификация не используется, это место может занимать исполняемый код. То же самое касается и последующих 2 байт.
Начиная со смещения 01BEh находится сама таблица разделов жесткого диска. Таблица состоит из 4 записей (по одной на каждый возможный раздел диска) размером 16 байт.
Структура записи для одного раздела:
Первым байтом в этой структуре является признак активности раздела. Этот признак определяет с какого раздела следует продолжить загрузку. Может быть только один активный раздел, иначе загрузка продолжена не будет.
Следующие три байта — это так называемые CHS-координаты первого сектора раздела.
По смещению 04h находится код типа раздела. Именно по этому типу можно определить что находится в данном разделе, какая файловая система на нем и т.п. Список зарезервированных типов разделов можно посмотреть, например, в википедии по ссылке Типы разделов.
После типа раздела идут 3 байта, определяющие CHS-координаты последнего сектора раздела.
CHS-координаты сектора расшифровываются как Cylinder Head Sector и соответственно обозначают номер цилиндра (дорожки), номер головки (поверхности) и номер сектора. Цилиндры и головки нумеруются с нуля, сектор нумеруется с единицы. Таким образом CHS=0/0/1 означает первый сектор на нулевом цилиндре на нулевой головке. Именно здесь находится сектор MBR.
Все разделы диска, за исключением первого, обычно начинаются с нулевой головки и первого сектора какого-либо цилиндра. То есть их адрес будет N/0/1. Первый раздел диска начинается с головки 1, то есть по адресу 0/1/1. Это все из-за того, что на нулевой головке место уже занято сектором MBR. Таким образом, между сектором MBR и началом первого раздела всегда есть дополнителььные неиспользуемые 62 сектора. Некоторые загрузчики ОС используют их для своих нужд.
Интересен формат хранения номера цилиндра и сектора в структуре записи раздела. Номер цилиндра и номер сектора делят между собой два байта, но не поровну, а как 10:6. То есть на номер сектора приходится младшие 6 бит младшего байта, что позволяет задавать номера секторов от 1 до 63. А на номер цилиндра отведено 10 бит — 8 бит старшего байта и оставшиеся 2 бита от младшего байта: «CCCCCCCC CCSSSSSS», причем в младшем байте находятся старшие биты номера цилиндра.
Проблема с CHS-координатами состоит в том, что с помощью такой записи можно адресовать максимум 8 Гб диска. В эпоху DOS это было приемлемо, однако довольно скоро этого перестало хватать. Для решения этой проблемы была разработана система адресации LBA (Logical Block Addressing), которая использовала плоскую 32-битную нумерацию секторов диска. Это позволило адресовать диски размером до 2Тб. Позже разрядность LBA увеличили до 48 бит, однако MBR эти изменения не затронули. В нем по-прежнему осталась 32-битная адресация секторов.
Итак, в настоящее время повсеместно используется LBA-адресация для секторов на диске и в структуре записи раздела адрес его первого сектора прописывается по смещению 08h, а размер раздела — по смещению 0Ch.
Для дисков размером до 8Гб (когда адресация по CHS еще возможна) поля структуры с CHS-координатами и LBA-адресации должны соответствовать друг другу по значению (корректно конвертироваться из одного формата в другой). У дисков размером более 8Гб значения всех трех байт CHS-координат должны быть равны FFh (для головки допускается также значение FEh).
В конце структуры MBR всегда находится сигнатура AA55h. Она в какой-то степени позволяет проверить, что сектор MBR не поврежден и содержит необходимые данные.
Расширенные разделы
Разделы, отмеченные в таблице типом 05h и 0Fh, это так называемые расширенные разделы. С их помощью можно создавать больше разделов на диске, чем это позволяет MBR. На самом деле расширенных разделов несколько больше, например есть разделы с типами C5h, 15h, 1Fh, 91h, 9Bh, 85h. В основном все эти типы разделов использовались в свое время различными операционными системами (такими как например OS/2, DR-DOS, FreeDOS) с одной и той же целью — увеличить количество разделов на диске. Однако со временем различные форматы отпали и остались только разделы с типами 05h и 0Fh. Единственное исключение — это тип 85h. Он до сих пор может использоваться в Linux для формирования второй цепочки логических дисков, скрытых от других операционных систем. Разделы с типом 05h используются для дисков менее 8Гб (где еще возможна адресация через CHS), а тип 0Fh используется для дисков больше 8Гб (и используется LBA-адресация).
В первом секторе расширенного раздела находится структура EBR (Extended Boot Record). Она во многом схожа со структурой MBR, но имеет следующие отличия:
В отличие от MBR, где позволяется создавать не более четырёх разделов, структура EBR позволяет организовать список логических разделов, ограниченный лишь размером раздела-контейнера (того самого, который с типом 05h или 0Fh). Для организации такого списка используется следующий формат записей: первая запись в таблице разделов EBR указывает на логический раздел, связанный с данным EBR, а вторая запись указывает на следующий в списке раздел EBR. Если данный логический раздел является последним в списке, то вторая запись в таблице разделов EBR должна быть заполнена нулями.
Формат записей разделов в EBR аналогичен формату записи в структуре MBR, однако логически немного отличается.
Признак активности раздела для разделов структуры EBR всегда будет 0, так как загрузка осуществлялась только с основных разделов диска. Координаты CHS, с которых начинается раздел используются, если не задействована LBA-адресация, также как и в структуре MBR.
А вот поля, где в режиме LBA-адресации должны находиться номер начального сектора и количество секторов раздела, в структуре EBR используются несколько иначе.
Для первой записи таблицы разделов EBR в поле начального сектора раздела (смещение 08h) записывается расстояние в секторах между текущим сектором EBR и началом логического раздела, на который ссылается запись. В поле количества секторов раздела (смещение 0Ch) в этом случае пишется размер этого логического раздела в секторах.
Для второй записи таблицы разделов EBR в поле начального сектора раздела записывается расстояние между сектором самой первой EBR и сектором следующей EBR в списке. В поле количества секторов раздела в этом случае пишется размер области диска от сектора этой следующей структуры EBR и до конца логического раздела, относящегося к этой структуре.
Таким образом, первая запись таблицы разделов описывает как найти, и какой размер занимает текущий логический раздел, а вторая запись описывает как найти, и какой размер занимает следующий EBR в списке, вместе со своим разделом.
Структура GPT
В современных компьютерах на смену BIOS пришла новая спецификация UEFI, а вместе с ней и новое устройство разделов на жестком диске — GUID Partition Table (GPT). В этой структуре были учтены все недостатки и ограничения, накладываемые MBR, и разработана она была с большим запасом на будущее.
В структуре GPT используется теперь только LBA-адресация, никаких CHS больше нет и никаких проблем с их конвертацией тоже. Причем под LBA-адреса отведено по 64 бита, что позволяет работать с ними без всяких ухищрений, как с 64-битными целыми числами, а также (если до этого дойдет) даст в будущем возможность без проблем расширить 48-битную LBA-адресацию до 64-битной.
Кроме того, в отличие от MBR, структура GPT хранит на диске две своих копии, одну в начале диска, а другую в конце. Таким образом, в случае повреждения основной структуры, будет возможность восстановить ее из сохраненной копии.
Рассмотрим теперь устройство структуры GPT подробнее. Вся структура GPT на жестком диске состоит из 6 частей:
Защитный MBR-сектор
Первый сектор на диске (с адресом LBA 0) — это все тот же MBR-сектор. Он оставлен для совместимости со старым программным обеспечением и предназначен для защиты GPT-структуры от случайных повреждений при работе программ, которым про GPT ничего не известно. Для таких программ структура разделов будет выглядеть как один раздел, занимающий все место на жестком диске.
Структура этого сектора ничем не отличается от обычного сектора MBR. В его таблице разделов дожна быть создана единственная запись с типом раздела 0xEE. Раздел должен начинаться с адреса LBA 1 и иметь размер 0xFFFFFFFF. В полях для CHS-адресации раздел соответственно должен начинаться с адреса 0/0/2 (сектор 1 занят под саму MBR) и иметь конечный CHS-адрес FF/FF/FF. Признак активного раздела должен иметь значение 0 (неактивный).
При работе компьютера с UEFI, данный MBR-сектор просто игнорируется и никакой код в нем также не выполняется.
Первичный GPT-заголовок
Этот заголовочный сектор содержит в себе данные о всех LBA-адресах, использующихся для разметки диска на разделы.
Структура GPT-заголовка:
Смещение (байт) | Размер поля (байт) | Пример заполнения | Название и описание поля |
0x00 | 8 байт | 45 46 49 20 50 41 52 54 | Сигнатура заголовка. Используется для идентификации всех EFI-совместимых GPT-заголовков. Должно содержать значение 45 46 49 20 50 41 52 54, что в виде текста расшифровывается как «EFI PART». |
0x08 | 4 байта | 00 00 01 00 | Версия формата заголовка (не спецификации UEFI). Сейчас используется версия заголовка 1.0 |
0x0C | 4 байта | 5C 00 00 00 | Размер заголовка GPT в байтах. Имеет значение 0x5C (92 байта) |
0x10 | 4 байта | 27 6D 9F C9 | Контрольная сумма GPT-заголовка (по адресам от 0x00 до 0x5C). Алгоритм контрольной суммы — CRC32. При подсчёте контрольной суммы начальное значение этого поля принимается равным нулю. |
0x14 | 4 байта | 00 00 00 00 | Зарезервировано. Должно иметь значение 0 |
0x18 | 8 байт | 01 00 00 00 00 00 00 00 | Адрес сектора, содержащего первичный GPT-заголовок. Всегда имеет значение LBA 1. |
0x20 | 8 байт | 37 C8 11 01 00 00 00 00 | Адрес сектора, содержащего копию GPT-заголовка. Всегда имеет значение адреса последнего сектора на диске. |
0x28 | 8 байт | 22 00 00 00 00 00 00 00 | Адрес сектора с которого начинаются разделы на диске. Иными словами — адрес первого раздела диска |
0x30 | 8 байт | 17 C8 11 01 00 00 00 00 | Адрес последнего сектора диска, отведенного под разделы |
0x38 | 16 байт | 00 A2 DA 98 9F 79 C0 01 A1 F4 04 62 2F D5 EC 6D | GUID диска. Содержит уникальный идентификатор, выданный диску и GPT-заголовку при разметке |
0x48 | 8 байт | 02 00 00 00 00 00 00 00 | Адрес начала таблицы разделов |
0x50 | 4 байта | 80 00 00 00 | Максимальное число разделов, которое может содержать таблица |
0x54 | 4 байта | 80 00 00 00 | Размер записи для раздела |
0x58 | 4 байта | 27 C3 F3 85 | Контрольная сумма таблицы разделов. Алгоритм контрольной суммы — CRC32 |
0x5C | 420 байт | 0 | Зарезервировано. Должно быть заполнено нулями |
Система UEFI проверяет корректность GPT-заголовка, используя контрольный суммы, вычисляемые по алгоритму CRC32. Если первичный заголовок поврежден, то проверяется контрольная сумма копии заголовка. Если контрольная сумма копии заголовка правильная, то эта копия используется для восстановления информации в первичном заголовке. Восстановление также происходит и в обратную сторону — если первичный заголовок корректный, а копия неверна, то копия восстанавливается по данным из первичного заголовка. Если же обе копии заголовка повреждены, то диск становится недоступным для работы.
У таблицы разделов дополнительно существует своя контрольная сумма, которая записывается в заголовке по смещению 0x58. При изменении данных в таблице разделов, эта сумма рассчитывается заново и обновляется в первичном заголовке и в его копии, а затем рассчитывается и обновляется контрольная сумма самих GPT-заголовков.
Таблица разделов диска
Следующей частью структуры GPT является собственно таблица разделов. В настоящее время операционные системы Windows и Linux используют одинаковый формат таблицы разделов — максимум 128 разделов, на каждую запись раздела выделяется по 128 байт, соответственно вся таблица разделов займет 128*128=16384 байт, или 32 сектора диска.