将 VMWare vmdk 导出为 OVA 文件/OVF 格式

将 VMWare vmdk 导出为 OVA 文件/OVF 格式

我有一个 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

相关内容