[syslinux] How to use syslinux(isolinux, etc.) for EFI?

Thomas Schmitt
Sat, 14 Dec 2013 07:47:08 -0000

Hi,

> There are two variations I know of -- a FAT filesystem as part of the
> ISO, and using the EFI executable with the appropriate El Torito flags.

Currently i only know of FAT images which get pointed to by
El Torito, MBR partition, GPT partition.

>  I might want to ask Matt Garrett what he has used in the past.

When i studied his Fedora Live CD setup of may 2012, it was
a FAT image (/isolinux/efiboot.img).

This image seems not to stem from ISOLINUX:
  # mount -o loop Fedora-LiveCD.iso /mnt
  # mount -o loop /mnt/isolinux/efiboot.img /mnt1
  # find /mnt1
  /mnt1
  /mnt1/efi
  /mnt1/efi/boot
  /mnt1/efi/boot/bootx64.efi
  /mnt1/efi/boot/grub.conf
  /mnt1/efi/boot/splash.xpm.gz
  /mnt1/efi/boot/BOOTX64.conf
  #

See also http://mjg59.dreamwidth.org/11285.html

The ISO image has a few quirks which obviously stem from isohybrid.c:

- Apple partition map entries bear the block count for blocks of 512 bytes
  whereas Apple Block0 announces blocks of 2048 bytes.
- The end_lba in the first GPT entry should be 1 less
  than the count of 512 byte blocks of the ISO image.
- The GPT partition name in Fedora-LiveCD.iso is 8 bit instead of UTF-16LE
  and result of faulty memory operation on a text constant:
  "ISOHybrid ISO ISOHybrid Appl"
- The GPT backup partition array is stored 17 KiB before the end of
  MBR partition 1 resp. the image file.
  Wikipedia suggests "LBA -33" counted from end.
  The backup GPT header is 512 blocks too early, too.

I once reported them here, but did not watch whether they
got fixed meanwhile.



debian-7.1.0-amd64-netinst.iso has FAT image
  /boot/grub/efi.img
with
  efi
  efi/boot
  efi/boot/bootx64.efi

This one was produced by xorriso without using isohybrid.c.
So its quirks are to blame on me. (Please report if you find
them.)


Have a nice day :)

Thomas