#!/bin/bash DIR=$(dirname `readlink -f $0`) . $DIR/../testing.conf . $DIR/function.sh [ `id -u` -eq 0 ] || die "You must be root to run $0" running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0" [ -n "$1" ] || die "$0 >" check_commands partprobe qemu-nbd load_qemu_nbd mkdir -p $LOOPDIR mkdir -p $IMGDIR mkdir -p $SHAREDDIR echo "Mounting image" case "$1" in base) [ -f "$BASEIMG" ] || die "Base image $BASEIMG not found" log_action "Connecting base image to NBD device $NBDEV" execute "qemu-nbd -c $NBDEV $BASEIMG" affected="root and guest" ;; root) [ -f "$ROOTIMG" ] || die "Root image $ROOTIMG not found" log_action "Connecting root image to NBD device $NBDEV" execute "qemu-nbd -c $NBDEV $ROOTIMG" affected="guest" ;; *) echo $STRONGSWANHOSTS | grep -q "\b$1\b" || die "Guest $1 not found" GUESTIMG="$IMGDIR/$1.$IMGEXT" [ -f "$GUESTIMG" ] || die "Guest image $GUESTIMG not found" log_action "Connecting guest image to NBD device $NBDEV" execute "qemu-nbd -c $NBDEV $GUESTIMG" ;; esac do_on_exit qemu-nbd -d $NBDEV partprobe $NBDEV log_action "Mounting $NBDPARTITION to $LOOPDIR" execute "mount $NBDPARTITION $LOOPDIR" do_on_exit umount $LOOPDIR log_action "Mounting proc filesystem to $LOOPDIR/proc" execute "mount -t proc none $LOOPDIR/proc" do_on_exit umount $LOOPDIR/proc mkdir -p $LOOPDIR/root/shared log_action "Mounting $SHAREDDIR as /root/shared" execute "mount -o bind $SHAREDDIR $LOOPDIR/root/shared" do_on_exit umount $LOOPDIR/root/shared if [ -n "$affected" ]; then echo echo "Rebuild the $affected images after making changes to this image!" echo fi export debian_chroot="$1" chroot $LOOPDIR /bin/bash -i