You may need to consider using devuan's syslinux (version
3:6.04~git20190206.bf6db5b4+dfsg1-3+devuan7) which handles the
"problem" that the iso9660 drive uses 2k blocks while the (embedded)
fat drive uses 512b blocks. Afaik the current upstream source hasn't
accepted my patch or addressed this problem, and thus will try to
access to iso9660 drive as if it has 512b blocks. It's a rather old
issue.
Ralph.
On Fri, Nov 29, 2024 at 08:38:35PM +0100, Thomas Schmitt via Syslinux
wrote:> Hi,
>
> i'm possibly not the best source of general SYSLINUX knowledge, as my
> interest in it is only with my xorriso hat on.
> (As you can see in the SYSLINUX wiki, xorriso can do the isohybridization
> without the need for the isohybrid program.)
>
>
> Fulalas Caos wrote:
> > I tried this:
> > mkisofs -o "$ISONAME" -v -l -J -joliet-long -R -D -A
"$CDLABEL" \
> > -V "$CDLABEL" -no-emul-boot -boot-info-table -boot-load-size
4 \
> > -b boot/syslinux/isolinux.bin -c boot/syslinux/isolinux.boot ../.
> >
> > ../boot/syslinux/isohybrid --uefi --partok "$ISONAME"
> > Unfortunately, it gives me this error:?isohybrid: 1.iso: unable to
find efi image
> >
> > Do I really need?efiboot.img?(also adding this parameter to mkisofs:
> > -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot
> > boot/syslinux/efiboot.imgA
>
> Yes you do. Plus option -no-emul-boot , because the default El Torito
> media emulation of mkisofs is "floppy" but UEFI specs demand
> "no emulation". (man mkisofs describes El Torito media emulation
in the
> paragraphs about -eltorito-boot.)
>
> The isohybrid program with option --uefi looks up the address and size
> of the EFI boot image file in the El Torito boot catalog and creates a
> partition table with an EFI System partition which marks the data range
> of the boot image file.
> This implies that there must be an El Torito boot image file for EFI
> inside the ISO. That's what above EFI related mkisofs options will do.
>
>
> > If so, what should go inside this .img file?
>
> A FAT filesystem with the appropriate content of an EFI system partition.
> The software in there should be able to hand over execution to software
> which is stored in the ISO 9660 filesystem (where the EFI partition is
> accessible as the content of a data file).
>
> The FAT filesystem has to be smaller than 32 MiB, because the El Torito
> boot catalog can express larger sizes only as size 0 or 1 which according
> to UEFI specs mean "up to the end of the storage device".
> But the isohybrid program does not care about this meaning of 0 and 1.
> (See calls of function read_efi_catalogue() and usage of variable
> efi_count in
> https://raw.githubusercontent.com/geneC/syslinux/master/utils/isohybrid.c
> )
>
>
> --------------------------------------------------------------------
>
> Further: You must not use isohybrid option -partok, unless you want to
> boot the ISO in legacy BIOS mode from a partition of the (virtual)
> USB stick. If the hybrid ISO shall boot via EFI, then it must be put
> on the base device of the USB stick (e.g. Linux sdc), not on one of its
> partitions (e.g. Linux sdc2).
>
> So -partok means either no EFI (but legacy BIOS works with the ISO in a
> partition) or no Legacy BIOS (but EFI finds its system partition).
>
>
> Have a nice day :)
>
> Thomas
>
>
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at syslinux.org
> Unsubscribe or set options at:
> https://lists.syslinux.org/syslinux