Browse code

Convert to use UEC images

Dean Troyer authored on 2011/10/27 06:05:28
Showing 1 changed files
... ...
@@ -1,17 +1,11 @@
1 1
 #!/bin/bash -e
2 2
 # build_pxe_boot.sh - Create a PXE boot environment
3 3
 #
4
-# build_pxe_boot.sh [-k kernel-version] destdir
4
+# build_pxe_boot.sh destdir
5 5
 #
6 6
 # Assumes syslinux is installed
7 7
 # Only needs to run as root if the destdir permissions require it
8 8
 
9
-KVER=`uname -r`
10
-if [ "$1" = "-k" ]; then
11
-    KVER=$2
12
-    shift;shift
13
-fi
14
-
15 9
 DEST_DIR=${1:-/tmp}/tftpboot
16 10
 PXEDIR=${PXEDIR:-/var/cache/devstack/pxe}
17 11
 OPWD=`pwd`
... ...
@@ -20,7 +14,7 @@ PROGDIR=`dirname $0`
20 20
 mkdir -p $DEST_DIR/pxelinux.cfg
21 21
 cd $DEST_DIR
22 22
 for i in memdisk menu.c32 pxelinux.0; do
23
-    cp -p /usr/lib/syslinux/$i $DEST_DIR
23
+    cp -pu /usr/lib/syslinux/$i $DEST_DIR
24 24
 done
25 25
 
26 26
 CFG=$DEST_DIR/pxelinux.cfg/default
... ...
@@ -38,20 +32,37 @@ mkdir -p $DEST_DIR/ubuntu
38 38
 if [ ! -d $PXEDIR ]; then
39 39
     mkdir -p $PXEDIR
40 40
 fi
41
-if [ ! -r $PXEDIR/vmlinuz-${KVER} ]; then
42
-    sudo chmod 644 /boot/vmlinuz-${KVER}
43
-    if [ ! -r /boot/vmlinuz-${KVER} ]; then
41
+
42
+# Get image into place
43
+if [ ! -r $PXEDIR/stack-initrd.img ]; then
44
+    cd $OPWD
45
+    $PROGDIR/build_ramdisk.sh $PXEDIR/stack-initrd.img
46
+fi
47
+if [ ! -r $PXEDIR/stack-initrd.gz ]; then
48
+    gzip -1 -c $PXEDIR/stack-initrd.img >$PXEDIR/stack-initrd.gz
49
+fi
50
+cp -pu $PXEDIR/stack-initrd.gz $DEST_DIR/ubuntu
51
+
52
+if [ ! -r $PXEDIR/vmlinuz-*-generic ]; then
53
+    MNTDIR=`mktemp -d --tmpdir mntXXXXXXXX`
54
+    mount -t ext4 -o loop $PXEDIR/stack-initrd.img $MNTDIR
55
+
56
+    if [ ! -r $MNTDIR/boot/vmlinuz-*-generic ]; then
44 57
         echo "No kernel found"
58
+        umount $MNTDIR
59
+        rmdir $MNTDIR
60
+        exit 1
45 61
     else
46
-        cp -p /boot/vmlinuz-${KVER} $PXEDIR
62
+        cp -pu $MNTDIR/boot/vmlinuz-*-generic $PXEDIR
47 63
     fi
64
+    umount $MNTDIR
65
+    rmdir $MNTDIR
48 66
 fi
49
-cp -p $PXEDIR/vmlinuz-${KVER} $DEST_DIR/ubuntu
50
-if [ ! -r $PXEDIR/stack-initrd.gz ]; then
51
-    cd $OPWD
52
-    sudo $PROGDIR/build_ramdisk.sh $PXEDIR/stack-initrd.gz
53
-fi
54
-cp -p $PXEDIR/stack-initrd.gz $DEST_DIR/ubuntu
67
+
68
+# Get generic kernel version
69
+KNAME=`basename $PXEDIR/vmlinuz-*-generic`
70
+KVER=${KNAME#vmlinuz-}
71
+cp -pu $PXEDIR/vmlinuz-$KVER $DEST_DIR/ubuntu
55 72
 cat >>$CFG <<EOF
56 73
 
57 74
 LABEL devstack
... ...
@@ -63,7 +74,7 @@ EOF
63 63
 
64 64
 # Get Ubuntu
65 65
 if [ -d $PXEDIR -a -r $PXEDIR/natty-base-initrd.gz ]; then
66
-    cp -p $PXEDIR/natty-base-initrd.gz $DEST_DIR/ubuntu
66
+    cp -pu $PXEDIR/natty-base-initrd.gz $DEST_DIR/ubuntu
67 67
     cat >>$CFG <<EOF
68 68
 
69 69
 LABEL ubuntu