我有一个 Debian 9 的 VMWare 主映像,在 VMWare Fusion 10 中,作为主机 MacOS High Sierra。
有一天,我不得不将其导入另一种虚拟化技术;今天我必须将其导入 VMWare ESX 5.x。我不得不通过网络复制它。
由于我必须通过网络进行操作,而且我的映像有大量可用空间,而且旧 VMWare 不支持我的 vmdk 硬件版本,因此我选择将 vmdk 映像转换为 OVF 格式。
.OVA 文件的优点之一是它比我的 vmdk 小得多。
怎么做?
答案1
虽然 VMWare Fusion 中没有用于将 VM 导出到 .OVA 文件的菜单,但我在本文中了解到有一个命令行实用程序可以实现此目的。如何在适用于 OS X 的 VMware Fusion 中以 OVA 格式导出虚拟机
要将 VMWare 映像导出为 OVF 格式,执行了以下步骤:
停止/关闭 Debian 9 VM;
运行行命令:
/Applications/VMware Fusion.app/Contents/Library/VMware OVF Tool/ovftool --acceptAllEulas /Users/ruiribeiro/Documents/Virtual\ Machines.localized/Debian\ 9.x\ 64-bit.vmwarevm/Debian\ 9.x\ 64-bit.vmx ~/Desktop/Debian9.ova
或者,如果要导入 vSphere,因为它只接受 SHA1 签名,请运行为(请参阅部署 OVA 时出现“OVF 包无效且无法部署”错误 (2151537)):
/Applications/VMware Fusion.app/Contents/Library/VMware OVF Tool/ovftool --acceptAllEulas --shaAlgorithm=SHA1 /Users/ruiribeiro/Documents/Virtual\ Machines.localized/Debian\ 9.x\ 64-bit.vmwarevm/Debian\ 9.x\ 64-bit.vmx ~/Desktop/Debian9.ova
然后由于硬件版本太新,出现错误,我按照这个流程进行改进旧版本 VMware ESXi 上的 OVF 模板部署错误:
创建了一个目录
mkdir debian9 ; cd debian9
在那里解压
.ova
文件:tar -xvf ../Debian9.ova
编辑该
Debian9.ovf
文件,将 VM VMWare 硬件版本更改为:<vssd:VirtualSystemType>vmx-14</vssd:VirtualSystemType>
到
<vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>
删除了校验和文件:
rm Debian9.mf
Debian9.mf
您还可以(重新)计算文件的 SHA256 或 SHA1 签名Debian9.ovf
,并Debian9.mf
使用新的校验和进行编辑,而不是删除:$ cat Debian9.mf SHA256(Debian9.ovf)= 4e480ce67ea0a1e85ef46dec922f60901c7ae59a8810a21e7f94e172bf70aa69 SHA256(Debian9-disk1.vmdk)= 9e590d846ccad59fe4e3cad5ca5c3dd4f30723ab69bdccf9b7400a5f79dc3078 openssl sha256 Debian9.mf | awk '{print $2}' openssl sha1 Debian9.mf | awk '{print $2}'
或者,
sha256sum
安装后:sha256sum Debian9.mf sha1sum Debian9.mf
创建了一个 tar 文件
tar -cvf Debian9.tar Debian9.ovf Debian9-disk1.vmdk # if in Linux tar -cvf Debian9.tar Debian9.ovf Debian9-disk1.vmdk --owner=64 --group=64
将 GNU tar 转换为 POSIX tar/ ova 文件 - 请参阅如何将 tar 文件从 gnu 格式转换为 pax 格式
bsdtar -cvf Debian9.ova --format=pax @Debian9.tar
从他们开始,您可以将其导入其他系统。
也可以看看OVF? OVA? VMDK? – 用于虚拟化的文件格式和工具
查看相关问题:MacOS 中没有 sha256sum