- Мобильные устройства изнутри. Что такое GPT?
- Что такое GPT?
- 1. Введение
- 2. Структура GPT
- 3. Что такое GPT-раздел типа Intel?
- 3.1. Структура заголовка нового GPT-раздела.
- 3.2. Структура записи описания нового GPT-раздела
- 4. Заключение
- Что выбрать GPT и MBR – какая технология лучше?
- МБР – что это
- Что такое GPT диск
- Как узнать стиль разделов — GPT или MBR
- Использование утилиты «Управление дисками»
- Использование командной строки
- Что выбрать: GPT или MBR
Мобильные устройства изнутри. Что такое GPT?
Что такое GPT?
1. Введение
Продолжаем рассматривать строение программной части (software) мобильных устройств (МУ). Сегодня поговорим об устройстве GPT-раздела памяти. Написать об этом меня побудила публикация Изучаем структуры MBR и GPT, вместо того, чтобы писать комментарии к ней. Я хотел бы не поругать или поправить автора, а дополнить вышеуказанную публикацию с уклоном в МУ.
Итак, GPT (GUID Partition Table) это:
- в первую очередь название схемы разметки памяти (GPT-схема) МУ ;
- затем уж название раздела памяти (GPT-раздел), где расположена физически эта схема;
- ну и также название файла-образа GPT-раздела памяти (GPT-файл).
Существует две схемы разметки памяти: MBR и GPT. Каждая схема содержится в отдельном разделе памяти, называемом, соответственно, MBR или GPT.
Как устроена MBR-схема разметки можно посмотреть в [1], а GPT это другой формат описания разметки памяти — GUID (GUID Partition Table). Он является частью EFI (Extensible Firmware Interface) — стандарта UEFI, используемого вместо BIOS для загрузки разделов памяти.
Переход на другой формат позволил устранить самый существенный недостаток MBR-формата — малое число разделов. Если в MBR помещалось только 4 записи с ограничением на длину раздела и его смещение из-за того, что эти параметры описывались 32-разрядными числами, то в GPT можно разместить 128 записей о разделах. Причем их параметры уже описываются в 64-разрядной системе счисления…
Для совместимости со старым стандартом загрузки (BIOS) и с целью защиты самой таблицы описания разделов памяти GPT-раздел тоже начинается с MBR, которая описывает всего один раздел — всю память МУ. Сама MBR называется теперь «защитной» (protective), т.е. PMBR. Она располагается тоже в первом секторе памяти по адресу 0х0000-0х01FF (512 байт). Поле Смещение указывает на начало заголовка GPT, а размер раздела устанавливается равным длине всей памяти устройства. Тип раздела имеет значение 0хEE (GPT-раздел).
Суть защиты GPT-раздела да и всей памяти МУ сводится к следующему. Если такой раздел откроет средство работы с MBR-схемой разметки, то оно увидит пустую неразмеченную память, состоящую только из раздела описания разметки. Соответственно, что-либо сделать с этой памятью ему не удасться.
Вот как выглядит PMBR, например, от МУ .
Рис.1 «Защитная» MBR, т.е. PMBR
По адресу 0х01FE видна сигнатура MBR (0xAA55).
Перейдем к рассмотрению непосредственно структуры GPT-раздела.
2. Структура GPT
GPT-раздел состоит из PMBR, заголовка и таблицы описания разделов памяти.
Сразу за PMBR, т.е. с адреса 0х0200, располагается заголовок GPT, имеющий длину 0х5С (92) байта, но занимающий весь сектор (512 байт). Вот как он выглядит в том же МУ:
Рис.2 Заголовок GPT
Он имеет следующую структуру:
Поле Magic содержит строка символов «EFI PART» — 45h 46h 49h 20h 50h 41h 52h 54h, которая выделена на рис.2 бирюзовым цветом и однозначно идентифицирует GPT-раздел.
Поле Revision, выделенное зеленым цветом, содержит номер версии структуры GPT-раздела (0х00010000). Например, для GPT версии 1.0 должно быть 00h 00h 01h 00h
Поле HeaderSize, выделенное оранжевым цветом, содержит размер заголовка, выраженный в байтах. Пока это 0х0000005Ch, что означает 92 байта.
Поле HeaderCRC32, выделенное розовым цветом, содержит контрольную сумму заголовка (0x09BE8E1F), расчитанную по алгоритму CRC32. При непосредственном выполнении расчета учитываются только 92 байта, а в это поле перед расчетом заносится 0.
Следующее поле Reserved1 никак не выделено, является резервным и содержит 0.
Поле MyLBA, выделенное темно-синим цветом, содержит смещение в блоках размещения первичного GPT-раздела (0х00000001).
Поле AlternateLBA содержит смещение в блоках размещения резервного GPT-раздела. Оно не указано.
Поле FirstUsableLBA, выделенное красным цветом, содержит смещение в блоках размещения первого разрешенного для использования сектора памяти (0х00000022). Расчитывается так: LBA последнего сектора, занятого первичным GPT-разделом, + 1.
Поле LastUsableLBA содержит смещение размещения последнего сектора памяти, разрешенного для использования. Расчитывается так: LBA первого сектора резервного GPT-раздела — 1. Оно не указано.
Поле DiskGUID, выделенное голубым цветом, содержит GUID прошивки.
Поле PartitionsLBA, выделенное красным цветом, содержит смещение начала GPT. В первичном всегда равен 2, а в резервном равен LastUsableLBA.
Поле NumberParts, выделенное ярко-зеленым цветом, содержит размер таблицы описания разделов, т.е. число записей о разделах (0х00000018).
Поле PartitionSize, выделенное розовым цветом, содержит размер одной записи о разделе в байтах. Согласно UEFI Specification размер записи фиксирован и составляет 128 байт или 0х00000080.
Поле PartitionsCRC, выделенное красным цветом, содержит контрольную сумму таблицы описания разделов (0x93D54D33), расчитанную по алгоритму CRC32. При выполнении расчета учитываются все байты, начиная с PartitionsLBA и до FirstUsableLBA.
Поле Reserved2 содержит резервное поле. Содержит 0 до конца сектора, т.е. 420 байт для сектора размером 512 байт.
Непосредственно сразу за заголовком, начиная с адреса 0х400, располагается таблица описания разделов, содержащая записи о каждом разделе памяти, включая и сам раздел разметки. Вот как она выглядит:
Рис.3 Таблица описания разделов
Каждая запись размером 128 байт имеет следующую структуру:
Поле PartitionTypeGUID, выделенное красным цветом, содержит GUID типа раздела, который определяет файловую систему, используемую для хранения данных в этом разделе. Каждая файловая система получает свой GUID, однозначно её идентифицирующий. Стандарт UEFI жестко определяет только следующие GUID типов разделов:
Поставщикам ОС (vendors) нужно генерировать свой собственный GUID типа раздела, чтобы идентифицировать их. Некоторые известные GUID можно посмотреть в [3].
При записи в память или в файл-образ значение GUID записывается в другом порядке. Например, GUID системного раздела EFI имеет следующий вид: C12A7328-F81F-11D2-BA4B-00A0C93EC93B. Порядок записи байтов в написаниях GUID является little-endian, причем задом наперед пишутся байты только в первых трех блоках. Для приведенного выше GUID запись в таблице разделов будет иметь такой вид:
Поле UniquePartitionGUID, выделенное синим цветом, содержит GUID раздела. Является уникальным идентификатором раздела, поэтому создается каждый раз, когда создается раздел.
Поле StartingLBA, выделенное зеленым цветом, содержит смещение в блоках на первый сектор раздела (0x00020000).
Поле EndingLBA, выделенное оранжевым цветом, содержит смещение на последний сектор раздела (0x0003FFFF). При этом размер раздела (PartitionSize) определяется по формуле
Поле Attributes, выделенное фиолетовымым цветом, содержит атрибуты (флаги) раздела. 8 байт (64 бита) флагов распределены следующим образом. Биты с 0 по 47 (48 шт.) отведены под общие атрибуты типов разделов, а остальные 16 битов (с 48 по 63) описывают конкретный раздел.
Вот небольшое описание этих битов:
Поле PartitionName, выделенное синим цветом, содержит метку раздела («modem»), содержащую строку текста с завершающим нулем числом не более 36 символов, выраженную в кодировке UTF-16LE.
Все, что такое GPT мы уже знаем, только это стандартная структура GPT-раздела. Оказывается, имеется и модификация…
Т.к. я обнаружил GPT-раздел другой структуры при работе с МУ на основе чипа Intel, то я и назвал ее GPT-раздел типа Intel.
3. Что такое GPT-раздел типа Intel?
Прошивка новых мобильных устройств (МУ) Lenovo, выполненных на основе чипов Intel, имеет Gpt-схему разметки памяти, но структура самого Gpt-файла отличается от стандартной, описанной в [1]. Это касается, например, устройств YOGA BOOK YB1-X90.
По сравнению со стандартной структурой Intel-тип сокращен до максимума:
- из заголовка убраны Guid, контрольные суммы, смещения всех разделов, кроме саамого первого и все стандартные значения или пустые, например, размер записи параметров раздела, размещение Primary и Backup таблиц;
- из описания параметров раздела удалены атрибуты, а смещения первого и последнего блока заменены на размер раздела.
Т.к. структура Gpt-файла этого типа отличается от стандартной структуры, то для его прошивки необходимо использовать специальный флешер фирмы Intel — PhoneFlashTool_5.3.2.0.
GPT-раздел, как и стандартный, состоит из:
- заголовка;
- таблицы описания параметров разделов.
Рис.4 Строение Gpt-файла Intel-типа
Рассмотрим строение заголовка.
3.1. Структура заголовка нового GPT-раздела.
Заголовок имеет размер всего 12 (0x0C) байт (против 512 в стандартном варианте):
Рис.5 Заголовок Gpt-файла Intel-типа
и содержит следующие поля:
Поле Magic, отмеченное синим цветом, содержит число 0х6А8В0DA1, идентифицирующее образ GPT-раздела Intel-типа.
Поле StartLba, отмеченное красным цветом, содержит значение смещения размещения первого раздела памяти.
Поле Number, отмеченное зеленым цветом, содержит общее число разделов памяти, т.е. число записей таблицы описания разделов. Сама таблица расположена сразу после заголовка.
3.2. Структура записи описания нового GPT-раздела
Таблица описания разделов содержит записи, содержащие параметры каждого раздела памяти. Число записей равно числу разделов, а окончание таблицы ничем не отмечается.
Каждая запись имеет размер 108 (0x6C) байт, тогда как по UEFI она содержала 128 байт. Вот как выглядит запись описания раздела нового формата:
Рис.6 Запись описания раздела
и содержит следующие поля, описывающие параметры раздела:
Поле Size, выделенное на рис.6 синим цветом, содержит размер раздела, выраженный в Мб (1024 * 1024 = 1048576 байт).
Поле Label, выделенное на рис.6 красным цветом, содержит метку раздела, т.е. имя раздела, выраженное в кодировке UTF-16.
Поле GuidType, выделенное на рис.6 зеленым цветом, содержит GUID типа раздела.
Поле GuidPartition, выделенное на рис.6 желтым цветом, содержит GUID самого раздела.
4. Заключение
Изучив строение GPT-раздела разметки памяти МУ, можно приступить и к практическим занятиям.
В следующих публикациях я поделюсь опытом переразметки памяти МУ, выполненного по GPT-схеме.
Источник
Что выбрать GPT и MBR – какая технология лучше?
Выбирать между GPT и MBR приходится многим пользователям в момент переустановки Windows. Кроме того, переход на более новую технологию обязательно выполняется, если размер накопителя превышает 2 ТБ. В материале ниже подробно расскажем о MBR, необходимости разработки нового стандарта GPT и критериях выбора стиля разделов при установке операционной системы.
МБР – что это
Чтобы вникнуть в суть вопроса, нужно понимать принцип загрузки ОС. Для запуска Windows компьютер должен прежде всего отыскать логический диск, где она расположена. Поиск операционной системы выполняется через BIOS при помощи MBR.
Расшифровывается аббревиатура как Master Boot Record или Главная загрузочная запись. Она представляет собой малый блок данных, размещенный в первом секторе накопителя информации. В стандартных условиях размер этого блока составляет не более 512 байт.
MBR ответственен за два действия:
- В нем содержится исполняемый код, с помощью которого BIOS может приступить к запуску ОС.
- Дает системе сведения о таблице разделов накопителя.
После нажатия на кнопку питания системного блока происходит следующая последовательность действий:
- Начинает работу BIOS – считывает основные параметры, в т.ч. определяет, какой диск рассматривать как загрузочный.
- BIOS передает управление блоку MBR. Содержащийся в нем код сканирует и проверяет таблицу разделов, которая находится в загрузочном секторе.
- Дальше управление переходит к загрузчику определенного раздела, в котором располагаются файлы Windows или другой операционной системы.
MBR применялся еще на заре создания компьютеров – в первых версиях DOS, разработанных в начале 1980-х годов. Технология отличается своей простотой и надежностью, совместима со всеми ОС. Тем не менее в ходе дальнейшего развития отрасли были выявлены и недостатки. Главным является невозможность работы с накопителями, объем которых превышает 2 ТБ. Второй минус – Master Boot Record не поддерживает наличие более 4-х разделов на одном накопителе.
Что такое GPT диск
Заявленные выше недостатки потребовали разработки концепции, которая бы устранила существующие ограничения. Ей стала технология GPT, расшифровывающаяся как GUID Partition Table. Новый формат таблицы разделов применяется только в загрузчике UEFI (замена BIOS на современных версиях материнских плат).
GPT аналогично MBR располагается в начале загрузочного раздела накопителя, только занимает не первый, а второй сектор. Первый резервируется для Master Boot Record, на случай необходимости получить совместимость с ранними версиями операционных систем.
Отличия структуры GUID Partition Table от MBR:
- Занимаемый объем таблицы не ограничивается сектором в 512 байт. Она может занимать до 16 КБ (32 сектора). Такая особенность обеспечивает возможность работы с накопителями гораздо большего размера – до 1 млрд терабайт.
- Информация о разделах таблицы находится в начале диска, но дополнительно дублируется в его конце. Это предоставляет возможность экстренного восстановления при повреждении накопителя.
Среди недостатков выделяется только несовместимость со старыми версиями операционных систем – они распознают GPT, но не могут загрузиться с ее помощью. Так, 32-х разрядные Windows работают с GUID Partition Table, начиная с версии Vista, а 64-х битные, начиная с Windows XP Professional.
Как узнать стиль разделов — GPT или MBR
Выяснить, какой стиль разделов имеют подключенные к компьютеру диски, можно двумя способами: через стандартное средство «Управление дисками» и командную строку.
Использование утилиты «Управление дисками»
Инструкция по работе с этим инструментом такова:
- Нажать на клавиатуре сочетание Win+R.
- Откроется окно «Выполнить». В пустую строку вписать команду diskmgmt.msc.
Запустится нужный инструмент. В нижней части окна следует кликнуть по номеру диска правой кнопкой и выбрать «Свойства».
- Если есть надпись «Таблица с GUID разделов» — это GPT.
- Если стоит «Основная загрузочная запись» — MBR.
Конвертация MBR в GPT при установке Windows 10 влечет за собой потерю данных на диске. О совместимости ОС и таблицы разделов следует позаботиться заранее. Выполнить процедуру без потери данных помогут специальные программы, например, Minitool Partition Wizard.
Использование командной строки
Методика интересна тем, что позволяет посмотреть стиль разделов даже во время установки Windows (для открытия командной строки нужно на этапе выбора диска для установки ОС нажать на клавиатуре Shift+F10).
В условиях работы операционной системы, командная строка запускается путем вызова окна «Выполнить» (Win+R) с последующим вводом «cmd.exe» и нажатием Enter. Способ универсальный и подходит для всех версий Windows. Дальнейшие действия пользователя:
- Ввести команду «diskpart».
Откроется дополнительное окно. В нем вставить текст «list disk».
Отобразится список дисков, подключенных к ПК. Если справа от строки с информацией о накопителе стоит звездочка, используется стиль GPT. Если звездочки нет – MBR.
Один из столбцов таблицы имеет подпись «GPT», пускай вас это не сбивает с толку – она будет находиться там в обоих случаях.
Что выбрать: GPT или MBR
Выбор между двумя озвученными технологиями стоит проводить, основываясь на следующих факторах:
- версия операционной системы, которую предполагается устанавливать на диск;
- объем используемого накопителя;
- наличие UEFI на материнской плате.
Если на компьютере имеется классическая версия BIOS, то выбирать нужно MBR, поскольку Windows просто не сможет загрузиться. Master Boot Record также следует предпочесть при установке Windows XP и более ранних версий.
На системном блоке с UEFI и большим объемом накопителей однозначно потребуется провести конвертацию в GPT. К тому же эта процедура дает возможность провести восстановление данных из резервной копии.
С появлением твердотельных накопителей, пользователи часто задаются вопросом, что лучше для SSD – GPT или MBR. Для диска нет разницы, какой стиль таблиц будет применен. Выбор никак не повлияет на скорость его работы или общий срок эксплуатации. Обращать внимание нужно только на указанные выше факторы.
Источник