X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=packiso.sh;h=b6558f2793626ac9a8cfeb3e19762b75608f5b56;hb=d156db07bceac19aac29ebb70bf4b25acc69d237;hp=aed2a7e76640cb1caf56bc975b4b4c6b76d806d8;hpb=5d60d1008409c64ab7a3e92dbffed1c139791e4b;p=rrq%2Ftiniest.git diff --git a/packiso.sh b/packiso.sh index aed2a7e..b6558f2 100755 --- a/packiso.sh +++ b/packiso.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Run xorriso to make a bootable ISO of bootimage.raw; a hybrid, nulti +# Run xorriso to make a bootable ISO of bootimage.raw; a hybrid, multi # mode bootable ISO. set -e @@ -9,11 +9,10 @@ ISOTREE=isotree ISO=tiniest.iso P1=part1.raw # $ISOTREE/part1.raw -echo "# Prepare ISO content tree" - +echo "# Prepare ISO content tree unless it's already set up" if [ ! -d $ISOTREE ] ; then mkdir $ISOTREE - #touch $ISOTREE/catalog # Boot catalog + # Determine start and size of first parition X=( $(sfdisk -l -ostart,sectors bootimage.raw | tail -n 2) ) dd if=bootimage.raw of=$P1 skip=${X[0]} count=${X[1]} @@ -21,22 +20,21 @@ if [ ! -d $ISOTREE ] ; then echo "# Set up the isolinux boot loader in $ISOTREE" mkdir -p $ISOTREE/boot/isolinux/bios cp kernel/usr/lib/syslinux/modules/bios/* $ISOTREE/boot/isolinux/bios - mv $ISOTREE/boot/isolinux/bios/ldlinux.c32 $ISOTREE/boot/isolinux cp kernel/usr/lib/ISOLINUX/isolinux.bin $ISOTREE/boot/isolinux - cp syslinux-iso.cfg $ISOTREE/boot/isolinux/syslinux.cfg - mcopy -i $P1 ::/splash.png ::/vmlinuz $ISOTREE/ - #mkdir -p $ISOTREE/EFI/BOOT - #cp kernel/usr/lib/SYSLINUX.EFI/efi64/syslinux.efi \ - # $ISOTREE/EFI/BOOT/bootia64.efi - #cp $ISOTREE/boot/isolinux/*.* $ISOTREE/EFI/boot/ + ## ldlinux.c32 must be sibling to isolinux.bin + mv $ISOTREE/boot/isolinux/bios/ldlinux.c32 $ISOTREE/boot/isolinux + + ## use isolinux.cfg for isolinux boot + cp syslinux-iso.cfg $ISOTREE/boot/isolinux/isolinux.cfg + + ## put splash, vmlinux and initrd as siblings + mcopy -i $P1 ::/splash.png ::/vmlinuz ::/initrd.gz $ISOTREE/boot/isolinux - #mcopy -i $P1 ::/ldlinux.sys ::/ldlinux.c32 $ISOTREE/ - #mcopy -i $P1 ::/initrd.gz $ISOTREE/ - #cp devuan/initrd.gz $ISOTREE/ fi -[ ! -r $ISO ] || rm $ISO +[ -r $ISO ] && rm $ISO + PREPID="'$(id -un), $(getent passwd $(id -un)|awk -F: '{print $5}')'" XORRISO=( @@ -62,17 +60,19 @@ XORRISO=( # Mastering a disk legacy boot reusing the cdrom legacy boot -boot_image isolinux dir=/boot/isolinux - -boot_image any next - + #-boot_image any iso_mbr_part_type=0x00 + -boot_image isolinux partition_entry=gpt_basdat + # Mastering a disk UEFI boot using the separate boot partition $P1 # Bootloader = /EFI/BOOT/bootx64.efi + -boot_image any next -append_partition 2 0xef ${P1} -boot_image any efi_path=--interval:appended_partition_2:all::/EFI/BOOT/bootx64.efi - # cdrom UEFI boot is missing + # make part#2 bootable ) xorriso "${XORRISO[@]}" #sfdisk -f --part-attrs tiniest.iso 2 LegacyBIOSBootable -sfdisk -A tiniest.iso 2 +#sfdisk -A tiniest.iso 2