|
|
1.1 ! root 1: #!/bin/bash ! 2: # ! 3: # Generate a isolinux ISO boot image ! 4: # ! 5: # geniso foo.iso foo.lkrn ! 6: # ! 7: # the ISO image is the first argument so that a list of .lkrn images ! 8: # to include can be specified ! 9: # ! 10: case $# in ! 11: 0|1) ! 12: echo Usage: $0 foo.iso foo.lkrn ... ! 13: exit 1 ! 14: ;; ! 15: esac ! 16: ! 17: # This should be the default location of the isolinux.bin file ! 18: isolinux_bin=${ISOLINUX_BIN:-util/isolinux.bin} ! 19: if [ ! -r $isolinux_bin ] ! 20: then ! 21: echo $0: $isolinux_bin not found, please install, or set ISOLINUX_BIN in arch/i386/Makefile correctly ! 22: exit 1 ! 23: fi ! 24: ! 25: # There should either be mkisofs or the compatible genisoimage program ! 26: mkisofs=`which mkisofs genisoimage 2>/dev/null | head -n1` ! 27: if [ -z $mkisofs ] ! 28: then ! 29: echo $0: mkisofs or genisoimage not found, please install or set PATH ! 30: exit 1 ! 31: fi ! 32: ! 33: # isohybrid will be used if available ! 34: isohybrid=`which isohybrid 2>/dev/null` ! 35: ! 36: out=$1 ! 37: shift ! 38: dir=`mktemp -d bin/iso.dir.XXXXXX` ! 39: cfg=$dir/isolinux.cfg ! 40: cp -p $isolinux_bin $dir ! 41: cat > $cfg <<EOF ! 42: # These default options can be changed in the geniso script ! 43: SAY iPXE ISO boot image ! 44: TIMEOUT 30 ! 45: EOF ! 46: first= ! 47: for f ! 48: do ! 49: if [ ! -r $f ] ! 50: then ! 51: echo $f does not exist, skipping 1>&2 ! 52: continue ! 53: fi ! 54: b=$(basename $f) ! 55: g=${b%.lkrn} ! 56: g=${g//[^a-z0-9]}.krn ! 57: case "$first" in ! 58: "") ! 59: echo DEFAULT $g ! 60: ;; ! 61: esac ! 62: first=$g ! 63: echo LABEL $b ! 64: echo "" KERNEL $g ! 65: cp -p $f $dir/$g ! 66: done >> $cfg ! 67: $mkisofs -quiet -l -o $out -c boot.cat -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table $dir ! 68: rm -fr $dir ! 69: if [ -n "$isohybrid" ] ! 70: then ! 71: $isohybrid $out >/dev/null ! 72: fi
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.