Is it possible to make a custom ISO of Fedora 37?


I’m having some issues making a custom ISO based on Fedora 37 with xorriso, mkisofs and (!) the livecd-tools. If I want to rebuild the ISO to include a kickstart-file on the ISO, and edit the grub.cfg to choose an install menu entry using the kickstart-file by default, I still need to pass on boot information to the program but I can’t for the life of me work out what that boot information is, given that Fedora 37 has done away with syslinux in preference to grub2 as a bootloader.

When inspecting a Fedora 36 Workstation ISO I can see the efiboot.img file in the /images/ directory as I would expect, which to my limited understanding is a FAT-formatted partition that is used to UEFI-boot by CD/DVDs. Inspecting this in turn, we can see the same file structure as /EFI/BOOT/ on the ISO itself, which to my limited understanding would be utilized if booting from USB.

On Fedora 37, the efiboot.img is missing, in its place we find an eltorito.img file. I have however not managed to inspect its contents - It fails to mount whether attempted as a type FAT or not (Ubuntu 22.04 distributes its ISO with an eltorito.img located in their /boot/grub/i386-pc/ directory).

That said, if I do run:
xorriso -indev Fedora-Workstation-Live-x86_64-37-1.7.iso -report_el_torito as_mkisofs

I get the following output:
-b '/images/eltorito.img'

So as you can see, xorriso identifies /images/eltorito.img as the boot image. If I try to run the same mkisofs command as reported by xorriso, however, I get the following error:
xorriso : FAILURE : Cannot find in ISO image: -boot_image ... bin_path='/images/eltorito.img'

Even more interesting, if I simply try copying the iso using xorriso (see this thread):
xorriso -indev Fedora-Workstation-Live-x86_64-37-1.7.iso -outdev test.iso -compliance no_emul_toc -boot_image any replay

It fails to produce an output. By coincidence, so does the livecd-iso-to-disk tool suggested by Fedora. Same goes for Fedora 37 Server and Fedora 37 XFCE. On the other hand, running the same command with a Fedora 36 or ubuntu ISO does not produce any fault and copies the ISO as expected.

So then - Is it possible to modify an ISO of Fedora 37 and pass boot information? What is the relevant boot information here?

Some path structure is different in F37 and as you mentioned syslinux is removed.

It is still work in progress …

1 Like

Ah, I see. :slight_smile:

But that’s interesting, the error livecd-iso-to-disk threw seemed similar to xorriso’s reading, but I doubt xorriso has a dependency towards syslinux in that sense. But yeah, once livecd functions it should be possible to tell what boot information is needed.

Thank you so much for your response! And the link to the github issue, I’ll make sure to keep track of it.

1 Like