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:

  1. This comment has been removed by the author.

    ReplyDelete
  2. 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.

    ReplyDelete
  3. 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?

    ReplyDelete
  4. @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/

    ReplyDelete
  5. 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

    ReplyDelete
  6. Awesome! It worked like charm. Thanks a lot!

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

    ReplyDelete