Hi,
this is what i propose as boot layout of an entirely GRUB based ISO
which boots on EFI and not-so-buggy legacy BIOS from USB stick and DVD:
------------------------------------------------------------------------
$ xorriso -indev grub_mkrescue_gpt_appended.iso -report_el_torito plain
-report_system_area plain
...
El Torito catalog : 165 1
El Torito cat path : /boot.catalog
El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA
El Torito boot img : 1 BIOS y none 0x0000 0x00 4 2040
El Torito boot img : 2 UEFI y none 0x0000 0x00 5760 6043
El Torito img path : 1 /boot/grub/i386-pc/eltorito.img
El Torito img opts : 1 boot-info-table grub2-boot-info
El Torito img blks : 2 1440
System area options: 0x00004201
System area summary: MBR protective-msdos-label grub2-mbr cyl-align-off GPT
ISO image size/512 : 29996
Partition offset : 16
MBR heads per cyl : 64
MBR secs per head : 32
MBR partition table: N Status Type Start Blocks
MBR partition : 1 0x00 0xee 1 29995
GPT : N Info
GPT disk GUID : e59ea280058a754fb57833ebe50cd3e0
GPT entry array : 2 248 separated
GPT lba range : 64 29932 29995
GPT partition name : 1 490053004f003900360036003000
GPT partname local : 1 ISO9660
GPT partition GUID : 1 e59ea280058a754fb57933ebe50cd3e0
GPT type GUID : 1 a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags: 1 0x1000000000000001
GPT start and size : 1 64 24108
GPT partition name : 2 41007000700065006e006400650064003200
GPT partname local : 2 Appended2
GPT partition GUID : 2 e59ea280058a754fb57a33ebe50cd3e0
GPT type GUID : 2 28732ac11ff8d211ba4b00a0c93ec93b
GPT partition flags: 2 0x0000000000000000
GPT start and size : 2 24172 5760
------------------------------------------------------------------------
$ /sbin/fdisk -l grub_mkrescue_gpt_appended.iso
Disk grub_mkrescue_gpt_appended.iso: 14.7 MiB, 15357952 bytes, 29996 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 80A29EE5-8A05-4F75-B578-33EBE50CD3E0
Device Start End Sectors Size Type
grub_mkrescue_gpt_appended.iso1 64 24171 24108 11.8M Microsoft basic data
grub_mkrescue_gpt_appended.iso2 24172 29931 5760 2.8M EFI System
------------------------------------------------------------------------
xorrisofs (minimum version 1.5.2) options would be:
--grub2-mbr /usr/lib/grub/i386-pc/boot_hybrid.img
-partition_offset 16
-appended_part_as_gpt
-append_partition 2 C12A7328-F81F-11D2-BA4B-00A0C93EC93B /...diskpath.../efiboot.img
-iso_mbr_part_type EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
-c /boot/grub/boot.cat
-b /boot/grub/i386-pc/eltorito.img
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info
-eltorito-alt-boot
-e '--interval:appended_partition_2:all::'
-no-emul-boot
They would replace these options from the current xorriso command with
Live ISOs as quoted by Chris Murphy:
-isohybrid-mbr /usr/share/syslinux/isohdpfx.bin
-b isolinux/isolinux.bin
-c isolinux/boot.cat
-boot-load-size 4 -boot-info-table -no-emul-boot
-eltorito-alt-boot
-e images/efiboot.img -no-emul-boot -isohybrid-gpt-basdat
-eltorito-alt-boot
-e images/macboot.img -no-emul-boot -isohybrid-gpt-hfsplus
The file efiboot.img should not be in the ISO 9660 filesystem.
Similar to the old /isolinux/isolinux.bin ione has to bring a GRUB
El Torito BIOS image as /boot/grub/i386-pc/eltorito.img into the ISO 9660
filesystem, so that option -b finds it.
(eltorito.img gets made by grub-mkimage. But i am quite sure one can
simply grab it from a grub-mkrescue ISO of the same GRUB version as
used inside efiboot.img. Maybe one needs to move GRUB configuration
lines out of a grub.conf in efiboot.img to a grub.conf in the ISO 9660
filesystem, so that both boot paths can use them.)
Support would vanish for old pre-EFI Macs and for buggy legacy BIOS
which demands to see a boot/active flag in some MBR partition slot
if the ISO is presented on a USB stick.
The benefit iwould be to have a neat GPT instead of the current MBR
partition table with the mockup of a GPT and with the EFI partition
sitting inside the ISO 9660 partition.
Have a nice day :)
Thomas