Что такое GPT и как работает GUID
В современном мире хранения данных важной частью является правильное структурирование разделов на дисках. Одной из технологий, которая обеспечивает такую структуру, является GPT (GUID Partition Table). Этот стандарт позволяет более эффективно управлять разделами, чем старый MBR (Master Boot Record). В этой статье мы обсудим, как работает GUID, его назначение и кто управляет типами GUID.
Основы работы с GPT
Мой опыт использования диска с GPT показывает, что на нем всего лишь один раздел в формате EXT4. При этом первый 16-байтовый блок по стандарту UEFI (Unified Extensible Firmware Interface) зарезервирован для GPT Partition Entry Array. Это пространство предназначено для хранения Partition Type GUID, который служит для определения типа раздела.
Недавно я извлек Partition Type GUID и обратил внимание, что полученное значение — af3dc60f838472478e793d69d8477de4
— не соответствует никакому известному типу. Это навело меня на вопрос: кто решает, какой GUID использовать и как он определяется?
Исправление ошибок: порядок байтов
Важно понимать, что GUID, который вы получаете, может выглядеть немного иначе. Например, порядок байтов, который хранится на диске, может отличаться от стандартного текстового представления. Это происходит по историческим причинам: структура GUID состоит из нескольких отдельных полей, строки байтов и целые числа хранятся в разном порядке.
Существует два термина, которые могут использоваться в контексте GUID — это "GUID" и "UUID". GUID чаще всего относится к формату, принятому Microsoft, тогда как UUID применяется для линейного представления 1:1.
Как выяснилось, мой полученный строковый байт af3dc60f838472478e793d69d8477de4
соответствует GUID {0fc63daf-8483-4772-8e79-3d69d8477de4}
, который обозначает "Linux файловая система". Первые три поля представляют собой байты, так как изначально они были частью временной метки.
import uuid
print(uuid.UUID(bytes_le=bytes.fromhex("af3dc60f838472478e793d69d8477de4")))
# Вывод: UUID('0fc63daf-8483-4772-8e79-3d69d8477de4')
Кто управляет GUID и их типами?
Guidelines по использованию GUID основаны на спецификации UEFI, которая определяет некоторые стандартные GUID для типов, таких как EFI System Partition. В то же время, каждая операционная система или разработчик программного обеспечения может создать свои собственные GUID для внутренних нужд. Например, Microsoft определяет GUID для «Microsoft Basic Data», а Linux — для «Linux FileSystem».
Стандартом считается, что GUID генерируются случайным образом, но нет жестких правил, которые бы определяли, как именно они должны формироваться.
Где найти список GUID?
Хотя не существует официального реестра для типовых GUID, разработчики могут следовать алгоритму для генерации уникальных идентификаторов без риска конфликта. Некоторые организации, такие как разработчики SystemD, могут создать свои собственные наборы GUID, просто сгенерировав их несколько раз.
Для работы с GUID в Linux инструмент fdisk
уже включает достаточно длинный список встроенных типов, а Википедия также может служить неофициальным реестром для поиска GUID.
Заключение
Таким образом, GPT и GUID играют важную роль в управлении разделами на дисках. Понимание того, как работают эти системы, может помочь вам лучше ориентироваться в вопросах хранения и управления данными. Если у вас есть сомнения относительно вашего GUID или типа раздела, помните, что исследуя различные ресурсы, вы всегда сможете найти необходимую информацию для решения своих задач.