Мне нужно найти способ программно определить, является ли диск виртуальной машины гостя разделом GPT или MBR. Я не могу добиться этого с помощью vijava или Vddk API. Есть ли другие библиотеки C ++ или Java, которые могут помочь мне достичь этого. Или разбор MBR вручную — единственное доступное решение.
Заранее спасибо,
Тиягараджан А.
Вам нужно использовать инструменты VMWare, установленные на ваших гостях, и запускать команды внутри Гость. В этой статье показано, как это сделать с помощью vijava: http://www.doublecloud.org/2012/02/run-program-in-guest-operating-system-on-vmware/
Если вы используете Windows, я рекомендую PowerCLI + Invoke-VmScript
командлет (https://www.vmware.com/support/developer/PowerCLI/PowerCLI501/html/Invoke-VMScript.html)
Это позволит вам запустить команду powershell (для оконных блоков), чтобы определить расположение разделов. Следующие строки вернутся $True
если обнаружен раздел GPT.
$disks = gwmi -query "Select * from Win32_DiskPartition"foreach($disk in $disks) {
if ($disk.Type.StartsWith("GPT")){
return $true
}
}
Точно так же на гостях Linux, что-то вроде этого достигнет желаемого эффекта:
fdisk -l | grep -i gpt > /dev/null ; echo $?
Команда выше вернет 0, если разделы GPT выходят, потому что вы должны получить предупреждение «ПРЕДУПРЕЖДЕНИЕ: GPT (таблица разделов GUID) обнаружена на ..» который grep -i gpt
подберу.