libcdio-devel
[Top][All Lists]
Advanced

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

Re: [Libcdio-devel] [PATCH 2/4] Add El Torito virtual boot image support


From: Thomas Schmitt
Subject: Re: [Libcdio-devel] [PATCH 2/4] Add El Torito virtual boot image support
Date: Thu, 25 Jan 2024 08:42:26 +0100

Hi,

something i forgot to mention yesterday:

  $ xorriso -indev openSUSE-13.1-NET-x86_64.iso -report_el_torito plain
  ...
  El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
  El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        4238
  El Torito boot img :   2  UEFI  y   none  0x0000  0x00      1          70
  El Torito img path :   1  /boot/x86_64/loader/isolinux.bin
  El Torito img opts :   1  boot-info-table isohybrid-suitable
  El Torito img path :   2  /boot/x86_64/efi
  ...

The size of the EFI boot image is recorded in the boot catalog as 1, which
complies to UEFI-2.8:

  13.3.2.1 ISO-9660 and El Torito
  [...]
  If the value of Sector Count is set to 0 or 1, EFI will assume the
  system partition consumes the space from the beginning of the
  “no emulation” image to the end of the CD-ROM.

This is necessary if the EFI partition is larger than 65535 * 512 bytes
= 32 MiB - 512.

Some misguided ISO producers use 65535 instead of 0 or 1:

  slint64-current-goofiboot-1.4.0.iso

  El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
  El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4       32807
  El Torito boot img :   2  UEFI  y   none  0x0000  0x00  65535          39
  El Torito img path :   1  /isolinux/isolinux.bin
  El Torito img opts :   1  boot-info-table isohybrid-suitable
  El Torito img path :   2  /efi.img

(I take these examples out of the log of my regression test which repacks
about 200 GB of bootable ISOs whenever i change the boot related code in
libisofs.)


> so, on real-life El-Torito media, you will find:
> - [BOOT]/0-Boot-NoEmul.img (the initial 2048 byte loader)
> - [BOOT]/1-Boot-NoEmul.img (the rest of the image)

Urm, in the usual Linux distro installation ISO this will be the BIOS
boot image (shortened) and the EFI system partition image.

The short size of the BIOS image was chosen by the boot loader programmers
to circumvent a bug in old BIOSes, which refused to load any other size.
The rest of the BIOS image is directly following the first 2048 bytes
and is not announced by the boot catalog.
Its presence and size can only be told if the boot info table is read.


I understand your patch is only striving for EFI boot images.
That would be ok for me, if it would exclude other images from being
mapped to the pseudo-directory and if it would get the EFI image size
rules correctly.
(For being able to tell the intented firmware system, you'd need to
interpret the Validation Entry and the Section Header Entries for
platform ids.)


> Gotta love how on one hand I'm kind of being chastised for taking shortcuts
> with the specs, but, when I follow the specs exactly, that make absolutely
> zero mention about a lower limit for num_sectors, I'm being told about
> "tradition".

Hey, this is a technical discussion about El Torito and your patch.
No offense intended.

The existing habits around boot loaders are of importance. The world of
legacy BIOS nearly entirely consists of habits.


Have a nice day :)

Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]