因为业务或者学习很多时候我们要用到虚拟机,当我们使用vmware去打开VirtualBox导出的文件虚拟机镜像时会发生capacity mismatch for disk错误,同时在网上查询没有完整通俗易懂的解决方案,我本人也遇到了这个错误,经过测试以后写下这篇文章记录,同时也是帮助自己在后期遇见以后再次使用!
capacity mismatch for disk 英文翻译为中文:磁盘容量不匹配。
那么这是哪里的磁盘容量不匹配?
首先我们去查看VirtualBox导出文件为ova格式,ova格式在解压可以分为mf,ovf,vmdk格式。
其中mf是记录MD5值,用于验证ovf和vmdk是不是匹配或者说有无改变,如果md5值不对,也会报错。
但是这里是导出的ovf是配置文件,我们即使改变也无法判断所谓的磁盘容量是多少。
所以我们要去真正的VirtualBox去查看使用的目标虚拟机项目的磁盘容量。
我们找到安装的虚拟机项目目录,一般在VirtualBox VMs目录下。
找见以后找配置文件,后缀为vbox,记事本打开。
搜索 Image uuid
打开Oracle\VirtualBox安装目录,输入如下
.\VBoxManage.exe showhdinfo uuid的值 do4c6364-8f42-42f3-90bc-ba1d7b1rd7c3
.\VBoxManage.exe: 这是 VirtualBox 的命令行工具,用于管理 VirtualBox 虚拟机的各种功能。前面的 .\ 表示该命令在当前目录中。
showhdinfo: 这是 VBoxManage 提供的一个子命令,用于显示虚拟硬盘的详细信息。
我们会得到Capacity值,把它转换为字节。
再次打开VirtualBox导出的ova解压文件中的ovf,搜索ovf:capacity=
把字节bytes输入进去,修改保存。
使用vmware直接打开ovf后缀文件,就会发生前面的sha1错误,因为我们改变了ovf文件内容所以md5 hash校验失败。
这里我们可以直接比如在windows中使用powershell中的Get-FileHash -Path来从新生成sha1值。
Get-FileHash -Path .\your file.ovf -Algorithm SHA1
-Algorithm SHA1指定为sha1值。
最后把这个值复制到mf文件。
从新使用vmware打开,就会发现错误解决了,可以完整导入。
希望可以帮到热爱学习的你!
— 实验室旗下直播培训课程 —