blob: 33a2405a7cb1fa5692c423fe899f5ad30960246b [file] [log] [blame]
Dean Troyer3f717002011-09-27 17:53:11 -05001#!/bin/bash
2# make_pxe.sh - Create a PXE boot environment
3#
4# make_pxe.sh destdir
5#
6# Assumes syslinux is installed
7# Configues PXE for Ubuntu Natty and FreeDOS
8
9UBUNTU_MIRROR=http://archive.ubuntu.com/ubuntu/dists/natty/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64
10
Dean Troyer1f80bfb2011-09-27 22:19:32 -050011MEMTEST_VER=4.10
12MEMTEST_BIN=memtest86+-${MEMTEST_VER}.bin
13MEMTEST_URL=http://www.memtest.org/download/${MEMTEST_VER}/
14
15DEST_DIR=${1:-/tmp}/tftpboot
Dean Troyer3f717002011-09-27 17:53:11 -050016OPWD=`pwd`
17
Dean Troyer1f80bfb2011-09-27 22:19:32 -050018mkdir -p $DEST_DIR/pxelinux.cfg
19cd $DEST_DIR
20for i in memdisk menu.c32 pxelinux.0; do
21 cp -p /usr/lib/syslinux/$i $DEST_DIR
22done
23
Dean Troyer3f717002011-09-27 17:53:11 -050024DEFAULT=$DEST_DIR/pxelinux.cfg/default
25cat >$DEFAULT <<EOF
26default menu.c32
27#display pxelinux.cfg/menu.txt
28prompt 0
29#timeout 0
30
31MENU TITLE PXE Boot Menu
32
33EOF
34
35MENU=$DEST_DIR/pxelinux.cfg/menu.txt
36cat >$MENU <<EOF
37PXE Boot Menu
38
39EOF
40
Dean Troyer3f717002011-09-27 17:53:11 -050041# Get Ubuntu netboot
42mkdir -p $DEST_DIR/ubuntu
43cd $DEST_DIR/ubuntu
44wget -N --quiet $UBUNTU_MIRROR/linux
45wget -N --quiet $UBUNTU_MIRROR/initrd.gz
46cat >>$DEFAULT <<EOF
47
48LABEL ubuntu
49 MENU LABEL Ubuntu Natty
50 KERNEL ubuntu/linux
51 APPEND initrd=ubuntu/initrd.gz
52EOF
53cat >>$MENU <<EOF
54ubuntu - Ubuntu Natty
55EOF
56
Dean Troyer1f80bfb2011-09-27 22:19:32 -050057# Get Memtest
58cd $DEST_DIR
59if [ ! -r $MEMTEST_BIN ]; then
60 wget -N --quiet ${MEMTEST_URL}/${MEMTEST_BIN}.gz
61 gunzip $MEMTEST_BIN
62fi
63cat >>$DEFAULT <<EOF
64
65LABEL memtest
66 MENU LABEL Memtest86+
67 KERNEL $MEMTEST_BIN
68EOF
69cat >>$MENU <<EOF
70memtest - Memtest86+
71EOF
72
Dean Troyer3f717002011-09-27 17:53:11 -050073# Get FreeDOS
74mkdir -p $DEST_DIR/freedos
75cd $DEST_DIR/freedos
76wget -N --quiet http://www.fdos.org/bootdisks/autogen/FDSTD.288.gz
77gunzip -f FDSTD.288.gz
78cat >>$DEFAULT <<EOF
79
80LABEL freedos
81 MENU LABEL ^FreeDOS bootdisk
82 KERNEL memdisk
83 APPEND initrd=freedos/FDSTD.288
84EOF
85cat >>$MENU <<EOF
86freedos - FreeDOS
87EOF
Dean Troyer1f80bfb2011-09-27 22:19:32 -050088
89# Local disk boot
90cat >>$DEFAULT <<EOF
91
92LABEL local
93 MENU LABEL Local disk
94 MENU DEFAULT
95 LOCALBOOT 0
96EOF
97cat >>$MENU <<EOF
98local - Local disk boot
99EOF
100