How to create a vmware OVA from a virtualbox ova

In this tutorial we are going to generate a valid vmware ova from a virtualbox ova. Usually when you import a virutalbox ova on vmware you will get the following error:

"Line 65: Unsupported hardware family 'virtualbox-2.2'."

Step 1: Install requirements

You will need to download the vmware ovftool https://my.vmware.com/web/vmware/details?downloadGroup=OVFTOOL400&productId=353

Step 2: Create the ovf

ovftool  --lax ../my_virtual_machine.ova my_virtual_machine.ovf 

Step 3: Change the System Type

Open the file my_virtual_machine.ovf and search for the tag , replace the content with:

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

Usually the content of the tag is virtualbox-2.2.

Step 4: Change the SATA controller to a SCSI controller.

Search for the sataController0 and replace the whole item:

Original sata controller:

This steps is for solving the error:

The OVF package requires unsupported hardware. Details: Line 74: OVF hardware element 'ResourceType' with instance ID '6'. No support for the virtual hardware device type '35'."

<Item>
<rasd:Address>0</rasd:Address>
<rasd:Caption>sataController0</rasd:Caption>
<rasd:Description>SATA Controller</rasd:Description>
<rasd:ElementName>sataController0</rasd:ElementName>
<rasd:InstanceID>5</rasd:InstanceID>
<rasd:ResourceSubType>AHCI</rasd:ResourceSubType>
<rasd:ResourceType>20</rasd:ResourceType>
</Item>

SCCI Controller for vmware ova

Replace the controller with this one:

<Item>
<rasd:Address>0</rasd:Address>
<rasd:Caption>SCSIController</rasd:Caption>
<rasd:Description>SCSI Controller</rasd:Description>
<rasd:ElementName>SCSIController</rasd:ElementName>
<rasd:InstanceID>5</rasd:InstanceID>
<rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
<rasd:ResourceType>6</rasd:ResourceType>
</Item>

Step 5: Update checksum control

The file my_virtual_machine.mf has the sha256 sum of the file vmdk and ovf. We need to update the sha256 of the my_virtual_machine.ovf

Execute:

sha256sum my_virtual_machine.ovf

With the output of the sha256sum command update the .mf file.

Optionally you can delete the my_virtual_machine.mf file to aovid the checksum control.

Step 6: Send the ovf to the ESXi server

Now you can push the ovf to the esxi server:

ovftool --net:"NAT=VM Network" -ds=datastore2 myvm.ovf vi://[email protected]