Как я могу получить uuid в uefi раздела, который у меня есть device_handle? Например, я выполняю итерацию через разделы в uefi, и я хочу получить uuid раздела. (Это диск gpt.)Что является самым простым способом получить раздел uuid раздела в UEFI?
ответ
А "GPT раздел запись" имеет 2 GUIDs
PartitionTypeGUID уникальный идентификатор, который определяет назначение и тип этого раздела. Значение нуля определяет, что эта запись раздела не используется .
UniquePartitionGUID GUID, который уникален для каждой записи раздела. Каждый раздел, когда-либо созданный, будет иметь уникальный GUID. Этот GUID должен быть назначен , когда создается запись раздела GPT. Раздел GPT Запись создается всякий раз, когда элементы NumberOfPartitionEntries в заголовке GPT увеличены, чтобы включить более широкий диапазон адресов.
Я считаю, вы ищете UniquePartitionGUID
Если у вас есть раздел, связанный device_handle, то вы можете получить соответствующий DevicePath т.е. с использованием гну-EFI
DevicePath=DevicePathFromHandle(partition_handle);
следующий вы разбора DevicePath ищет узел следующим образом:
-Generic Device Path Header- where
Type = Media Device Path (0x04)
Sub type = Hard Drive (0x01)
...
Partition Signature = partition GUID <<<<<<<<
Partition Format = GPT (0x02)
В этой структуре вы найдете свой необходимый GUID
Ссылка UEFI spec 2.5 (глава 9)
В заголовке GPT со смещением 56 это 16-байтовый идентификатор диска, который может использоваться для уникальной идентификации диска. (Спецификации Efi 5.3.2).