First off, you will want to build images on a KVM capable machine. If not, you will be missing out on the hardware acceleration and your install will take forever!


This is a command line tool written in python that will allow you to specify the layout of a guest, and do an installation of that guest.

Since the man page for this program contains most information you would want to know, I will keep this section short with just an example and a few quick notes.

The below example will create a 10GB sparse backing file, and start the installation from the ISO image specified in the --cdrom option. The disk is specified as having a bus type of virtio, this is only available if your distro has virtio drivers available. As of SL5.3 (RHEL5.3) the virtio drivers have been backported as well as all necessary software to support virtio(lvm2, etc) upgraded to enable you to use virtio. If you are using SL5.2 or less you must remove the bus=virtio option.

virt-install --connect qemu:///system \
    --os-type linux \
    --os-variant rhel5 \
    --name sl53 \
    --ram 256 \
    --disk path=/home/mvliet/sl53-pvm.img,bus=virtio,size=10,sparse=true \
    --accelerate \
    --cdrom /home/mvliet/SL.53.031809.DVD.i386.disc1.iso

The example below will create a 10GB guest image and start a net based install of fedora10. To achieve a truly text-only install, the --nographics option is used in combination with the --extra-args option. The provided arguments for the --extra-args option are specific to the Anaconda installer and inform it to enable a serial console for the installation process. Since the default behavior of virt-install is to connect to the guest console, you will immediately be connected to the serial console you told Anaconda to create. This method will also work for RedHat based distros (rhel, centos, scientific linux, etc.) as they will all use Anaconda.

sudo virt-install --connect qemu:///system \
    --os-type linux \
    --name fedora2 \
    --ram 512 \
    --disk path=/home/mvliet/fedora.img,bus=virtio,size=10,sparse=true \
    --accelerate \
    --location \
    --nographics \
    --extra-args="serial console=tty0 console=ttyS0,115200"


  • When creating a KVM guest you must always use the --accelerate option. If you do not, it will fall back to QEMU emulation.
  • the --cdrom option can point to an actual drive (ie, /dev/hdc), or a iso file on your local machine.
  • use --location for a remote file (ftp, http, etc.).
  • ram is specified in MB, disk size is specified in GB.
  • the --disk option may be of more use to you the --file.


One of the features of virt-manager is the ability to create new guests by using a nice GUI. There are some features you will not have access to with this approach, but the majority of features you need will be there.


This is another command line program that will take an existing guest image and create a copy of it. Assignment of new UUIDs and network MACs is easily handeled here.

-- MattVliet - 04 Mar 2009

Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | More topic actions...
Topic revision: r4 - 2010-06-22 - mvliet
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback