29f465cb3469ce64194fa25260c04c39dce55553
[tests.git] / system / template-qemu / qemu-start-node
1 #!/bin/bash
2
3 # cd in this command's directory
4 cd $(dirname $0)
5
6 ########## globals
7 RAM=1024
8 DISK_SIZE=10G
9 HDA=hdd-cow2-${DISK_SIZE}.img
10 QEMU_CREATE_IMAGE="qemu-img create -f qcow2 $HDA ${DISK_SIZE}"
11
12 SCRIPT=qemu-ifup
13 TAP="tap,script=$SCRIPT"
14
15 ########## from the test environment
16 # expected vars are MACADDR, NODE_ISO, HOSTNAME and TARGET_ARCH
17 CONFIG=qemu.conf
18 if [ ! -e ${CONFIG} ];then
19     echo "File for node_iso version not found"
20     exit 1
21 fi
22 . $CONFIG
23
24 # the launcher, depending on local/target archs
25 # make sure to check qemu-kill-node for consistency
26 archs="$(uname -i)+$TARGET_ARCH"
27 case $archs in
28     i386+i386)          QEMU=qemu;;
29     i386+x86_64)        QEMU=qemu-system-x86_64;;
30     x86_64+i386)        QEMU=qemu;;
31     x86_64+x86_64)      QEMU=qemu-system-x86_64;;
32 esac
33
34 #Creating new HDA if needed only
35 #using qcow2 disk image format which is essential to support VM snapshots
36 if [ -f $HDA ] ; then
37     echo "Using existing $HDA"
38 else
39     echo -n "Creating hard disk image (${DISK_SIZE}) as $HDA .. "
40     img=$($QEMU_CREATE_IMAGE)
41     if [ -z "$img" ];then
42         echo "Failed"
43         exit 1
44     fi
45     echo "Done"
46 fi
47
48 rm -f qemu.pid
49
50 #Command for running the Qemu Emulator
51 ARGS="-boot d  -net nic,macaddr=${MACADDR} -net $TAP, -cdrom ${NODE_ISO} -hda ${HDA} -m ${RAM} -nographic -pidfile qemu.pid"
52 echo "Running $QEMU $ARGS < /dev/null"
53 exec $QEMU $ARGS < /dev/null