[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cannot create BIOS ANDUEFI ISO



Hello Thomas,

On 23/11/2024 15:35, Thomas Schmitt wrote:
I wasn't aware that Debian Live can be built with GRUB for BIOS.

That has been possible since quite some time, but the default has been syslinux/isolinux for BIOS and GRUB for UEFI.

To possibly bystanding developers:

You mean me :-)

I looked up the xorrisofs options for the GRUB equivalent of isohybrid:

   https://sources.debian.org/src/live-build/1:20240810/scripts/build/binary_iso/?#L78
   elif [ "${LB_BOOTLOADER_BIOS}" = "grub-pc" ]
   then
     XORRISO_OPTIONS="${XORRISO_OPTIONS} --grub2-boot-info --grub2-mbr /usr/lib/grub/i386-pc/boot_hybrid.img"
     XORRISO_OPTIONS="${XORRISO_OPTIONS} -efi-boot-part --efi-boot-image"

It would be better understandable if the EFI options were moved down to
the handling of the EFI boot image:

   https://sources.debian.org/src/live-build/1:20240810/scripts/build/binary_iso/?#L160
   grub-efi)
     if [ -e binary/boot/grub/efi.img ]; then
       XORRISO_OPTIONS="${XORRISO_OPTIONS} -e boot/grub/efi.img -no-emul-boot"
       XORRISO_OPTIONS="${XORRISO_OPTIONS} -isohybrid-gpt-basdat -isohybrid-apm-hfsplus"

Line 163 would become something like

       if [ "${LB_BOOTLOADER_BIOS}" = "grub-pc" ]
       then
         XORRISO_OPTIONS="${XORRISO_OPTIONS} -efi-boot-part --efi-boot-image"
       else
         XORRISO_OPTIONS="${XORRISO_OPTIONS} -isohybrid-gpt-basdat -isohybrid-apm-hfsplus"
       fi

The result is supposed to be the same as with the current somewhat
self-contradicting set of options in case of "grub-pc":
   -efi-boot-part --efi-boot-image ... -isohybrid-gpt-basdat
   -isohybrid-apm-hfsplus

Options -isohybrid-gpt-basdat and -isohybrid-apm-hfsplus have no effect,
if not options -isohybrid-mbr or -part_like_isohybrid are given,
which they should not be if GRUB BIOS equipment is used.


Further i think that -isohybrid-apm-hfsplus should be removed,
unless a HFS+ filesystem image is given by -e, as Fedora once did
in its ISO for getting a third boot image for pre-EFI Macs.
("Ceterum censeo Carthaginem esse delendam.", Cato)

So there are 3 scenarios to consider:
A) grub-pc for BIOS, no EFI boot
B) grub-pc for BIOS, grub-efi for EFI
C) no BIOS boot, grub-efi for EFI

Am I right that the command line options to xorriso should be:

When grub-pc is to be used:
--grub2-boot-info --grub2-mbr /usr/lib/grub/i386-pc/boot_hybrid.img (from line 80)
-no-emul-boot -boot-load-size 4 -boot-info-table (from line 132)
-b boot/grub/grub_eltorito (from line 133)

When grub-efi is to be used:
-e boot/grub/efi.img -no-emul-boot (from line 162)
-isohybrid-gpt-basdat (from line 163)

When both grub-pc and grub-efi are to be used, in addition:
-efi-boot-part --efi-boot-image (from line 81)
-eltorito-alt-boot (from line 155)

With kind regards,
Roland Clobus

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


Reply to: