Build devstack images
diff --git a/build_pxe_boot.sh b/build_pxe_boot.sh
index 16fa02c..c5ef276 100755
--- a/build_pxe_boot.sh
+++ b/build_pxe_boot.sh
@@ -1,9 +1,10 @@
#!/bin/bash
# build_pxe_boot.sh - Create a PXE boot environment
#
-# build_pxe_boot.sh destdir
+# build_pxe_boot.sh [-k kernel-version] destdir
#
# Assumes syslinux is installed
+# Assumes devstack files are in `pwd`/pxe
# Only needs to run as root if the destdir permissions require it
UBUNTU_MIRROR=http://archive.ubuntu.com/ubuntu/dists/natty/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64
@@ -12,8 +13,15 @@
MEMTEST_BIN=memtest86+-${MEMTEST_VER}.bin
MEMTEST_URL=http://www.memtest.org/download/${MEMTEST_VER}/
+KVER=`uname -r`
+if [ "$1" = "-k" ]; then
+ KVER=$2
+ shift;shift
+fi
+
DEST_DIR=${1:-/tmp}/tftpboot
OPWD=`pwd`
+PROGDIR=`dirname $0`
mkdir -p $DEST_DIR/pxelinux.cfg
cd $DEST_DIR
@@ -31,17 +39,42 @@
EOF
-# Get Ubuntu netboot
+# Setup devstack boot
mkdir -p $DEST_DIR/ubuntu
-cd $DEST_DIR/ubuntu
-wget -N --quiet $UBUNTU_MIRROR/linux
-wget -N --quiet $UBUNTU_MIRROR/initrd.gz
+if [ ! -d $OPWD/pxe ]; then
+ mkdir -p $OPWD/pxe
+fi
+if [ ! -r $OPWD/pxe/vmlinuz-${KVER}-generic ]; then
+ if [ ! -r /boot/vmlinuz-${KVER}-generic ]; then
+ echo "No kernel found"
+ else
+ cp -p /boot/vmlinuz-${KVER}-generic $OPWD/pxe
+ fi
+fi
+cp -p $OPWD/pxe/vmlinuz-${KVER}-generic $DEST_DIR/ubuntu
+if [ ! -r $OPWD/pxe/stack-initrd.gz ]; then
+ $PROGDIR/build_pxe_ramdisk.sh $OPWD/pxe/stack-initrd.gz
+fi
+cp -p $OPWD/pxe/stack-initrd.gz $DEST_DIR/ubuntu
+cat >>$DEFAULT <<EOF
+
+LABEL devstack
+ MENU LABEL ^devstack
+ MENU DEFAULT
+ KERNEL ubuntu/vmlinuz-$KVER-generic
+ APPEND initrd=ubuntu/stack-initrd.gz ramdisk_size=2109600 root=/dev/ram0
+EOF
+
+# Get Ubuntu
+if [ -d $OPWD/pxe ]; then
+ cp -p $OPWD/pxe/natty-min-initrd.gz $DEST_DIR/ubuntu
+fi
cat >>$DEFAULT <<EOF
LABEL ubuntu
- MENU LABEL Ubuntu Natty
- KERNEL ubuntu/linux
- APPEND initrd=ubuntu/initrd.gz
+ MENU LABEL ^Ubuntu Natty
+ KERNEL ubuntu/vmlinuz-$KVER-generic
+ APPEND initrd=ubuntu/natty-base-initrd.gz ramdisk_size=419600 root=/dev/ram0
EOF
# Get Memtest
@@ -53,7 +86,7 @@
cat >>$DEFAULT <<EOF
LABEL memtest
- MENU LABEL Memtest86+
+ MENU LABEL ^Memtest86+
KERNEL $MEMTEST_BIN
EOF
@@ -74,7 +107,7 @@
cat >>$DEFAULT <<EOF
LABEL local
- MENU LABEL Local disk
+ MENU LABEL ^Local disk
MENU DEFAULT
LOCALBOOT 0
EOF