48 bit lba что это

Стандарт IDE включал 22-битный LBA в качестве опции, который был расширен до 28-битного с выпуском ATA-1 (1994) и до 48-битного с выпуском ATA-6 (2003), тогда как размер записи в структурах данных на диске и в памяти, содержащие адрес, обычно имеют размер 32 или 64 бита. Большинство жестких дисков, выпущенных после 1996 года, реализуют адресацию логических блоков.

СОДЕРЖАНИЕ

Обзор

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

LBA была впервые представлена ​​в SCSI как абстракция. Хотя контроллер диска по-прежнему обращается к блокам данных по их адресу CHS, эта информация обычно не используется драйвером устройства SCSI, ОС, кодом файловой системы или любыми приложениями (такими как базы данных), которые обращаются к «необработанному» диску. Системные вызовы, требующие ввода-вывода на уровне блоков, передают определения LBA драйверу устройства хранения; в простых случаях (когда один том отображается на один физический диск) этот LBA затем передается непосредственно контроллеру диска.

Усовершенствованный BIOS

Более ранний стандарт IDE от Western Digital представил 22-битный LBA; в 1994 году стандарт ATA-1 позволял использовать 28-битные адреса в режимах LBA и CHS. Схема CHS использовала 16 бит для цилиндра, 4 бита для головы и 8 бит для сектора, подсчет секторов от 1 до 255. Это означает, что сообщаемое количество головок никогда не превышает 16 (0–15), количество секторов может быть 255 ( 1–255; хотя чаще всего используется 63), а количество цилиндров может достигать 65 536 (0–65535), что ограничивает размер диска 128 ГиБ (≈137,4 ГБ), предполагая 512-байтовые сектора. К этим значениям можно получить доступ, выполнив команду ATA «Идентифицировать устройство» ( EC h) для привода.

48 bit lba что это

LBA-перевод

Когда BIOS настроен на использование диска в режиме трансляции с помощью LBA, BIOS обращается к оборудованию в режиме LBA, но также представляет преобразованную геометрию CHS через интерфейс INT 13h. Количество цилиндров, головок и секторов в преобразованной геометрии зависит от общего размера диска, как показано в следующей таблице.

Размер дискаСекторы / трекГоловыЦилиндров
16316Х ÷ (63 × 16 × 512)
504 МБ6332Х ÷ (63 × 32 × 512)
1008 МБ6364Х ÷ (63 × 64 × 512)
2016 МиБ63128X ÷ (63 × 128 × 512)
4032 МБ63255X ÷ (63 × 255 × 512)

LBA48

Преобразование CHS

Эквивалентность LBA и CHS с 16 головками на цилиндр

Значение LBAКортеж CHS
00, 0, 1
10, 0, 2
20, 0, 3
620, 0, 63
630, 1, 1
9450, 15, 1
10070, 15, 63
10081, 0, 1
10701, 0, 63
10711, 1, 1
11331, 1, 63
11341, 2, 1
2015 г.1, 15, 63
2016 г.2, 0, 1
16 12715, 15, 63
16 12816, 0, 1
32 25531, 15, 63
32 25632, 0, 1
16 450 55916319, 15, 63
16 514 06316382, 15, 63

В схеме адресации LBA секторы нумеруются как целочисленные индексы; при сопоставлении с кортежами CHS ( сектор головки блока цилиндров ) нумерация LBA начинается с первого цилиндра, первой головки и первого сектора дорожки. Как только гусеница исчерпана, нумерация продолжается до второй головки, оставаясь внутри первого цилиндра. Когда все головки внутри первого цилиндра исчерпаны, нумерация продолжается со второго цилиндра и т. Д. Таким образом, чем ниже значение LBA, тем ближе физический сектор к первому (то есть самому внешнему) цилиндру жесткого диска.

Кортежи CHS могут быть сопоставлены с адресом LBA по следующей формуле:

Согласно спецификациям ATA, «Если содержание слов (61:60) больше или равно 16 514 064, то содержание слова 1 [количество логических цилиндров] должно быть равно 16 383». Следовательно, для LBA 16450559 диск ATA может фактически ответить кортежем CHS (16319, 15, 63), и количество цилиндров в этой схеме должно быть намного больше 1024, разрешенного INT 13h.

Зависимости от операционной системы

Источник

48 bit lba что это

После подключения накопителей к системной плате нужно правильно выставить их параметры в BIOS. По традиции они сосредоточены в разделе Standard CMOS Features (Main для версий BIOS с горизонтальной строкой меню). Для настройки каждого из IDE-устройств обычно предназначено отдельное подменю со сле­дующими названиями:

В некоторых версиях BIOS эти параметры могут иметь другие названия, например: IDE Channel 0 Master, IDE Channel 0 Slave, IDE Channel 1 Master и IDE Channel 1 Slave. Иногда эти параметры сосредоточены в отдельном подменю, которое может называться IDE Devices, Hard Disks или как-нибудь иначе.

Для накопителей SATA в разделе Standard CMOS Features (Main) могут присутствовать несколько подменю с именами SATA ½/¾,SATA Channel ½/¾ или аналогичными. Иногда также можно встретить версии BIOS, где SATA-устрой- ства именуются но традиции IDE-устройствамн. Перечень параметров для устройств SATA практически не отличается от параметров IDE-устройств, однако почти все они недоступны для редактирования, поскольку эти накопители настраиваются автоматически.

Все устройства имеют идентичный набор параметров, поэтому далее рассмотрим настройку только одного из них, например подключенного к каналу IDE Primary Master.

Обратите внимание, что параметры IDE-устройств могут отсутствовать или быть недоступными, если в разделе Integrated Peripherals отключены один или оба IDE-канала.

48 bit lba что это

IDE HDD Auto-Detection

После выбора этого параметра и нажатия Enter запустится процедура автоматического определения устройства, подключенного к данному каналу. После ее успешного выполнения будут автоматически установлены значения параметров Cylinder, Head, Sector, Capacity и некоторых других в соответствии с обнаруженным устройством.

Большинство HDD поддерживают функцию автоопределения; исключение составляют лишь некоторые модели очень старых жестких дисков, для них значения параметров Cylinder, Head и Sector нужно вводить вручную.

HDD определяется некорректно или не определяется вообще из-за нескольких причин.

1. Неправильно установлены перемычки или неверно подключены шлейфы. Если два устройства расположены на одном шлейфе, попробуйте подсоединять их и настраивать по очереди.

2. Более новый жесткий диск не поддерживается устаревшей системной платой. Довольно распространенная проблема, которая возникает при попытке подключить диск с объемом, превышающим максимально возможное значение для данной версии BIOS. Впервые такая проблема возникла еще в 1990-х с появлением жестких дисков размером более 504 Мбайт, которые не поддерживались имеющимися на тот момент версиями BIOS. Задачу решили, выпустив новые версии, но у них были свои пределы емкости: 2,8,32, 137 Гбайт — а производители жестких дисков очень быстро достигали, казалось бы, невероятных размеров накопителей. Так, для подключения IDE-дисков размером более 137 Гбайт к старым системным платам нужна поддержка режима 48-битной адресации LBA (см. описание параметра Mode ниже).

Чтобы выйти из этой ситуаций, можно попытаться обновить имеющуюся версию BIOS, если обновление есть на сайте производителя системной платы. Другой способ — использовать жесткий диск не на полную емкость с теми параметрами, которые были определены вашей версией BIOS, однако такой способ не всегда гарантирует полную совместимость. Для корректной работы HDD в режиме неполной емкости в некоторых моделях предусмотрены перемычки, ограничивающие объем.

3. Жесткий диск или контроллер на системной плате неисправен. Чтобы диагностировать подобную ситуацию, обычно подключают к проблемному IDE-кана- лу заведомо исправный жесткий диск или же проблемное устройство — к другой, заведомо исправной, системной плате.

Type, IDE Primary Master

Параметр определяет тип устройства, подключенного к данному каналу. Возможно несколько основных значений.

1. Auto. Тип подключенного устройства будет автоматически определяться при каждой загрузке компьютера. Практически все современные устройства опознаются безошибочно, и это значение всегда рекомендуется производителями системных плат. Единственный его недостаток — несколько увеличенное время загрузки компьютера.

В некоторых версиях BIOS процедуру автоматического определения можно запустить принудительно с помощью описанного выше параметра IDE HDD Auto-Detection, там же были подробно описаны проблемы, возникающие при определении жестких дисков.

2. Manual (User), Выбрав этот тип, параметры подключенного устройства нужно задать вручную. Обычно достаточно ввести количество головок диска (Head), количество дорожек, или цилиндров, (Cylinder) для каждой головки и количество секторов на дорожке (Sector). Этот тип обычно применяется при подключении очень старых жестких дисков, не поддерживающих автоматическое определение.

Установив значение Manual для жесткого диска, поддерживающего автоопределение, иногда можно сэкономить несколько долей секунды при загрузке компьютера. В этом случае обычно удается избежать ручного ввода параметров: сначала выполняется автоматическое определение, а затем выбирается Manual. Если такой трюк не прошел, придется вводить все параметры диска вручную или же оставить значение Auto.

3. CDROM/DVD. Значение устанавливается, когда к каналу подключено устройство для чтения и/или записи CD или DVD. Если это значение отсутствует в списке доступных параметров, выбирайте для подобных накопителей значение Auto, хотя вполне допустимо и None.

4. LS-120, ZIP-100, МО, JAZ (JAZ2) — служат для подключения устаревших устройств со сменными носителями, которые должны были прийти на место
дискет, но уступили в конкурентной борьбе записывающим CD/DVD-приводам и устройствам flash-памяти,

5. None. Значение устанавливается, если на данном канале нет подключенных устройств. При этом компьютер будет загружаться быстрее, поскольку не тратится лишнее время на поиск отсутствующих накопителей. Значение None также рекомендуется, если подключаются нестандартные устройства, не поддерживаемые данной версией BIOS. В этом случае они будут доступны только после установки соответствующих драйверов. Следует отметить, что большинство современных версий BIOS при выборе значения None успешно справляются с определением приводов для CD, DVD и некоторых других устройств.

Если значение None выбирается для второго или третьего жесткого диска, в большинстве случаев они все равно будут распознаны операционной системой Windows, однако распределение букв для логических дисков такого накопителя может отличаться от общепринятого.

Mode, Access Mode, LBA Mode

Параметр определяет режим доступа к данным на диске и актуален лишь для старых жестких дисков. Практически все HDD от 1 Гбайт и более будут нормально работать при значении Auto, а при необходимости подключить и настроить старый диск, возможно, понадобится разобраться с секторами, головками и др. Есть несколько основных значений этого параметра.

1. Auto. Режим доступа определяется автоматически. Это значение устанавливается по умолчанию и рекомендуется для всех современных жестких дисков.

2. Normal (CHS). Этот вариант используется только для старых дисков размером менее 504 Мбайт, в которых применяется режим непосредственной адресации секторов. В этом режиме количество доступных головок (Head), цилиндров (Cylinder) и секторов (Sector) ограничено значениями 1024/16/63, что соответствует объему в 504 Мбайт.

3. LBA (Logical Block Addressing). Режим логической адресации секторов, который используется во всех жестких дисках объемом более 1 Гбайт. Именно этот режим устанавливается для большинства накопителей при выборе значения Auto.

Для дисков размером более 137 Гбайт используется вариант этого режима с 48-битной адресацией секторов (BigLBA). Для полного использования дисков размером более 137 Гбайт 48-битная адресация LBA должна поддерживаться как BIOS, так, операционной системой. 48-битная адресация доступна в Windows 2000 SP4, Windows ХР SP1/SP2, Windows 2003/Vista.

Если BigLBA поддерживается BIOS, можно добиться этого и в системах семейства Windows 98/Ме, но с использованием дополнительных утилит, например Intel Application Accelerator для плат с чипсетами Intel. Об обновлениях BIOS и других утилитах для вашей системной платы можно узнать на сайте ее производителя.

4. Large. Еще один способ логической адресации блоков, который не получил распространения и применялся лишь в некоторых моделях жестких дисков размером до 1 Гбайт, fie поддерживающих LBA.

5. МРТ. Редко используемое значение, применяющееся для дисков с неизвестным методом трансляции.

В некоторых версиях BIOS вариант доступа определяется в параметре LBA Mode со следующими значениями.

6. Auto. Режим LBA включен; возможен также автоматический переход в режим Large, если есть соответствующий диск.

7. Disabled. Режим LBA отключен, а для доступа к диску используется Normal/ CHS.

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

Геометрия жесткого диска характеризуется следующими параметрами.

Capacity = Head * Cylinder * Sector * 512.

5. Precomp, WPCOMP — устаревший параметр, определяющий номер цилиндра, с которого будет выполняться более плотная запись данных на диск. Не используется для HDD с режимом LBA, да и для многих старых дисков с режимом Normal его не нужно устанавливать.

6. Landing Zone, LZONE — еще один устаревший параметр, указывающий номер дорожки, на которую должны переместиться головки перед остановкой жесткого диска (дорожки для парковки). Практически все HDD стандарта IDE паркуются автоматически независимо от значения рассматриваемого параметра.

Геометрические параметры жесткого диска обычно определяются автоматически и недоступны для редактирования. Как уже отмечалось, ручной ввод этих параметров может понадобиться только для очень старых дисков с режимом доступа Normal и только для таких дисков значения будут соответствовать их физическому устройству. Для HDD, использующих LBA, эти параметры условны, но они необходимы, чтобы правильно организовать доступ к данным.

Extended IDE Drive

Параметр позволяет включать или отключать автоматическое определение устройств на выбранном SATA-канале. Рассмотрим возможные значения.

1. Auto — параметры устройства определяются автоматически, это значение следует установить при подключении к данному каналу жесткого диска.

2. None — автоопределение устройств не выполняется. Установка этого значения при отсутствии накопителя на данном канате может ускорить загрузку на несколько долей секунды. Значение None также может помочь избавиться от проблем в работе некоторых моделей DVD-приводов, подключенных к данному каналу.
Настройка работы IDE-контроллера

В некоторых современных версиях BIOS можно встретить и другие параметры настройки накопителей:

Источник

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

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

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

Структура MBR

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

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

48 bit lba что это

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

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

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

48 bit lba что это

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

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

48 bit lba что это

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

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

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

48 bit lba что это

Для первой записи таблицы разделов 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 не будет опубликован. Обязательные поля помечены *