|
|
1.1 root 1: #!/bin/bash
2: #
3: # Generate a syslinux floppy that loads a iPXE image
4: #
5: # gensdsk foo.sdsk foo.lkrn
6: #
7: # the floppy image is the first argument
8: # followed by list of .lkrn images
9: #
10:
11: case $# in
12: 0|1)
13: echo Usage: $0 foo.sdsk foo.lkrn ...
14: exit 1
15: ;;
16: esac
17: case "`mtools -V`" in
18: Mtools\ version\ 3.9.9*|Mtools\ version\ 3.9.1[0-9]*|[mM]tools\ *\ [4-9].*)
19: ;;
20: *)
21: echo Mtools version 3.9.9 or later is required
22: exit 1
23: ;;
24: esac
25: img=$1
26: shift
27: dir=`mktemp -d bin/sdsk.dir.XXXXXX`
28:
29: mformat -f 1440 -C -i $img ::
30: cfg=$dir/syslinux.cfg
31: cat > $cfg <<EOF
32:
33: # These default options can be changed in the gensdsk script
34: TIMEOUT 30
35: EOF
36: first=
37: for f
38: do
39: if [ ! -r $f ]
40: then
41: echo $f does not exist, skipping 1>&2
42: continue
43: fi
44: # shorten name for 8.3 filesystem
45: b=$(basename $f)
46: g=${b%.lkrn}
47: g=${g//[^a-z0-9]}
48: g=${g:0:8}.krn
49: case "$first" in
50: "")
51: echo DEFAULT $g
52: ;;
53: esac
54: first=$g
55: echo LABEL $b
56: echo "" KERNEL $g
57: mcopy -m -i $img $f ::$g
58: done >> $cfg
59: mcopy -i $img $cfg ::syslinux.cfg
60: if ! syslinux $img
61: then
62: exit 1
63: fi
64:
65: rm -fr $dir
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.