как программно провести различие между динамическим GPT и базовым диском GPT в виртуальной машине

Недавно мне нужно было найти способ определить, какой тип раздела используется виртуальной машиной. Считывая необработанные данные с виртуального диска, я смог найти их, проверив со смещением 1C2 (EE в случае GPT), в случае MBR-диска. если диск является динамическим, то смещение в 1C2 имело 42, а в случае базового диска то же смещение 1C2 имело 07, что означает базовый диск. Теперь, если это GPT-диск, как мне различать базовый и динамический диски?

Заранее спасибо.

1

Решение

При выполнении итерации записей таблицы разделов GPT для диска GPT ищите запись с «GUID типа раздела», установленным в 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3, и соответствующий скрытый «атрибут» (бит 62) для этой записи должен быть установлен , Этот PTE будет для базы данных LDM. Помимо этого, должна быть еще одна запись таблицы разделов для самого LDM. Таким образом, для этого сценария будет две записи таблицы разделов: одна для базы данных LDM (скрытый раздел), а другая для LDM.

1

Другие решения


По вопросам рекламы [email protected]