Bootable CD iso
https://github.com/syzdek/efibootiso
mkdir -p efibootiso
cd efibootiso
mkdir -p EFI/BOOT
mkdir -p boot/grub/x86_64-efi
curl -o boot/vmlinuz \
https://mirrors.kernel.org/slackware/slackware64-current/kernels/huge.s/bzImage
curl -o boot/initrd.img \
https://mirrors.kernel.org/slackware/slackware64-current/isolinux/initrd.img
EFI/BOOT/{BOOTx64.EFI BOOTIA32.EFI}
bootx64.efi ---------UEFI的必需引导文件
Example
sudo xorriso -as mkisofs \
--modification-date=2024122615551800\
--protective-msdos-label \
-volid "ALPINE_TEAISO" \
-appid "Alpine Linux Live/Rescue Media" \
-publisher "Alpine Linux <https://alpinelinux.org>" \
-preparer "Prepared by TeaISO v2" \
-r -graft-points -no-pad \
--sort-weight 0 / \
--sort-weight 1 /boot \
--grub2-mbr /data/isowork/boot/grub/i386-pc/boot_hybrid.img \
-iso_mbr_part_type 0x83 \
-isohybrid-gpt-basdat \
-partition_offset 16 \
-b boot/grub/i386-pc/eltorito.img \
-c boot.catalog \
-no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
-eltorito-alt-boot \
-append_partition 2 0xef /data/isowork/efi.img \
-append_partition 3 0x83 /data/writable.img \
-e --interval:appended_partition_2:all:: \
-no-emul-boot \
--mbr-force-bootable \
-apm-block-size 512 \
-partition_cyl_align off \
-full-iso9660-filenames \
-iso-level 3 -rock -joliet \
-o example.iso \
/data/isowork/
Grub2
makearchiso, teaiso, liveslack
https://samwhelp.github.io/note-about-archlinux/read/core/iso/build-iso/start-build-arch-iso.html
https://fedoraproject.org/wiki/LiveOS_image
https://www.gnu.org/software/grub/manual/legacy/Making-a-GRUB-bootable-CD_002dROM.html
https://docs.fedoraproject.org/en-US/quick-docs/grub2-bootloader/
https://github.com/nanoant/efi.git
https://mvallim.github.io/live-custom-ubuntu-from-scratch/
https://www.cnblogs.com/searchstar/p/18437677
isolinux
https://mvallim.github.io/live-custom-ubuntu-from-scratch/
mkdir -p image/{casper,isolinux,install}
cp /boot/vmlinuz-**-**-generic image/casper/vmlinuz
cp /boot/initrd.img-**-**-generic image/casper/initrd
sudo apt install isolinux
sudo apt install syslinux
cp /usr/lib/ISOLINUX/isolinux.bin image/isolinux/
cp /usr/lib/syslinux/modules/bios/* image/isolinux/
isolinux/isolinux.cfg
UI vesamenu.c32
MENU TITLE Boot Menu
DEFAULT linux
TIMEOUT 600
MENU RESOLUTION 640 480
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
LABEL linux
MENU LABEL Try Ubuntu FS
MENU DEFAULT
KERNEL /casper/vmlinuz
APPEND initrd=/casper/initrd boot=casper
LABEL linux
MENU LABEL Try Ubuntu FS (nomodeset)
MENU DEFAULT
KERNEL /casper/vmlinuz
APPEND initrd=/casper/initrd boot=casper nomodeset