如何在vmware Esx(i) server /Vcenter中检测虚拟机磁盘是GPT还是MBR



我需要找到一种方法来编程地确定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将拾取

最新更新