1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/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/config correctly
- exit 1
- fi
- out=$1
- shift
- dir=bin/iso.dir
- mkdir -p $dir
- 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
|