#!/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