Monday, September 3, 2012

commons.ova deploy error on vmware esx - Unsupported hardware family 'virtualbox-2.2'

I downloaded Perforce commons OVA file commons.ova and when I tried to deploy it on VMWare ESX server, it failed with the error
Error: OVF Package is not supported by target: - Line 25: Unsupported hardware family 'virtualbox-2.2'.

Here the issue is with the commons.ovf file inside commons.ova . It defined virtual system type as virtualbox-2.2, which is a Oracle Open source virtualization product. Hence VMWare doesn't understand it.
    <vssd:VirtualSystemType>virtualbox-2.2</vssd:VirtualSystemType>

We need to change it from virtualbox-2.2 to vmx-04 a VMWare format in that file.

Here are the steps to modify .ovf file inside .ova on linux system

  • Copy .ova file (commons.ova) to a Linux system
  • Extract ova file using tar utility
            tar xvf commons.ova

       Now you will get the following files
           commons-disk1.vmdk  commons.ovf
  •  Edit the .ovf file (commons.ovf) and do following changes 
               vi commons.ovf   (change the below line as shown)
            1) Replace  virtualbox-2.2 with  vmx-04
              <vssd:VirtualSystemType>vmx-04</vssd:VirtualSystemType>
            2) To fix the error Line 66: OVF hardware element 'ResourceType' with instance ID '5': No support for the virtual hardware device type '2
  changed this item:

      <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>


into this item:

     <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>
           
  • Convert ovf back to ova again. You should have installed 'ovftool' utility on your machine
           ovftool commons.ovf commons.ova

        Deploy it on your ESX server now. There shouldn't be any issue.

7 comments:

Retiredfeline said...
This comment has been removed by the author.
Ken Yap said...

Thanks, this fixed my problem. One thing for others to note, do not blindly copy the SCSIcontroller element like I did. You must retain the original InstanceID from the SATAcontroller element or your virtual disks will not be attached to a controller.

Unknown said...

I got other error

Detail Line 119:OVF hardware element 'ResourceType' with instance ID '10'. NO support for the virtual hardware devide type '35'



3
false

sound

Sound Card

sound

10
ensoniq1371
35




Can anyone give me the solution for this?

Anonymous said...

@Omkar Nimja - I believe that you can just remove that entire block safely. Or so I've semi-deciphered from this blog post http://labs.consol.de/lang/de/blog/nagios/wenn-der-esx-server-keine-icinga-vm-annimmt/

sectia said...

Thanks for sharing this. I've a different solution to the issue:

from the command line run ovftool with the --lax flag which turns errors into warnings. Doing this you will be solving the issue as well.

example:
ovftool --lax VM.ova dirforVMX/

Cheers,

F

Anonymous said...

Awesome! It worked like charm. Thanks a lot!

Unknown said...

Thanks. This helped me. I also want to bring attention to a related issue:

"The DMTF RASD specifies a set of fields that can be set. We only a subset of those fields in an OVF descriptor. The fields in a RASD must be ordered alphabetically."

http://blogs.vmware.com/vapp/2009/11/virtual-hardware-in-ovf-part-1.html