mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 04:50:25 +03:00
Initial revision
This commit is contained in:
85
src/util/genliso
Executable file
85
src/util/genliso
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Generate a legacy floppy emulation ISO boot image
|
||||
#
|
||||
# genliso foo.liso foo.zlilo
|
||||
#
|
||||
# the ISO image is the first argument so that a list of .zlilo images
|
||||
# to include can be specified
|
||||
#
|
||||
case $0 in
|
||||
*genliso)
|
||||
;;
|
||||
*genfdimg)
|
||||
genfdimg=1
|
||||
;;
|
||||
esac
|
||||
case $# in
|
||||
0|1)
|
||||
echo Usage: $0 foo.liso foo.zlilo ...
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
case "`mtools -V`" in
|
||||
Mtools\ version\ 3.9.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
|
||||
case "$genfdimg" in
|
||||
1)
|
||||
img=$out
|
||||
;;
|
||||
*)
|
||||
img=$dir/boot.img
|
||||
;;
|
||||
esac
|
||||
mformat -f 1440 -C -i $img ::
|
||||
cfg=bin/syslinux.cfg
|
||||
cat > $cfg <<EOF
|
||||
# These default options can be changed in the genliso script
|
||||
SAY Etherboot 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%.zlilo}
|
||||
g=${g//[^a-z0-9]}
|
||||
g=${g:0:8}.zli
|
||||
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
|
||||
case "$genfdimg" in
|
||||
1)
|
||||
;;
|
||||
*)
|
||||
mkisofs -o $out -c boot.cat -b boot.img $dir
|
||||
;;
|
||||
esac
|
||||
rm -fr $dir
|
||||
Reference in New Issue
Block a user