[syslinux] Chainload El Torito grub2 from syslinux from a partition table

Emilio Lazo Zaia
Sat, 29 Aug 2015 16:14:16 -0000

Hello,

I have the following scenario:

- GPT Partitioned USB disk with syslinux (or extlinux) on the first
partition and a menu to boot each partition; all of them are iso9660
images of different linux distros,
- Before dumping every iso image into its partition space on the USB
disk I need to remaster it changing something on its initrd to be able
to coexist with other linux distros on the same USB drive,
- After that, I build a new remastered iso9660 file with mkisofs or xorriso,
- If I use xorriso, I select isohdppx.bin as the MBR file. If I use
mkisofs I need to postprocess the image with isohybrid --partok.

The menu entry on syslinux.cfg for each partition is as simple as:

Konsole output
LABEL ZeroShell
MENU LABEL ^ZeroShell
COM32 boot/syslinux/c32/chain.c32
APPEND guid:xxxxx 5

So, I'm chainloading the boot sector of an hybrid iso image dumped to a
partition.

Everything works as expected with all distros which were built to boot
with isolinux. It works because of the isohdppx.bin MBR (or the --partok
switch of isohybrid).

If the distro uses grub2 it fails because the "hybrid" grub2 images
lacks the support of booting from a partition table (right?), i.e. the
file boot_hybrid.img from grub2 *seems* not supporting booting from a
partition table. It hangs on "Booting".

There is a way to patch this behavior allowing chainloading a grub2
hybrid boot sector from a partition table using ext/syslinux? or the
solution can't be a syslinux patch and must be a new version of
boot_hybrid.img from grub2 developers?

Thanks in advance,
Emilio.