[syslinux] syslinux mkisofs hard-disk-boot isohybrid

Ady Ady
Wed, 21 Dec 2016 22:32:42 -0000

> Hi,
>
> Pascal wrote:
> > mkisofs -o core.iso -b boot/core.img -c boot/boot.cat -hard-disk-boot
core/
> > my iso image is ok with qemu on bios and uefi,
>
> Astounding. As CD-ROM this is not supposed to work with UEFI unless the
> firmware emulates BIOS. What particular UEFI firmware did you use ?
>
> >  and with qemu as hard disk on uefi but not on bios.
>
> That's even more astounding. The UEFI would have to look into the ISO
9660
> filesystem or interpret the El Torito boot info prepared for BIOS.


I think that "in qemu as hard disk" means that he is not booting it as
CD-ROM, so no iso9660 in this case; but I could be misinterpreting the
words.

>
>
> > isohybrid: core.iso: unexpected boot catalogue parameters
>
> That's because ISOLINUX boot images are binary programs which get
registered
> in the El Torito catalog as "no emulation" images. Your core.img
is registered
> (by option -hard-disk-boot) as "hard disk emulation" image.
>
> http://git.zytor.com/syslinux/syslinux.git/tree/utils/isohybrid.c
> bails out in line 526, because variable de_media is 4 and not 0.
>
> For BIOS booting from CD-ROM you need to use "isolinux.bin" as
boot image
> which you give to mkisofs via option -b. Instead of
>


@Thomas, please remember that, if we forget for a moment about other
constraints and conditions (e.g. isohybrid, UEFI, whatever), a CD-ROM
using "El Torito hard disk emulation" can still be bootable in BIOS
mode.

>   -hard-disk-boot
>
> you have to use
>
>    -no-emul-boot -boot-load-size 4 -boot-info-table
>
> See http://www.syslinux.org/wiki/index.php?title=ISOLINUX
>
> For UEFI from CDROM you need a FAT filesystem image with EFI boot files
> like  /efi/boot/bootx64.efi  in it. Note that the EFI boot software of
> SYSLINUX does not boot from CD-ROM, even if properly wrapped and announced
> in El Torito. ISOs which work from CD-ROM mostly use GRUB-equipped FAT
> images for UEFI.
>
> The UEFI boot image has to be announced in El Torito by the ISO producer
> program. See options
>
>   -e isolinux/efiboot.img -no-emul-boot
>
> or
>
>   -eltorito-platform 0xEF -eltorito-boot isolinux/efiboot.img -no-emul-boot
>
> in
>   http://www.syslinux.org/wiki/index.php?title=Isohybrid#UEFI
> ("isolinux/efiboot.img" is the FAT image with content from other
boot loader
> projects or an EFI-ready operating system kernel.)
>
> Such an ISO is then ready for being processed by isohybrid, so that
> it afterwards has MBR BIOS x86 boot code and partition tables pointing
> to the FAT filesystem for UEFI.
>
>
> Have a nice day :)
>
> Thomas
>


Also, there is at least one more method to boot optical media in UEFI
mode: using UDF. Unfortunately, this doesn't change the fact that
syslinux.efi v.6.03 cannot boot optical media in UEFI mode (in spite of
Peter hinting about such capabilities in some email in the past).

Regards,
Ady.

> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com