что такое таблица с guid разделов

Несмотря на все очевидные преимущества GPT, основной причиной разработки стандарта явилась острая необходимость преодолеть ограничения, накладываемые традиционной таблицей разделов (размещается внутри MBR), которая не предоставляла возможности создавать разделы размером более 2-х терабайт и/или размещать их произвольным образом по смещению более 2-х терабайт от начала диска.

К преимуществам GPT относятся:

Теперь мы можем приступить к более детальному рассмотрению структуры диска при использовании стандарта GPT и для начала я приведу наглядное графическое представление структуры GPT диска, в котором описаны все основные блоки стандарта:

что такое таблица с guid разделов. gpt. что такое таблица с guid разделов фото. что такое таблица с guid разделов-gpt. картинка что такое таблица с guid разделов. картинка gpt. Несмотря на все очевидные преимущества GPT, основной причиной разработки стандарта явилась острая необходимость преодолеть ограничения, накладываемые традиционной таблицей разделов (размещается внутри MBR), которая не предоставляла возможности создавать разделы размером более 2-х терабайт и/или размещать их произвольным образом по смещению более 2-х терабайт от начала диска.

Логика работы GPT

Защитный (Protective) MBR

Заголовок (оглавление) GPT

Заголовок GPT содержится в блоке (секторе) LBA1, втором логическом блоке носителя. Имеет свою копию в конце диска.
Давайте разберем, какие же поля присутствуют в заголовке GPT:

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

В 64-битных ОС Windows, таблица разделов, обычно, начинается с блока LBA2 и имеет размер 16384 байта. По спецификации, после «заголовка GPT» должно быть зарезервировано минимум 16384 байта под таблицу разделов GPT. При стандартном размере сектора в 512 байт, это будет 32 сектора.
Фактически, представляет из себя подобие массива идущих друг за другом записей о разделах, каждая из которых равна 128 байтам. Имеет свою копию в конце диска.

Как можно увидеть, размер каждой записи таблицы разделов равен 128 байтам. С другой стороны, никто не мешает расширять размер записи таблицы разделов до требуемых значений. По факту, имеем масштабируемость дисковой разметки.
Атрибуты раздела GPT имеют достаточно большую размерность: 8 байт (64 бита). Каждый раздел имеет независимые атрибуты.

БитОписание
0Бит системного раздела. Признак важности, необходимости. Установленный бит предписывает всем программам работы с диском сохранять раздел в неизменном виде, то есть не модифицировать и не удалять его. Установленным битом создатель как бы говорит, что удаление или модификация содержимого раздела может повлечь за собой потерю функционала стадии загрузки или функционирования. Практическое применение?
1Бит игнорирования. Когда этот бит установлен, UEFI должна игнорировать содержимое раздела и не пытаться производить чтение с него? Для этого раздела не выполняется процедура сопоставления с файловой системой.
2Стандартный загрузочный раздел для legacy BIOS. Используется вариантами UEFI прошивок, которые содержат код поддержки традиционного BIOS, сообщает подобным прошивкам, что раздел может быть загрузочным. Классические UEFI должны игнорировать этот бит. Эквивалент старшего бита (7) в байте индекса диска (смещение 00h) в записи раздела классического MBR.
3–47Зарезервировано для будущего использования; Биты заполняются нулями.
48–63Произвольные биты. Зарезервированы для использования некоторыми видами разделов различных производителей. Используются для нужд разработчиков.

Для полноты картины представления, приведем таблицу типов (PartitionTypeGUID) разделов. Обратите внимание на то, что порядок записи байтов GUID соответствует «от младшего к старшему» (little-endian) в старших трех октетах идентификатора. К примеру, GUID раздела MSR записывается как E3C9E316-0B5C-4DB8-817D-F92DF00215AE, что соответствует последовательности байт: 16 E3 C9 E3 5C 0B 4D B8 81 7D F9 2D F0 02 15 AE.

СистемаТип разделаИдентификатор (GUID)
(Нет)Неиспользуемое значение00000000-0000-0000-0000-000000000000
Схема разделов MBR024DEE41-33E7-11D3-9D69-0008C781F39F
EFI System partitionC12A7328-F81F-11D2-BA4B-00A0C93EC93B
BIOS Boot partition21686148-6449-6E6F-744E-656564454649
Intel Fast Flash (iFFS) partitionD3BFE2DE-3DAF-11DF-BA40-E3A556D89593
Sony boot partitionF4019732-066E-4E12-8273-346C5641494F
Lenovo boot partitionBFBFAFE7-A34F-448A-9A5B-6213EB736C22
WindowsMicrosoft Reserved Partition (MSR)E3C9E316-0B5C-4DB8-817D-F92DF00215AE
Basic data partitionEBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Logical Disk Manager metadata partition5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
Logical Disk Manager data partitionAF9B60A0-1431-4F62-BC68-3311714A69AD
Windows Recovery EnvironmentDE94BBA4-06D1-4D40-A16A-BFD50179D6AC
IBM General Parallel File System (GPFS) partition37AFFC90-EF7D-4E96-91C3-2D7AE055B174
Storage Spaces partitionE75CAF8F-F680-4CEE-AFA3-B001E56EFC2D
HP-UXData partition75894C1E-3AEB-11D3-B7C1-7B03A0000000
Service PartitionE2A1E728-32E3-11D6-A682-7B03A0000000
LinuxLinux filesystem data0FC63DAF-8483-4772-8E79-3D69D8477DE4
RAID partitionA19D880F-05FC-4D3B-A006-743F0F84911E
Swap partition0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
Logical Volume Manager (LVM) partitionE6D6D379-F507-44C2-A23C-238F2A3DF928
/home partition933AC7E1-2EB4-4F13-B844-0E14E2AEF915
/srv (server data) partition3B8F8425-20E0-4F3B-907F-1A25A76F98E8
Plain partition7FFEC5C9-2D00-49B7-8941-3EA10A5586B7
Linux Unified Key Setup (LUKS) partitionCA7D7CCB-63ED-4C53-861C-1742536059CC
Reserved8DA63339-0007-60C0-C436-083AC8230908
FreeBSDBoot partition83BD6B9D-7F41-11DC-BE0B-001560B84F0F
Data partition516E7CB4-6ECF-11D6-8FF8-00022D09712B
Swap partition516E7CB5-6ECF-11D6-8FF8-00022D09712B
Unix File System (UFS) partition516E7CB6-6ECF-11D6-8FF8-00022D09712B
Vinum volume manager partition516E7CB8-6ECF-11D6-8FF8-00022D09712B
ZFS partition516E7CBA-6ECF-11D6-8FF8-00022D09712B
Mac OS XHierarchical File System Plus (HFS+) partition48465300-0000-11AA-AA11-00306543ECAC
Apple UFS55465300-0000-11AA-AA11-00306543ECAC
ZFS6A898CC3-1DD2-11B2-99A6-080020736631
Apple RAID partition52414944-0000-11AA-AA11-00306543ECAC
Apple RAID partition, offline52414944-5F4F-11AA-AA11-00306543ECAC
Apple Boot partition426F6F74-0000-11AA-AA11-00306543ECAC
Apple Label4C616265-6C00-11AA-AA11-00306543ECAC
Apple TV Recovery partition5265636F-7665-11AA-AA11-00306543ECAC
Apple Core Storage (i.e. Lion FileVault) partition53746F72-6167-11AA-AA11-00306543ECAC
SolarisBoot partition6A82CB45-1DD2-11B2-99A6-080020736631
Root partition6A85CF4D-1DD2-11B2-99A6-080020736631
Swap partition6A87C46F-1DD2-11B2-99A6-080020736631
Backup partition6A8B642B-1DD2-11B2-99A6-080020736631
/usr partition6A898CC3-1DD2-11B2-99A6-080020736631
/var partition6A8EF2E9-1DD2-11B2-99A6-080020736631
/home partition6A90BA39-1DD2-11B2-99A6-080020736631
Alternate sector6A9283A5-1DD2-11B2-99A6-080020736631
Reserved partition6A945A3B-1DD2-11B2-99A6-080020736631
6A9630D1-1DD2-11B2-99A6-080020736631
6A980767-1DD2-11B2-99A6-080020736631
6A96237F-1DD2-11B2-99A6-080020736631
6A8D2AC7-1DD2-11B2-99A6-080020736631
NetBSDSwap partition49F48D32-B10E-11DC-B99B-0019D1879648
FFS partition49F48D5A-B10E-11DC-B99B-0019D1879648
LFS partition49F48D82-B10E-11DC-B99B-0019D1879648
RAID partition49F48DAA-B10E-11DC-B99B-0019D1879648
Concatenated partition2DB519C4-B10F-11DC-B99B-0019D1879648
Encrypted partition2DB519EC-B10F-11DC-B99B-0019D1879648
ChromeOSChromeOS kernelFE3A2A5D-4F32-41A7-B725-ACCC3285A309
ChromeOS rootfs3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
ChromeOS future use2E0A753D-9E48-43B0-8337-B15192CB1B5E
HaikuHaiku BFS42465331-3BA3-10F1-802A-4861696B7521
MidnightBSDBoot partition85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7
Data partition85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7
Swap partition85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7
Unix File System (UFS) partition0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7
Vinum volume manager partition85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7
ZFS partition85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7
CephCeph JournalBFBFAFE7-A34F-448A-9A5B-6213EB736C22
Ceph Encrypted Journal45B0969E-9B03-4F30-B4C6-5EC00CEFF106
Ceph OSD4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D
Ceph OSD4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D
Ceph disk in creation89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE
Ceph disk in creation89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE

Разделы GPT

А тут у нас располагаются разделы GPT. Данные, находящиеся на разделах, размещаются начиная с блока LBA34. Разделы идут друг за другом практически до самого конца диска, то есть ровно до блоков, занятых копиями таблицы разделов GPT и заголовка GPT.

Копия таблицы разделов GPT

Копия заголовка (оглавления) GPT

Источник

Изучаем структуры MBR и GPT

Для работы с жестким диском его для начала необходимо как-то разметить, чтобы операционная система могла понять в какие области диска можно записывать информацию. Поскольку жесткие диски имеют большой объем, их пространство обычно разбивают на несколько частей — разделов диска. Каждому такому разделу может быть присвоена своя буква логического диска (для систем семейства Windows) и работать с ним можно, как будто это независимый диск в системе.

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

Структура MBR

До недавнего времени структура MBR использовалась на всех персональных компьютерах для того, чтобы можно было разделить один большой физический жесткий диск (HDD) на несколько логических частей — разделы диска (partition). В настоящее время MBR активно вытесняется новой структурой разделения дисков на разделы — GPT (GUID Partition Table). Однако MBR используется еще довольно широко, так что посмотрим что она из себя представляет.

MBR всегда находится в первом секторе жесткого диска. При загрузке компьютера, BIOS считывает этот сектор с диска в память по адресу 0000:7C00h и передает ему управление.

что такое таблица с guid разделов. image loader. что такое таблица с guid разделов фото. что такое таблица с guid разделов-image loader. картинка что такое таблица с guid разделов. картинка image loader. Несмотря на все очевидные преимущества GPT, основной причиной разработки стандарта явилась острая необходимость преодолеть ограничения, накладываемые традиционной таблицей разделов (размещается внутри MBR), которая не предоставляла возможности создавать разделы размером более 2-х терабайт и/или размещать их произвольным образом по смещению более 2-х терабайт от начала диска.

Итак, первая секция структуры MBR — это секция с исполняемым кодом, который и будет руководить дальнейшей загрузкой. Размер этой секции может быть максимум 440 байт. Далее идут 4 байта, отведенные на идентификацию диска. В операционных системах, где идентификация не используется, это место может занимать исполняемый код. То же самое касается и последующих 2 байт.

Начиная со смещения 01BEh находится сама таблица разделов жесткого диска. Таблица состоит из 4 записей (по одной на каждый возможный раздел диска) размером 16 байт.

Структура записи для одного раздела:

что такое таблица с guid разделов. image loader. что такое таблица с guid разделов фото. что такое таблица с guid разделов-image loader. картинка что такое таблица с guid разделов. картинка image loader. Несмотря на все очевидные преимущества GPT, основной причиной разработки стандарта явилась острая необходимость преодолеть ограничения, накладываемые традиционной таблицей разделов (размещается внутри MBR), которая не предоставляла возможности создавать разделы размером более 2-х терабайт и/или размещать их произвольным образом по смещению более 2-х терабайт от начала диска.

Первым байтом в этой структуре является признак активности раздела. Этот признак определяет с какого раздела следует продолжить загрузку. Может быть только один активный раздел, иначе загрузка продолжена не будет.

Следующие три байта — это так называемые 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 должна быть заполнена нулями.

что такое таблица с guid разделов. image loader. что такое таблица с guid разделов фото. что такое таблица с guid разделов-image loader. картинка что такое таблица с guid разделов. картинка image loader. Несмотря на все очевидные преимущества GPT, основной причиной разработки стандарта явилась острая необходимость преодолеть ограничения, накладываемые традиционной таблицей разделов (размещается внутри MBR), которая не предоставляла возможности создавать разделы размером более 2-х терабайт и/или размещать их произвольным образом по смещению более 2-х терабайт от начала диска.

Формат записей разделов в EBR аналогичен формату записи в структуре MBR, однако логически немного отличается.

Признак активности раздела для разделов структуры EBR всегда будет 0, так как загрузка осуществлялась только с основных разделов диска. Координаты CHS, с которых начинается раздел используются, если не задействована LBA-адресация, также как и в структуре MBR.

А вот поля, где в режиме LBA-адресации должны находиться номер начального сектора и количество секторов раздела, в структуре EBR используются несколько иначе.

что такое таблица с guid разделов. image loader. что такое таблица с guid разделов фото. что такое таблица с guid разделов-image loader. картинка что такое таблица с guid разделов. картинка image loader. Несмотря на все очевидные преимущества GPT, основной причиной разработки стандарта явилась острая необходимость преодолеть ограничения, накладываемые традиционной таблицей разделов (размещается внутри MBR), которая не предоставляла возможности создавать разделы размером более 2-х терабайт и/или размещать их произвольным образом по смещению более 2-х терабайт от начала диска.

Для первой записи таблицы разделов 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-заголовка:

Смещение (байт)Размер поля (байт)Пример заполненияНазвание и описание поля
0x008 байт45 46 49 20 50 41 52 54Сигнатура заголовка. Используется для идентификации всех EFI-совместимых GPT-заголовков. Должно содержать значение 45 46 49 20 50 41 52 54, что в виде текста расшифровывается как «EFI PART».
0x084 байта00 00 01 00Версия формата заголовка (не спецификации UEFI). Сейчас используется версия заголовка 1.0
0x0C4 байта5C 00 00 00Размер заголовка GPT в байтах. Имеет значение 0x5C (92 байта)
0x104 байта27 6D 9F C9Контрольная сумма GPT-заголовка (по адресам от 0x00 до 0x5C). Алгоритм контрольной суммы — CRC32. При подсчёте контрольной суммы начальное значение этого поля принимается равным нулю.
0x144 байта00 00 00 00Зарезервировано. Должно иметь значение 0
0x188 байт01 00 00 00 00 00 00 00Адрес сектора, содержащего первичный GPT-заголовок. Всегда имеет значение LBA 1.
0x208 байт37 C8 11 01 00 00 00 00Адрес сектора, содержащего копию GPT-заголовка. Всегда имеет значение адреса последнего сектора на диске.
0x288 байт22 00 00 00 00 00 00 00Адрес сектора с которого начинаются разделы на диске. Иными словами — адрес первого раздела диска
0x308 байт17 C8 11 01 00 00 00 00Адрес последнего сектора диска, отведенного под разделы
0x3816 байт00 A2 DA 98 9F 79 C0 01 A1 F4 04 62 2F D5 EC 6DGUID диска. Содержит уникальный идентификатор, выданный диску и GPT-заголовку при разметке
0x488 байт02 00 00 00 00 00 00 00Адрес начала таблицы разделов
0x504 байта80 00 00 00Максимальное число разделов, которое может содержать таблица
0x544 байта80 00 00 00Размер записи для раздела
0x584 байта27 C3 F3 85Контрольная сумма таблицы разделов. Алгоритм контрольной суммы — CRC32
0x5C420 байт0Зарезервировано. Должно быть заполнено нулями

Система UEFI проверяет корректность GPT-заголовка, используя контрольный суммы, вычисляемые по алгоритму CRC32. Если первичный заголовок поврежден, то проверяется контрольная сумма копии заголовка. Если контрольная сумма копии заголовка правильная, то эта копия используется для восстановления информации в первичном заголовке. Восстановление также происходит и в обратную сторону — если первичный заголовок корректный, а копия неверна, то копия восстанавливается по данным из первичного заголовка. Если же обе копии заголовка повреждены, то диск становится недоступным для работы.

У таблицы разделов дополнительно существует своя контрольная сумма, которая записывается в заголовке по смещению 0x58. При изменении данных в таблице разделов, эта сумма рассчитывается заново и обновляется в первичном заголовке и в его копии, а затем рассчитывается и обновляется контрольная сумма самих GPT-заголовков.

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

Следующей частью структуры GPT является собственно таблица разделов. В настоящее время операционные системы Windows и Linux используют одинаковый формат таблицы разделов — максимум 128 разделов, на каждую запись раздела выделяется по 128 байт, соответственно вся таблица разделов займет 128*128=16384 байт, или 32 сектора диска.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *