VMWare “Capacity mismatch for disk XXX。”报错的解决方案

VMWare “Capacity mismatch for disk XXX。”报错的解决方案

笔者在使用VMware Workstation Pro虚拟机环境完成课内大作业的过程中需要导入一个老师提供的.ova文件,但是在导入时出现了以下报错:

以下是解决方案:

一、解压.ova文件

​​.ova文件​​(Open Virtual Appliance)是一种​​虚拟设备打包格式,因此它实际上是一个压缩包文件,其中包含了以下内容:

  • .ovf文件​​(Open Virtualization Format):描述虚拟机的硬件配置(CPU、内存、网络等)、磁盘信息和其他元数据(XML格式)。
  • vmdk/.vhd等磁盘镜像​​:存储虚拟机的操作系统和数据(格式取决于虚拟化平台,如VMware用VMDK,Hyper-V用VHD)。
  • ​​.mf文件​​(Manifest File):是虚拟设备中的​​清单文件​​,用于验证文件完整性和确保虚拟机的安全导入。

但是常见的解压缩工具都无法直接解压.ova文件,因此需要先手动将其后缀改为.zip格式再解压缩即可。解压结果如下图所示:

二、配置.ovf文件

笔者搜索到的绝大部分解决方案都是将.ovf文件中的虚拟机软件的版本号修改为当前自己使用到的版本号即可,如下图所示:

可以一试,可能对低版本的VMware Workstation Pro是起效的,但是笔者使用的版本在修改后依旧会报错,因此需要更彻底的更改:

1. 删除“<Disk ovf:capacity=“18103500800” ovf:diskId=“vmdisk2” ovf:fileRef=“file1” ovf:format=“http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized” vbox:uuid=“bf38c60b-49bd-48c9-9c03-55acfcec0141”/>”

在.ovf文件的最开始,内容可能不太一致,删除即可。

1
2
3
4
<DiskSection>
<Info>List of the virtual disks used in the package</Info>
<Disk ovf:capacity="18103500800" ovf:diskId="vmdisk2" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" vbox:uuid="bf38c60b-49bd-48c9-9c03-55acfcec0141"/>
</DiskSection>

2. 删除“<Image uuid=“{bf38c60b-49bd-48c9-9c03-55acfcec0141}”/>”

在.ovf文件的最末尾:

1
2
3
<AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
<Image uuid="{bf38c60b-49bd-48c9-9c03-55acfcec0141}"/>
</AttachedDevice>

3. 继续删除

在文章中间部分,可搜索/disk/vmdisk找到,全部删除:

1
2
3
4
5
6
7
8
9
10
<Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:Caption>disk2</rasd:Caption>
<rasd:Description>Disk Image</rasd:Description>
<rasd:ElementName>disk2</rasd:ElementName>
<rasd:HostResource>/disk/vmdisk2</rasd:HostResource>
<rasd:InstanceID>9</rasd:InstanceID>
<rasd:Parent>5</rasd:Parent>
<rasd:ResourceType>17</rasd:ResourceType>
</Item>

保存退出即可。

三、配置.mf文件

随便找一个文件Hash值的在线计算网站,计算出更改后的.ovf文件的SHA1值,并对应地将.mf文件中的值修改即可,不然无法导入.ovf文件:

四、导入.ovf文件

全部完成之后使用VMware Workstation Pro打开修改过后的.ovf文件即可:

Bingo!


VMWare “Capacity mismatch for disk XXX。”报错的解决方案
http://example.com/2025/05/05/md03/
作者
谢斐
发布于
2025年5月5日
许可协议