--- a
+++ b/trunk/wharfie/qemu/qcow.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+OUT=${1}
+d=$(basename $(mktemp -d));
+
+# create blank image
+qemu-img create -f raw ${OUT}.raw 2G &&
+
+# create partition table
+(
+    echo o # Create a new empty DOS partition table
+    echo n # Add a new partition
+    echo p # Primary partition
+    echo 1 # Partition number
+    echo   # First sector (Accept default: 1)
+    echo   # Last sector (Accept default: varies)
+    echo w # Write changes
+) | sudo fdisk ${OUT}.raw &&
+l=$(/sbin/kpartx -l ${OUT}.raw | sed -n '/loop/ s,.*/dev/\(loop[0-9]\+\).*,\1, p;q;') &&
+
+/sbin/kpartx -as ${OUT}.raw &&
+
+# Create filesystem
+uuid=$(mkfs.ext3 /dev/mapper/${l}p1 | sed -n '/^Filesystem UUID/ s,.*: \(.*\),\1, p') &&
+mount /dev/mapper/${l}p1 /tmp/${d} &&
+
+# Copy files
+((tar -cf - .) | (cd /tmp/${d}; tar -xf -)) &&
+
+# Generate fstab with root partition
+mkdir /tmp/${d}/build &&
+(
+    echo "UUID=${uuid} /               ext3    errors=remount-ro 0       0";
+) > /tmp/${d}/etc/fstab
+
+umount /tmp/${d} &&
+/sbin/kpartx -ds ${OUT}.raw &&
+qemu-img convert -O qcow2 ${OUT}.raw ${OUT}
+echo ${uuid} > ${OUT}.uuid
+
+rm -f ${OUT}.raw
+rmdir /tmp/${d}
+