Had to expand a KVM virtual machine today. Luckily, that`s pretty straight forward. You simply create a new disk image with the extra size needed, merge it into the original disk and voila. Then you just need to partition in the extra space and you are good to go.
1: Halt your virtual machine.
You need to stop your virtual machine before going wild with the drive. Virsh stop <vm name>, or virsh destroy <vm name> if it somehow wont stop.
2: Create a disk with the extra space needed:
qemu-img create -f raw 5gig.img 5G
3: Merge it into the disk you are working with
cat 5gig.img >> yourdisk.img
4: Boot up and and partition your drive.
Then start up your virtual machine again with virsh start <vm name>. If you use Windows server, all you need to do is to visit disk managent, right click your drive with little free space and choose “extend partition”. The job takes seconds and does not require any reboot.