[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