You are not logged in.
Hello,
I'm trying to create a UEFI/legacy bootable hybrid ISO from a SquashFS rootfs and a kernel image. I've been looking at the Arch ISO structure and the "Remastering the Install ISO" wiki page to figure out how to do it. I have noticed that there is a filesystem image EFI/archiso/efiboot.img on the Arch ISO, which contains an EFI booting mechanism, and a kernel (which is the exact same kernel as in arch/boot/x86_64/). My question is why this image and the extra kernel are needed, as the root of the ISO already contains an EFI booting mechanism?
Thanks!
Last edited by blochl (2018-09-01 20:04:18)
Offline
efiboot.img is a boot image file for CD/DVD type installation medias. There is a "El Torito" boot data which tells the UEFI loader where this efiboot.img is located. It is kind of "embedded" EFI partition inside the bulk ISO itself.
/arch/boot/x86_64/ has the boot files (loader and kernel) for the USB boot. As you can see, this is not a "image/partition", but a plain directory in the filesystem. This should be a FAT32-formatted partition loaded by also a plain EFI loader on the installation media (/EFI/boot/bootx64.efi).
So the plain answer is; it is included 2 times because of 2 different types of installation medias. In Archiso, the "make_efi()" function makes the installation media bootable if it is copied to a USB, and "make_efiboot()" makes it possible to boot the created ISO from a CD/DVD it was burned on. I hope I explained it clearly enough, if I didn't, please tell me to elaborate
EDIT: Also, the Archiso build should produce a hybrid BIOS/UEFI ISO by default. What is the problem you are having with the produced ISO?
Last edited by jussih (2018-09-01 17:37:25)
Offline
Thanks, jussih!
Very clear! Exactly the explanation I was looking for.
I'm preparing a very minimal system, custom built, not Arch-based. I am just using the Arch ISO for reference. That's why I'm not simply using Archiso.
Offline
Thanks, jussih!
Very clear! Exactly the explanation I was looking for.I'm preparing a very minimal system, custom built, not Arch-based. I am just using the Arch ISO for reference. That's why I'm not simply using Archiso.
No problem,
if you want to see how the Archiso is built and how this El Torito information is actually written using xorriso package, check the script /usr/bin/mkarchiso (you must have the archiso package installed) and especially the "command_iso()" function inside it
Good luck with your ISO building!
Offline