I guess your only chance is to rebuild the ISO image and add the UEFI files needed for it. With xorriso
you can do that.
First, extract the contents of the original ISO file:
xorriso -osirrox on -indev IMAGE.ISO -extract / ISO_DIR
Then you need to create the ESP (EFI System Partition), which has to be a FAT partition. We will create a file that contains such partition:
BOOT_IMG=efi.img
grub-mkimage \
-C xz \
-O x86_64-efi \
-p /boot/grub \
-o bootx64.efi \
boot linux normal configfile \
part_gpt btrfs fat iso9660 loopback \
test keystatus gfxmenu regexp \
efi_gop efi_uga all_video gfxterm font \
echo read ls cat png jpeg halt
mkfs.vfat -C $BOOT_IMG \
$(( ($(stat -c %s bootx64.efi) / 1024 + 511) / 32 * 32 ))
mmd -i $BOOT_IMG ::/efi
mmd -i $BOOT_IMG ::/efi/boot
mmd -i $BOOT_IMG ::/boot
mmd -i $BOOT_IMG ::/boot/grub
mcopy -Q -i $BOOT_IMG bootx64.efi ::/efi/boot
# You may create a grub.cfg file if you want.
[ -f grub.cfg ] &&
mcopy -Q -i $BOOT_IMG grub.cfg ::/boot/grub
Once the ESP is generated, you can build a UEFI bootable ISO image with:
xorriso -as mkisofs \
-r -J -l \
-iso-level 3 \
-joliet-long \
-append_partition 2 0xef $BOOT_IMG \
-partition_cyl_align all \
-o uefi-bootable.iso \
ISO_DIR
Your ISO image will be created as uefi-bootable.iso
in your current directory.
You can read these resources about bootable ISO images: