0

How can I create a UEFI bootable CD ?

ISOLINUX has no mention of UEFI: https://wiki.syslinux.org/wiki/index.php?title=ISOLINUX

while SYSLINUX does, but specific to syslinux: https://wiki.syslinux.org/wiki/index.php?title=Install#UEFI

I have installed these packages: syslinux syslinux-common isolinux syslinux-efi

I flowed the instructions to create legacy (non-UEFI) bootable CD with ISOLINUX, and this is the file structure:

CD_root/
CD_root/isolinux/
CD_root/isolinux/isolinux.bin
CD_root/isolinux/isolinux.cfg
CD_root/isolinux/ldlinux.c32

I assume, the files isolinux.bin and ldlinux.c32 are for legacy boot only.

While there is UEFI specific ldlinux.e64, there is no isolinux.efi in /usr/lib/ISOLINUX/ or anywhere else.

What exactly do I need to do differently, to create UEFI bootable CD ?

5
  • does this help? Commented Aug 11, 2023 at 6:32
  • @Jaromanda X - thank you, but that looks more complicated than it needs to be. I do not need backward compatibility for legacy boot. I just need to boot from UEFI. Commented Aug 11, 2023 at 7:24
  • @400theCat so, skip the "Old BIOS side" of that guide Commented Aug 11, 2023 at 8:51
  • @Marcus Müller - I am more confused than before. I don't understand those instructions, and what role busybox and qemu play in all of this. I just need simple few steps how to create my own UEFI bootable cd. I have my own vmlinuz and initrd.xz. Where do I put what to boot from CD ? Commented Aug 11, 2023 at 10:17
  • You'd only need syslinux.efi and ldlinux.e64 to boot EFI x64. Commented Aug 15, 2023 at 19:35

1 Answer 1

1
+250

not specific to CD, but here is general guide how to make syslinux UEFI bootable medium:

parted /dev/sdf mklabel gpt
parted /dev/sdf mkpart boot fat32 0% 100%
parted /dev/sdf set 1 esp on
parted /dev/sdf set 1 boot on

mkfs.vfat -F 32 /dev/sdf1

mount /dev/sdf1 /mnt/tmp/

mkdir -p /mnt/tmp/EFI/BOOT/

cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /mnt/tmp/EFI/BOOT/BOOTX64.EFI
cp /usr/lib/syslinux/modules/efi64/menu.c32 /mnt/tmp/EFI/BOOT/
cp /usr/lib/syslinux/modules/efi64/ldlinux.e64  /mnt/tmp/EFI/BOOT/
cp /usr/lib/syslinux/modules/efi64/libutil.c32  /mnt/tmp/EFI/BOOT/

umount /mnt/tmp/

efibootmgr --create --disk /dev/sdf --part 1 --loader /EFI/BOOT/BOOTX64.EFI --label "syslinux" --unicode

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .