This HOWTO describes the steps to install Ubuntu as a DomU/Guest VM in XenServer.

Yes, one may install Ubuntu using one of the installation CDs available. But that would result in the use of a "non-Xenified" kernel. This means:

  • The VM will be running in emulated mode instead of the higher-performing paravirtual mode

  • There will be lots of drivers loaded during bootup

One may modify the VM post-installation to use the virtual images and boot in paravirtual mode, but that will involve more work.

The procedures describe in this HOWTO will:

  • Install a "Xenified" kernel from the very start
  • End up with a VM running in paravirtual mode without additional tinkering


  • XenServer 5.6 fp 1 or newer.

  • Older versions do not have the templates required for this procedure

  • Access from the XenServer host to a repository/mirror.

  • The mirror used may be internal or a public mirror.


Basically, what we're trying to do is to copy an existing template and modify its parameters.

  1. Open the XenServer console (either from XenCenter or over SSH)

  2. Enter the command:
    • xe template-list | grep -B 1 "Ubuntu"

      Note the uuid of the template you want to clone

  3. Enter the command:
    • xe vm-clone uuid=${UUID} new-name-label="${LABEL}"

      Where ${UUID} is the uuid you got in step #2, and ${LABEL} is the desired label for the new template.

      The xe vm-clone command will return a new uuid to be used in the next steps.

  4. Enter the command:
    • xe template-param-set uuid=${NEW_UUID} \
        other-config:default_template=true \

      Where ${NEW_UUID} is the new uuid you got in step #3, and ${RELEASE} is the Ubuntu version (all-lowercase), e.g., maverick

  5. (Optional) Enter the command:

    • xe template-param-set uuid=${NEW_UUID} \

      This step is optional, but if you specify this step, then when you create new VMs using the modified template, the URL field (where you're asked to specify the source repository to be used) will be pre-populated.

      Note that ${URL_PATH} is in the form of proto://server/path/to/directory where proto: is either http: or ftp: and /path/to/directory is the complete path to the directory containing the dists/ directory (and excluding dists/ itself)

Done! At this point, you can create a new VM based on the newly-cloned-and-modified template. XenServer will handle the necessary download of the initrd and vmlinuz images to use during installation.


Installation/OnXenServer (last edited 2011-04-09 01:03:21 by D9784B24)