[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Testing Debian Edu in qemu



I test the Debian Edu installation using qemu.  And to help do this
efficiently, I have written a script to run the commands in the
correct order.  The script has grown over the years, and this is what
it currently do:

 - Fetch the latest CD netinst image from ftp.skolelinux.org using
   rsync.
 - Create the hard disk images for the main-server and the
   workstation.
 - Start a qemu to install a main-server, using qemu user network to
   get online.  Terminate qemu when it is done installing and fail to
   boot from hard drive.
 - Wait for [enter] to be pressed in the terminal, and start (1) a
   gateway using floppyfw, (2) the freshly installed main-server, (3)
   a PXE booted workstation to be installed, (4) a PXE booted diskless
   workstation and (5) a PXE-booted thin client.  All of them
   networked using qemu multicast.

About 35 GB of disk space is needed if both the virtual hard drives
are filled.  If not, around 7 GB is needed.

Here is the script.  Please give it a go and let me know if it help
you test the Lenny based Debian Edu.  Perhaps it should go into our
svn?

!/bin/bash

#nop=echo

# Which image to test
dist=lenny-test-i386
archlist=i386-CD

gwmem=64
mem=128
ltspmem=32
disksizegb=17

disksize=$(($disksizegb * 1024 * 1024))

if [ -z "$image" ]; then
    image=$dist-$archlist-1.iso
fi
if false ; then
    $nop rsync -vt ftp.skolelinux.no::cd-$dist/debian-edu-$archlist-1.iso \
        $image
fi

pxeimage=eb-5.4.3-rtl8139.iso
if [ ! -f $pxeimage ] ; then
    echo "Missing image $pxeimage.  Fetch from http://rom-o-matic.net/.";
    exit 1;
fi

gwimage="floppyfw-3.0.5.iso"
if [ ! -f $gwimage ] ; then
    wget http://www.zelow.no/floppyfw/download/floppyfw-3.0/floppyfw-3.0.5/floppyfw-3.0.5.iso
fi

if [ ! -f hda-main ] ; then
    $nop qemu-img create hda-main $disksize
fi

if [ ! -f hda-ws ] ; then
    $nop qemu-img create hda-ws $disksize
fi

opts="-user-net -pci -fda fda.img"
opts=""

installnet=""

gwnet="\
    -net nic,model=rtl8139,vlan=1 \
    -net user,vlan=1 \
    -net nic,model=rtl8139,vlan=2 \
    -net socket,mcast=230.0.0.1:1232,vlan=2 \
    "
servernet="\
    -net nic,model=rtl8139,vlan=2\
    -net socket,mcast=230.0.0.1:1232,vlan=2 \
    -net nic,model=rtl8139,vlan=4 \
    -net socket,mcast=230.0.0.1:1234,vlan=4 \
    "
wclientnet="\
    -net nic,model=rtl8139 \
    -net socket,mcast=230.0.0.1:1232 \
    "
tclientnet="\
    -net nic,model=rtl8139 \
    -net socket,mcast=230.0.0.1:1234 \
    "

$nop qemu $opts -m $mem $installnet \
    -redir tcp:2222::22 \
    -boot d \
    -cdrom $image \
    -hda hda-main

echo
echo "Restarting qemu with boot from HD.  Press [enter] to continue."
$nop read

# Start gateway
$nop qemu $opts -m $gwmem $gwnet \
    -redir tcp:2222::22 \
    -boot d \
    -cdrom $gwimage &

sleep 2

# Start thin client
$nop qemu $opts -m $ltspmem $tclientnet \
    -boot d \
    -cdrom $pxeimage &


# Start diskless workstation
$nop qemu $opts -m $ltspmem $wclientnet \
    -boot d \
    -cdrom $pxeimage &

# Starting workstation
$nop qemu $opts -m $mem $servernet \
  -boot d \
  -cdrom $image \
  -hda hda-ws &

# Starting server
$nop qemu $opts -m $mem $servernet \
  -boot c \
  -cdrom $image \
  -hda hda-main

Happy hacking,
-- 
Petter Reinholdtsen


Reply to: