VirtualBox and VMware's ovftool have a different idea of how a storage controller should be described. This prevents exporting a VM from, e.g. VMware Fusion, and then importing it into VirtualBox. However, this can be worked around.
Ovftool produces output like
<Item> <rasd:Address>0</rasd:Address> <rasd:Description>SATA Controller</rasd:Description> <rasd:ElementName>sataController0</rasd:ElementName> <rasd:InstanceID>3</rasd:InstanceID> <rasd:ResourceSubType>vmware.sata.ahci</rasd:ResourceSubType> <rasd:ResourceType>20</rasd:ResourceType> </Item>
but VirtualBox wants a tag named Caption, not ElementName. It also wants ResourceSubType to be just 'AHCI'. See the code below
case ResourceType_OtherStorageDevice: // 20 SATA controller { /* <Item> <rasd:Description>SATA Controller</rasd:Description> <rasd:Caption>sataController0</rasd:Caption> <rasd:InstanceID>4</rasd:InstanceID> <rasd:ResourceType>20</rasd:ResourceType> <rasd:ResourceSubType>AHCI</rasd:ResourceSubType> <rasd:Address>0</rasd:Address> <rasd:BusNumber>0</rasd:BusNumber> </Item> */ if ( i.strCaption.startsWith("sataController", RTCString::CaseInsensitive) && !i.strResourceSubType.compare("AHCI", RTCString::CaseInsensitive) ) { HardDiskController hdc; hdc.system = HardDiskController::SATA; hdc.idController = i.ulInstanceID; hdc.strControllerType = i.strResourceSubType; vsys.mapControllers[i.ulInstanceID] = hdc; } else throw OVFLogicError(N_("Error reading \"%s\": Host resource of type \"Other Storage Device (%d)\" is supported with SATA AHCI controllers only, line %d"), m_strPath.c_str(), ResourceType_OtherStorageDevice, i.ulLineNumber); break; }
If you modify the ovf file to make these changes, the import should succeed. After modfying it, be sure to update the sha1sum of the ovf file in the mf file.