DomU Install with Virt-Install

From Xen
Revision as of 16:11, 31 July 2012 by Dariof (talk | contribs) (Major restructuring and smoke testing)


Virt-install is part of the Virtual Machine Manager, a RedHat sponsored project to create, install and manage virtual machines such as, for instance Xen DomUs or KVM guests.

virt-install has two modes of installation:

  • graphical, by using VNC, where you get the normal install experience. This is usually used if for local installs, i.e., installing a guest while being in front of the host machine;
  • text-based, by using the emulated serial port, where you get the console-mode installation experience. This is normally done for installing a guest on a remote systems (e.g., reached via SSH).

NOTE: in this example we will install a Fedora 16 DomU onto a Fedora 17 Dom0. However, the same technique should work for installing Fedora/RHEL/CentOS, as well as other (not necessarily RH-based) distros as DomUs.

Preparing for the Installation

Getting virt-install

This is very easy. On a Fedora Dom0, just run the following and let yum do his job:

yum install libvirt python-virtinst

If Dom0 is not Fedora(-ish), it shouldn't be a bit deal. It is all just a matter of finding out the package names your favorite distro ships virt-install with.

Preparing Partitions

Let's now create a new logical volume to be used as the virtual disk for the DomU. We will create a 20GB logical volume named "f16" inside the volume group called "vg_f17". As such, the install location will be /dev/vg_f17/f16:

# lvcreate -nf16 -L20G /dev/vg_f17
  Logical volume "f16" created

To double check everything went fine:

# lvscan 
  ACTIVE            '/dev/vg_f17/f16' [20.00 GiB] inherit

Starting a Graphical Install

There are 2 possible ways of doing a graphical install:

  • Using virt-viewer on Dom0 to display the graphical console. Use this if you are right in front of Dom0 itself.
  • Using VNC viewer to connect to the graphical console. Use this if you are away from Dom0, e.g., you are connecting to it via SSH.

Local Graphical Install

Start the DomU installation with:

virt-install --paravirt --name f16 --ram 768 --vcpus 1 -f /dev/vg_f17/f16 --network bridge=br0 --location"

For more information on what each parameter does, refer to the virt-install man page.

After you run virt-install, something like this should appear:

Starting install...
Retrieving file .treeinfo...                                                                                 | 2.8 kB     00:00 ...
Retrieving file vmlinuz...                                                                                   | 6.7 MB     00:02 ...
Retrieving file initrd.img...                                                                                |  74 MB     00:01 ...
Creating domain...                                                                                           |    0 B     00:01

And then, as soon as the installer files have been downloaded, the graphical phase of the Fedora installer should start. From there, you can install Fedora as usual.

NOTE: with X11 forwarding configured properly, you can do this on a remote system as well. If you're using Windows, you can follow this guide to get X11 forwarding setup. On Linux and Mac, X11 forwarding should automatically work when you connect to Dom0 with:

ssh -X Dom0-hostname

Remote Graphical Install

This step only involves getting a VNC client on your system, followed by changing the virt-install command.

Specifically, you have to tell virt-install to setup the VNC server so you can connect to it. In particular, you'll need to specify the VNC options in the --graphics parameter, so it instead of just


it looks like

--graphics vnc,listen=,port=5901 --noautoconsole

When you run virt-install, the initial output will look like the output mentioned above. However, after "creating domain", you'll be returned to the command prompt. Once that happens, you'll need to start the VNC client on your computer, and connect to hostname-of-dom0:1 to see the graphical console.

Note: If you don't specify the port number, the first open port above 5900 will be used. virt-install will tell you what address to connect to when you quit though.

Using virt-install to do a test-based installation

The virt-install command is mostly the same as the first one. The only difference is that instead of --graphics it's --graphics none, and virt-install takes over the same console that you just ran it from.

Once the installer files are downloaded, you'll be shown the text mode install screen:


For there, follow the install instructions for your respective domU distributions.

A few points about disk partitioning in the domU

  • The "/boot" partition must be formatted as either "ext3" or "ext4" to avoid problems with pygrub loading the kernel from the disk. btrfs is not supported by pygrub as of Nov 9th, 2011.
  • Some guides recommend that you format /boot as ext3. This was because pygrub in Xen 3 didn't support /boot formatted as ext4. The version of pygrub included with Xen 4.0.1 onwards properly supports ext4, so you can fairly safely go ahead and format /boot in the domU as ext4.