[syslinux] syslinux mkisofs hard-disk-boot isohybrid

Ady Ady ady-sf at hotmail.com
Thu Dec 22 12:35:46 PST 2016


> Hi,
> 
> Didier Spaier wrote:
> > The issue is the inability of booting of a *physical* (not virtual) optical
> > media, like for instance a DVD or a CD, using syslinux.efi.
> 
> Actually firmware cannot find any UEFI specified booting starting points
> in an ISO 9660 filesystem that was created with mkisofs -b and
> -hard-disk-boot, but without a boot image which was marked as EFI System
> Partition.
> 
> The boot success with UEFI and -cdrom must have other reasons. I suspect
> the BIOS emulation of the firmware.
> 
> 
> About SYSLINUX EFI:
> 
> Do we really have confirmed examples where SYSLINUX EFI software works
> from qemu DVD-ROM ? Decisive test would be to make an ISO which offers
> no El Torito boot image for BIOS, but only an EFI System Partition image as
> El Torito boot image for Platform Id 0xef. In that partiton image there
> would have to be SYSLINUX stuff - not GRUB or a directly bootable kernel.
> 
> Why i doubt:
> 
> When it comes to reading data, there should be no perceivable difference
> between a real optical drive at a real computer and the virtual DVD-ROM
> of qemu. Both get operated in the end by SCSI commands.
> 
> Of course there could be some driver shortage in SYSLINUX which does not
> show up with qemu DVD-ROM but prevents use of modern hardware. But i
> understand that EFI itself is a little operating system, which is supposed
> to operate hardware, and that SYSLINUX EFI software uses the API of EFI
> to perform its hardware operations.
> 
> 
> Have a nice day :)
> 
> Thomas
> 
 
 
I almost fell into the "trap" (yet again) of replying with several 
comments to every single email in this email thread that was posted 
after my last one. Considering that the topic of syslinux.efi and 
optical media (and/or dd'ing such iso images to a USB device) has been 
mostly ignored by relevant Syslinux developer(s) in the past, I decided 
to avoid such waste of my time. (Additionally, my tolerance for 
top-posting is getting smaller and smaller; sadly, I am getting older 
and grumpier).

@Thomas, yes, I performed a similar test "successfully".

I created a 30MiB HDD image, MBR plus one partition, flagged as both 
"boot" and "esp", FAT16.

The FAT16 partition includes "/EFI/BOOT/" and within it the relevant 
syslinux.efi-related files (with the EFI bootloader renamed to the 
default "BOOT<arch_type>.EFI" naming).

Based on this HDD image, I created an ISO image, iso9660 only (no fs 
extensions, no UDF). The iso9660 filesystem is actually empty (I added 
no files). I set the ISO image to be bootable with El Torito *HDD 
emulation* - please keep reading, and then see [1] below - and for the 
UEFI platform only (no BIOS part).

I attached the resulting ISO image to a VirtualBox VM set to boot in 
(U)EFI mode. No other (virtual) storage was attached to the VM. The VM 
successfully boots this virtual optical media, arriving to the 
syslinux.efi boot prompt. From the boot prompt, I did not attempt to 
boot any kernel, but I successfully executed a couple of c32 modules, 
then returning back to the boot prompt.

Additional comments about this test:

_ This was a relatively quick dirty test. For several reasons, the 
whole procedure was performed under a Windows OS with GUI tools. I am 
hoping that whoever would want to replicate it under a different OS 
using command-line tools, will be able to figure it out.

_ The size of the HDD image was purposely smaller than 32 MiB, so to 
reduce potential conflicts with size limitations in El Torito / UEFI 
specs. Someone else might be willing to test with bigger images.

_ Someone else might be willing to perform a similar test while also 
adding a BIOS part to the boot catalog (instead of only using the UEFI 
platform).

_ Syslinux 6.04-pre1 can only access the boot volume alone, therefore 
only the content of the HDD image (i.e. El Torito HDD emulation image) 
can be seen from syslinux.efi. In other words, syslinux.efi can't 
access the content of the iso9660 data area.

[1]:
_ Please note that the UEFI specs state that the EFI System Partition 
stored in the boot catalog is supposed to be stored as "no emulation" 
mode. Although I explicitly set the emulation mode to HDD and the 
platform to UEFI when creating the ISO image, the (U)EFI firmware in 
VirtualBox had no complains and used the HDD image to boot in UEFI 
mode. This is one of the reasons I am of the opinion that some 
restrictions "imposed" by ISO-building tools should be relaxed (as in, 
"advice correctness but allow deviations when the user chooses to do 
so").

Now, is there any OS (e.g. Linux) distribution that is willing to use 
this method for booting in UEFI mode? Is there anyone that is willing 
to chose this method to boot optical media in UEFI mode? Is there 
anyone that is willing to add more options and alternatives to 
isohybrid (because we all know that this is going to be the first 
immediate request)? I think I have read more than once that "patches 
are welcome". Hmm...

Regards,
Ady.
 
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux





More information about the Syslinux mailing list