我需要找到一种方法来编程地确定Guest虚拟机磁盘是GPT还是MBR分区。我无法用vijava或Vddk api实现这一点。有任何其他c++或java库,可以帮助我实现这一点。或者手动解析MBR是唯一可用的解决方案。
Thanks in Advance,
Thiyagarajan a .
您需要在您的来宾机上安装VMWare工具,并在来宾机上运行命令。本文演示了如何使用vijava: http://www.doublecloud.org/2012/02/run-program-in-guest-operating-system-on-vmware/
如果你使用windows,我推荐PowerCLI + Invoke-VmScript
cmdlet(https://www.vmware.com/support/developer/PowerCLI/PowerCLI501/html/Invoke-VMScript.html)
它将允许您运行powershell命令(用于windows盒子)来确定分区布局。如果检测到GPT分区,以下行将返回$True
。
$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 $?
如果GPT分区存在,上面的命令将返回0,因为你应该得到一个警告"警告:GPT (GUID分区表)检测到…" grep -i gpt
将拾取