#!/bin/bash # # Generate a legacy floppy emulation ISO boot image # # genliso foo.liso foo.lkrn # # the ISO image is the first argument so that a list of .lkrn images # to include can be specified # case $0 in *genliso) ;; *genfdimg) genfdimg=1 ;; esac 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 case "$genfdimg" in 1) img=$out ;; *) img=$dir/boot.img ;; esac mformat -f 1440 -C -i $img :: cfg=bin/syslinux.cfg cat > $cfg <&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 case "$genfdimg" in 1) ;; *) mkisofs -o $out -c boot.cat -b boot.img $dir ;; esac rm -fr $dir