#!/bin/bash # # Generate a isolinux ISO boot image # # geniso foo.iso foo.lkrn # # the ISO image is the first argument so that a list of .lkrn images # to include can be specified # case $# in 0|1) echo Usage: $0 foo.iso foo.lkrn ... exit 1 ;; esac # This should be the default location of the isolinux.bin file isolinux_bin=${ISOLINUX_BIN:-util/isolinux.bin} if [ ! -r $isolinux_bin ] then echo $0: $isolinux_bin not found, please install, or set ISOLINUX_BIN in arch/i386/Makefile correctly exit 1 fi out=$1 shift dir=`mktemp -d bin/iso.dir.XXXXXX` cfg=$dir/isolinux.cfg cp -p $isolinux_bin $dir cat > $cfg <<EOF # These default options can be changed in the geniso script SAY Etherboot ISO boot image generated by geniso TIMEOUT 30 EOF first= for f do if [ ! -r $f ] then echo $f does not exist, skipping 1>&2 continue fi b=$(basename $f) g=${b%.lkrn} g=${g//[^a-z0-9]}.krn case "$first" in "") echo DEFAULT $g ;; esac first=$g echo LABEL $b echo "" KERNEL $g cp -p $f $dir/$g done >> $cfg mkisofs -q -l -o $out -c boot.cat -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table $dir rm -fr $dir