Download the iso file of the Linux distribution you want installed in the image. The instructions below are tested on Ubuntu 11.10 Oneiric Ocelot 64-bit server and Fedora 14 64-bit. Most of the instructions refer to Ubuntu. The points of difference between Ubuntu and Fedora are mentioned wherever required.
wget http://releases.ubuntu.com/oneiric/ubuntu-11.10-server-amd64.iso
Boot a KVM instance with the OS installer ISO in the virtual CD-ROM. This will start the installation process. The command below also sets up a VNC display at port 0
sudo kvm -m 256 -cdrom ubuntu-11.10-server-amd64.iso -drive file=server.img,if=scsi,index=0 -boot d -net nic -net user -nographic -vnc :0
Connect to the VM through VNC (use display number :0) and finish the installation.
For Example, where 10.10.10.4 is the IP address of client1:
vncviewer 10.10.10.4 :0
During the installation of Ubuntu, create a single ext4 partition mounted on '/'. Do not create a swap partition.
In the case of Fedora 14, the installation will not progress unless you create a swap partition. Please go ahead and create a swap partition.
After finishing the installation, relaunch the VM by executing the following command.
sudo kvm -m 256 -drive file=server.img,if=scsi,index=0,boot=on -boot c -net nic -net user -nographic -vnc :0
At this point, you can add all the packages you want to have installed, update the installation, add users and make any configuration changes you want in your image.
At the minimum, for Ubuntu you may run the following commands
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server cloud-init
For Fedora run the following commands as root
yum update
yum install openssh-server
chkconfig sshd on
Also remove the network persistence rules from /etc/udev/rules.d as their presence will result in the network interface in the instance coming up as an interface other than eth0.
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
Shutdown the virtual machine and proceed with the next steps.
