Как программно провести различие между 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.