#!/bin/sh -x
set -e

IMAGE_URL=http://cloud-images.ubuntu.com/releases/precise/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img

wget -O base.qcow2 $IMAGE_URL

image=base.raw
qemu-img convert -O raw base.qcow2 $image
rm -f base.qcow2

# Note: this assumes that sector size is 512, and that there's only one
# partition. very brittle.
START_SECT=$(fdisk -lu $image | grep ^$image | awk '{print $3}')
START_BYTE=$(echo "$START_SECT * 512" | bc)

root=/tmp/$$

cleanup() {
    sudo chroot $root rm -f /etc/resolv.conf || true
    sudo chroot $root ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf || true
	sudo umount $root/proc || true
	sudo umount $root/sys || true
	sudo umount $root/dev/pts || true
	sudo umount $root
    sudo rmdir $root
}
trap cleanup INT TERM EXIT

sudo mkdir $root
sudo mount -o loop,offset=$START_BYTE $image $root

# set up chroot
sudo mount -t proc proc $root/proc
sudo mount -t sysfs sysfs $root/sys
sudo mount -t devpts devptr $root/dev/pts

# set up network access
sudo chroot $root rm /etc/resolv.conf
sudo cp /etc/resolv.conf $root/etc/resolv.conf

# packages
# These should be kept in sync with ceph-qa-chef.git/cookbooks/ceph-qa/default.rb
sudo chroot $root apt-get -y --force-yes install iozone3 bonnie++ dbench \
    tiobench build-essential attr libtool automake gettext uuid-dev      \
    libacl1-dev bc xfsdump dmapi xfslibs-dev

# install ltp without ltp-network-test, so we don't pull in xinetd and
# a bunch of other unnecessary stuff
sudo chroot $root apt-get -y --force-yes --no-install-recommends install ltp-kernel-test

# add 9p fs support
sudo chroot $root apt-get -y --force-yes install linux-image-extra-virtual

cleanup
trap - INT TERM EXIT

qemu-img convert -O qcow2 $image output.qcow2
rm -f $image

exit 0

Add script to create a vm image with extra packages
Add script to create a vm image with extra packages
