On vSphere 6.5 I have created a virtual/nested ESXi 6.5 host (with EFI boot enabled) and exported that to OVF using the vSphere Web Client.
If I run the export without the options "Enable advanced options" and "Include extra configuration" then the exported OVF file can be re-imported fine, but the firmware setting of the imported VM will be "BIOS", not "EFI".
So I tried the export with the aforementioned options, but after that I get the error message "The specified object /<VMName>/nvram could not be found." whenever I try to re-import the OVF. It looks like with EFI boot VMs the OVF export must include the NVRAM file of the VM, but this does not get exported. In the OVF file I found the line
<vmw:ExtraConfig ovf:required="false" vmw:key="firmware" vmw:value="efi"/>
and after removing it the OVF import works fine, but - of course - the resulting VM will not have EFI boot enabled. I tried to fiddle around with the OVF file and somehow adding the NVRAM file there, but I could not get it to work, because I'm missing the OVF parameters that should be used for this kind of file.
I found the related KB article OVF/OVAs of EFI-based Linux virtual machines fail to boot after deploying to new virtual machines with the error: EFI SC… and this mentions that a similar bug should be fixed in vSphere 6.5, but this is what I'm using...
Does anyone know how to create a working OVF export for an EFI boot enabled VM? Or how to manually fix the OVF parameter file to include the needed parameters?
I'm not sure you can
according to that the file its self isn't included, its a bit old though. I was hoping to use this feature but our templates are using EFI which makes the content library right now unusable for us.