Files
ipxe/src/util/gensdsk
Stefan Hajnoczi 0ea6e5c221 [util] Make mtools check detect new versions
The mtools version check does not handle GNU mtools 4.0.10.  This commit
makes the pattern more general so it matches older mtools as well as the
newer "mtools (GNU mtools) 4.0.10" string.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Marty Connor <mdc@etherboot.org>
2009-10-15 14:54:30 -04:00

66 lines
1.0 KiB
Bash

#!/bin/bash
#
# Generate a syslinux floppy that loads a gPXE image
#
# gensdsk foo.sdsk foo.lkrn
#
# the floppy image is the first argument
# followed by list of .lkrn images
#
case $# in
0|1)
echo Usage: $0 foo.sdsk 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
img=$1
shift
dir=`mktemp -d bin/sdsk.dir.XXXXXX`
mformat -f 1440 -C -i $img ::
cfg=$dir/syslinux.cfg
cat > $cfg <<EOF
# These default options can be changed in the gensdsk script
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
rm -fr $dir