[syslinux] isohybrid --uefi - resulting EF00 partition too small

Mattias Schlenker ms at mattiasschlenker.de
Wed Mar 13 03:10:20 PDT 2013


Am 12.03.2013 19:41, schrieb Thomas Schmitt:
> Hi,
>
>> But the question remains: If the El Torito specification limits the
>> size of the image to 32MiB, how does it come that my 53MiB image does
>> not cause errors when booting?
> The specs limit the recording of Sector Count to 32MiB. The boot image
> itself may be as large as can fit into the ISO filesystem.

Thanks for the clarification.

> The problem of isohybrid.c is that it does not understand ISO 9660.
> It tries to gain the necessary info from the simple El Torito
> boot catalog. This suffices for isohybrid via MBR, because that does
> not need to know the size (and would not find it in Sector Count anyway).
> For EFI it's a hack with size limitation to 32 MiB.
> I implemented the isohybrid functionality in libisofs because i
> honestly believe that it is better suited for the task.
> SYSLINUX meanwhile installs MBR files for being read by xorriso.
> I am watching this mailinglist and am willing to implement new
> hybrid stunts on request.

I did not yet look on the code of isohybrid.c, but it would seem to make 
sense to change the calculation to use a higher level library like e.g. 
libisofs to retrieve the correct size inforamtion. Anyway I agree on the 
aspect that creation of MBR partition table, GUID partition table, MBR 
boot sector and UEFI boot image is better done in one step by the 
program creating the ISO image.

However, I think there are quite some people creating bootable ISOs 
sticking to genisoimage or mkisofs combined with isohybrid because it is 
proven and they do not want to change a running system and they fear 
breaking bootability especially with older buggy BIOSes.


> So my advise to you is to use xorriso >= 1.2.4 and its -as mkisofs
> options -isohybrid-mbr, -e , -isohybrid-gpt-basdat.
> libisofs underneath xorriso knows the size of the boot images and does
> not have to read it from insufficient sources.
> For your build system it might be better to use GNU xorriso.
> It is easy to compile and can be used by its absolute path without
> system-wide installation.
> So you have not to fiddle with .so libraries or to de-install packages.

This is basically what I did. The chroot environment with the LessLinux 
system already contains some statically linked binaries that can be 
called from the host system. I added a statically linked xorriso and 
call this to create the ISO now. So everyone can keep his/her build 
environment for now. The thumb drive now correctly boots from BIOS and 
UEFI (at least up to kernel and initramfs on UEFI, trouble in userland 
should be my problem for now, trouble on ISO/MBR with not found com32 
files in syslinux 5.10pre1 is another story).

Regards,
Mattias


-- 
Mattias Schlenker - Redaktion + EDV-Beratung + Linux-CD/DVD-Konzepte
Dietrich-Bonhoeffer-Str. 3 - 40667 MEERBUSCH - GERMANY

Telefon (VoIP "ueberall"), geschaeftlich: +49 341 39290767
Telefon (Festnetz), privat und Fax:       +49 2132 9952906
Mobil:                                    +49 163  6953657
Mobil (SIM in Testgeraeten):              +49 1578 3499550

Bitte fuer geschaeftliche Telefonate vorzugsweise die VoIP-Telefonnummer
+49 341 39290767 verwenden, da ich diese aufs Mobiltelefon routen kann!

http://blog.rootserverexperiment.de/ http://news.mattiasschlenker.de/



More information about the Syslinux mailing list