mirror of
https://github.com/ipxe/ipxe
synced 2026-02-11 13:49:51 +03:00
We add a syslinux floppy disk type using parts of the genliso script. This floppy image cat be dd'ed to a physical floppy or used in instances where a virtual floppy with an mountable DOS filesystem is useful. We also modify the genliso script to only generate .liso images rather than creating images depending on how it is called. Signed-off-by: Michael Brown <mcb30@etherboot.org>
76 lines
1.2 KiB
Bash
Executable File
76 lines
1.2 KiB
Bash
Executable File
#!/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]*|Mtools\ version\ 4.*)
|
|
;;
|
|
*)
|
|
echo Mtools version 3.9.9 or later is required
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
out=$1
|
|
shift
|
|
|
|
dir=bin/liso.dir
|
|
mkdir -p $dir
|
|
|
|
img=$dir/boot.img
|
|
mformat -f 1440 -C -i $img ::
|
|
|
|
cfg=bin/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 -o $out -c boot.cat -b boot.img $dir
|
|
|
|
rm -fr $dir
|