diff options
Diffstat (limited to 'contrib/syslinux-4.02/gpxe/src/util/genliso')
-rwxr-xr-x | contrib/syslinux-4.02/gpxe/src/util/genliso | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/gpxe/src/util/genliso b/contrib/syslinux-4.02/gpxe/src/util/genliso new file mode 100755 index 0000000..1f1c116 --- /dev/null +++ b/contrib/syslinux-4.02/gpxe/src/util/genliso @@ -0,0 +1,74 @@ +#!/bin/bash +# +# Generate a legacy floppy emulation ISO boot image +# +# genliso foo.liso foo.lkrn bar.lkrn ... +# +# The .liso image filename is the first argument followed by +# a list of .lkrn images include in .liso image + +case $# in +0|1) + echo Usage: $0 foo.liso foo.lkrn ... + exit 1 + ;; +esac + +case "`mtools -V`" in +Mtools\ version\ 3.9.9*|Mtools\ version\ 3.9.1[0-9]*|[mM]tools\ *\ [4-9].*) + ;; +*) + echo Mtools version 3.9.9 or later is required + exit 1 + ;; +esac + +out=$1 +shift + +dir=`mktemp -d bin/liso.dir.XXXXXX` + +img=$dir/boot.img +mformat -f 1440 -C -i $img :: + +cfg=$dir/syslinux.cfg +cat > $cfg <<EOF +# These default options can be changed in the genliso script +SAY gPXE ISO boot image generated by genliso +TIMEOUT 30 +EOF + +first= +for f +do + if [ ! -r $f ] + then + echo $f does not exist, skipping 1>&2 + continue + fi + # shorten name for 8.3 filesystem + b=$(basename $f) + g=${b%.lkrn} + g=${g//[^a-z0-9]} + g=${g:0:8}.krn + case "$first" in + "") + echo DEFAULT $g + ;; + esac + first=$g + echo LABEL $b + echo "" KERNEL $g + mcopy -m -i $img $f ::$g +done >> $cfg + +mcopy -i $img $cfg ::syslinux.cfg + +if ! syslinux $img +then + exit 1 +fi + +mkisofs -q -o $out -c boot.cat -b boot.img $dir + +rm -fr $dir |