Ubuntu 10.04 PV DomU on XenServer 5.6

Admittedly, I was a bit disappointed to see XenServer 5.6 without support for Ubuntu, Debian 64-bit and Solaris, I wish they’d at least provide working templates as an unsupported download or something, but they don’t. So, if you want to virtualize your Ubuntu installations you have to get your fingers dirty, fortunately it’s very easy with XenServer 5.6 (in 5.5 it’s a bit more work).

As of Ubuntu 8.10 all the Xen stuff has been integrated in the default server kernel, no need to fiddle with different kernels anymore.

  • Create a VM in XenServer, use Other Install media template, customize your installation to your liking but don’t fiddle with the /boot filesystem, pygrub needs this to be ext2 or ext3.
  • Once your new Ubuntu VM is up and running you might as well apply the latest updates, if you do this later and there’s a new kernel AND you’ve specified any PV-bootloader-args you’ll have to go back into XenServer and fix this. At this point I also recommend installing an ssh server, it makes life a lot easier should your new Xen-based console not work.,
    sudo apt-get install ssh
  • Configure virtual console, replace tty1 with hvc0
    cp /etc/init/tty1.conf /etc/init/hvc0.conf
    sed -i 's/tty1/hvc0/g' /etc/init/hvc0.conf
  • Shutdown virtual machine
    shutdown -hP now
  • Find your virtual machine and it’s UUID
    xe vm-list name-label=<your VM name> params=uuid
  • Switch from HVM to PV
    xe vm-param-set uuid=<UUID> HVM-boot-policy=
    xe vm-param-set uuid=<UUID> PV-bootloader=pygrub
  • Find the VBD disk UUID
    xe vm-disk-list uuid=<UUID>
  • Make VBD disk bootable
    xe vbd-param-set uuid=<VBD UUID> bootable=true

Now boot up the VM, if the console appears to hang and you’re sure you’ve setup hvc0 correct, try restarting XenCenter, for some reason it doesn’t always like the change at first.

Installing XenServer Tools is dead easy. Since my XenServers are on AMD, I’ll use the amd64 package.

mount /dev/xvdd /cdrom
dpkg -i /cdrom/Linux/xe-guest-utilities_5.6.0-578_amd64.deb
umount /cdrom

On one occasion I forgot to ‘eject’ the cdrom, the VM then failed to boot saying too many bootable devices, puzzling at first but it was nothing more than ejecting the cdrom and booting again.

I’ve run Ubuntu 10.04 PV in production for a few months now and have had no issues whatsoever.

This entry was posted in Linux, Uncategorized, Virtualization, XenServer and tagged , , , , . Bookmark the permalink.

3 Responses to Ubuntu 10.04 PV DomU on XenServer 5.6

  1. meszi says:

    Hi there,

    thanks for the description. I installed Ubuntu 10.04 as 32bit virtual machine from the mini.iso. I followed your steps but I cannot seem to get it started now. I am stuck after making the VBD bootable.

    My error message is:

    The server failed to handle your request, due to an internal error.  The given message may give details useful for debugging the problem.
    message: XenguestHelper.Xc_dom_linux_build_failure(2, " elf_xen_note_check: ERROR: Will only load images built \\\"")

    Can you suggest a solution?

    CU,
    Mészi.

  2. Mar says:

    Hello meszi,

    I too am receiving the identical error:

    The server failed to handle your request, due to an internal error. The given message may give details useful for debugging the problem.
    message: XenguestHelper.Xc_dom_linux_build_failure(2, ” elf_xen_note_check: ERROR: Will only load images built \\\”")

    Did you ever get this fixed. I have searched hi and low and cannot seem to find instructions that actually works (for me at least). I have followed the instructions very carefully but when I attempt to boot the VM so that I can install the xtools, I keep getting that boot error.

    Any help would be greatly appreciated.

    Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>