0

I have a VMWare master image of Debian 9, in VMWare Fusion 10, having as a host MacOS High Sierra.

One of those days, I had to import it to another virtualisation technology; today I had to import it to a VMWare ESX 5.x. I had to copy it over the network.

As I had to do it over the network, as my image has lot of free space, and also because the hardware version of my vmdk is not supported by the old VMWare, I chose to convert my vmdk image to the OVF format.

One of the advantages of an .OVA file, is that it will be far smaller than my vmdk.

How to do it?

Rui F Ribeiro
  • 56,709
  • 26
  • 150
  • 232

1 Answers1

3

While there is no menu in VMWare Fusion to export a VM to an .OVA file, I learned in this article there is a command line utility for that. HowTo Export a VM in OVA format in VMware Fusion for OS X

To export the VMWare image to an OVF format, the following steps were performed:

  • Stopped/Shutdown the Debian 9 VM;

  • ran the line command:

/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

Or if importing for importing into vSphere, as it only accepts SHA1 signatures, run as (see The OVF package is invalid and cannot be deployed" error when deploying the OVA (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

Then as the hardware version was too new, and I had an error, I followed and improved this procedure OVF Template Deployment Error on Older Versions of VMware ESXi:

  • created a directory

    mkdir debian9 ; cd debian9
    
  • unpacked the .ova file there:

    tar -xvf ../Debian9.ova 
    
  • edited the Debian9.ovf file, changing the VM VMWare hardware version from:

    <vssd:VirtualSystemType>vmx-14</vssd:VirtualSystemType>
    

    to

    <vssd:VirtualSystemType>vmx-10</vssd:VirtualSystemType>
    
  • deleted the checksums file:

    rm Debian9.mf
    
  • Instead of deleting Debian9.mf, you can also (re)calculate the SHA256 or SHA1 signature of the Debian9.ovf file, and edit Debian9.mf with the new checksum:

    $ 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}'
    

    Or, with sha256sum installed:

    sha256sum Debian9.mf
    
    sha1sum Debian9.mf
    
  • created a tar file

    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
    
  • Converted the GNU tar into POSIX tar/ a ova file - see How to convert tar file from gnu format to pax format

    bsdtar -cvf Debian9.ova  --format=pax @Debian9.tar
    

From them on, you are able to import it on other systems.

See also OVF? OVA? VMDK? – File Formats and Tools for Virtualization

See related question: No sha256sum in MacOS

Rui F Ribeiro
  • 56,709
  • 26
  • 150
  • 232