> I am actually inserting kickstart files within the iso image,. I've had this working with legacy mode for quite a while, with multiple entries in isolinux.cfg, but have been struggling to get this to work with UEFI.
>
> Can you point me to an example of what the efi/boot/boot.cfg would look like? Would I be putting the menu items into bootx64.conf, or maybe grub.conf? If so, can you tell me what they would look like? Any help you can provide would be greatly appreciated.
Hmm, I think you're saying you want to have multiple different kickstart files on an ISO image that you can select from using a menu. I see where the missing piece is here. An ESXi ISO image uses isolinux as the first stage for booting in legacy BIOS mode, and that has a menu feature. I gather you're using that. But for booting in UEFI mode, there's nothing on the ISO image that has a menu feature. The first stage is isobounce (which is installed as bootx64 in the ISO's second El Torito image), which loads an ISO9660 filesystem driver from the El Torito image and then chains to mboot (which is installed as bootx64 on the iso9660 filesystem). Neither isobounce nor mboot has a menu feature.
If you want to create something on the ISO that shows a menu when booted in UEFI mode, there are a few alternatives you could try. I haven't done this myself, though, so I'm not aware if there are any pitfalls or which is best.
Personally I'd probably try VMware menu.efi, but mostly that's because I wrote it and we use it a lot internally at VMware. We haven't advertised it for customer use, but it's available under the GPL as part of our bootloader (esx-boot) source disclosure. There's documentation at the top of the source code at esx-boot/menu.c at master · vmware/esx-boot · GitHub . It's not very easy to compile the esx-boot package that it lives in, though.
You could also try grub, rEFInd, or rEFIt.
Whatever you try as a menu program, you will have to get the ISO image to execute it instead of booting right into ESXi. I suppose you could modify the ISO9660 filesystem to rename its \efi\boot\bootx64.efi to something else (say mboot.efi), and put in the menu program you choose as \efi\boot\bootx64.efi. Alternatively, you could modify the second El Torito image to invoke your menu program -- that seems like it would be more work, though.