From ArchWiki
Revision as of 23:22, 11 December 2013 by Jdad (Talk | contribs) (todo: UEFI/LVM/RAID solutions: new section)

Jump to: navigation, search

some things on the current page aren't really clear

  • "The standard arch kernel can be use to boot the domUs."

So, domUs can use the standard kernel?

  • "In order for this to work one must add 'xen-blkfront' to the modules array in /etc/mkinitcpio.conf"

On the domUs?

  • "The basic idea behind adding a domU is as follows. We must get the domU kernels (...)"

BUT one can also use a standard archlinux kernel? Maybe there is an inconsistency.


  • Maybe someone more experienced can explain how to use encrypted (LUKS) filesystems with xen;
  • Maybe someone more experienced can add a section on how to use other OSs like Microsoft® Windows&trade.
  • I opt to delete the alternative installation method because experienced users can figure this stuff out for themselves and it might be horribly outdated;

-- Voidzero 16:54, 7 May 2010 (EDT)


This is incorrect - was stated before to be a frontend for Xen - it is NOT - it is a frontend for xenserver by citrix

this is also not for xen directly - it is for xen cloud platform which is something different afaik

  • xvp is web interface and vnc proxy.

After installing xvp, you need to generate /etc/xvp.conf with xvpdiscover tool and adjust your web server for using /srv/http/xvpweb/.

-- Friesoft 19:01, 23 May 2010 (EDT)

GRUB menu entry outdated

After struggling with the apparently outdated install info, I finally managed to dredge up this tidbit:

The current instructions make it seem as though the AUR xen package will put a new kernel & img in /boot with Dom0 in the name. This is apparently not the case, as it seems to just re-use the existing kernel files (at least in x64 installs). Any chance someone more familiar with the subject could update the install instructions? Zootboy 23:39, 11 January 2012 (EST)

The standard i686 kernel cannot be used as Dom0 kernel

At least in my recently (May 2012) installed system. So I added a kernel verification subsection. Is that OK? Gnailuy (talk) 05:53, 27 May 2012 (UTC)

This is true. The regular x86 (i686) Arch Kernel does not have Xen Dom0 support compiled in. I know that the x64 Kernel does have Dom0 support compiled in by default, and users are strongly encouraged to run Xen on a 64-bit host machine. It's good to have this section, but it should probably be reworked to explain better which Kernels have Xen Dom0 support and why. (I believe the LTS Kernel may have Dom0 compiled in the i686 version, but I'm not sure and I'm having trouble finding where I read that.) Zootboy (talk) 00:05, 28 May 2012 (UTC)

Suggestions to make this easier to read

I think we should add guidance to add xencommons & xend to rc.d to run xend on startup.

Mentioning pv-grub (far superior to pygrub, security wise) is also probably a good plan.

Luceo 23.49, 21st July 2012 (UTC)

Need to install bridge-utils to avoid an error on boot

At least I think that's the correct method, worked for me. Unless someone says otherwise, I will stop back and add that at some point.

Timm (talk) 12:50, 29 August 2012 (UTC)

Yes, bridge-utils are necessary for networking to work properly in Xen. Zootboy (talk) 17:08, 4 September 2012 (UTC)

Article HORRIBLY Outdated!

It is NOT possible, to get a workign Xen running with this article! As with many other wiki-articles, since the recent changes in arch linux none of them is an appropiate walkthrough anymore.

Is the following correct for syslinux? Dom0 boots with this here at least


(You need to have mboot.c32 copied into /boot/syslinux/ for these examples.)

Add the following to your /boot/syslinux/syslinux.cfg

    MENU LABEL Arch Xen
    KERNEL mboot.c32
    APPEND ../xen-X.Y.Z.gz --- ../vmlinuz-linux console=tty0 root=/dev/sdaX ro -- ../initramfs-linux.img

An example to run Xen on a LUKS encrypted LVM host

    MENU LABEL Arch Xen
    KERNEL mboot.c32
    APPEND ../xen-X.Y.Z.gz --- ../vmlinuz-linux console=tty0 cryptdevice=/dev/sdaX:main root=/dev/mapper/main-root ro -- ../initramfs-linux.img

Disable IP Tables to not interfere with bridge interfaces

By default the bridge interfaces created will be filtered using the kernel netfilter code preventing certain packets (like broadcasts) from reaching the DomUs during operation. This makes things like a DomU running DHCPd impossible.

This resolves the problem:

 # cat >> /etc/sysctl.conf <<EOF
 net.bridge.bridge-nf-call-ip6tables = 0
 net.bridge.bridge-nf-call-iptables = 0
 net.bridge.bridge-nf-call-arptables = 0
 # sysctl -p /etc/sysctl.conf

Massive re-write

Just finished a huge re-write of this whole article in my attempt to bring it up to date. For those who are curious: I stripped out the Debian guest instructions because this is the Archwiki. There are links on the Xen wiki for installing Debian. In its place, I put in my own instructions for creating an Arch guest. I also stripped out the instructions for building from source as there are several AUR packages that basically do all the same things anyway. Seeing as you have to build from source when you install Xen from the AUR, it seemed redundant. There are Xen AUR packages for current stable (4.2 atm) and bleeding edge unstable (4.3-unstable atm). That should be sufficient for most cases, so I saw no need for manual compilation instructions.

As an aside, I also seem to recall having to create the /var/lib/xen directory manually. I didn't put it in the article as I couldn't verify that it was still necessary. Zootboy (talk) 18:55, 1 March 2013 (UTC)

Some update suggestions

I am installing arch in xen DomU at the moment, and I have a few suggestion. My dom0 is Gentoo, so the problems I found are partly based on this (I am not sure)

Installing from iso

xl config file:

extra = "archisobasedir=arch archisolabel=ARCH_201301"

should be

extra = "archisobasedir=arch archisodevice=/dev/sdb"

because the label changes on every release. But I didn't succeed to install like this (because the cdrom device didn't appear at all) But these changes worked:

  • losetup /dev/loop1 /..../arch.iso

and changed the xl config file:

extra = "archisobasedir=arch archisodevice=/dev/xvdb
disk = [ .....  "phy:/dev/loop1,xvdb:cdrom,r" ...]

This way it booted fine, and I could proceed.

Boot changes

I suggest not using pygrub. Instead, the installed root copy the kernel and initramfs files to dom0, then use a config to boot the final system like this:

kernel = "/mnt/xen/arch-3.8.4/vmlinuz-linux"
root = "/dev/xvda1 ro"
ramdisk = "/mnt/xen/arch-3.8.4/initramfs-linux.img"
memory = 512
name = "arch"
disk = [
vif = [ 'mac=00:16:3e:XX:XX:XX,bridge=xenbr0' ]

The arch.btrfs and arch.swap are local files on Dom0 (btrfs can be mounted loopback if needed to copy the kernel files out for example) The other parts (mkinitcpio MODULES etc) works fine!

Grub2 entry is broken and PyGrub won't boot

A more simpler Grub2 entry can be created in DomU's /boot/grub/grub.cfg:

menuentry 'Arch Linux' --class gnu-linux --class gnu --class os {
    insmod gzio
    insmod ext2
    insmod part_msdos
    set root='(hd0)' 
    linux   /boot/vmlinuz-linux root=UUID=04968465-e3b9-4ad3-9526-b8bab72779d1 ro console=hvc0 splash quiet
    initrd  /boot/initramfs-linux.img

todo: UEFI/LVM/RAID solutions

There needs to be a more detailed explanation of what's going on here.

A successful Xen boot process:

Power on > rEFInd > GRUB > Xen > current Arch kernel > profit

After some fiddling around I've been able to keep UEFI with Xen. A (rough) chain load walk-through:

install and configure (base base-devel refind-efi)

+should be able to boot rEFInd to the base system at this point
+rEFInd will detect GRUB config from below

install (yaourt xen efibootmgr dosfstools grub)

+/boot should contain Xen kernel (xen-4.3.1.gz)
+GRUB install and setup scripts
 -directory structure example
 -linkto:grub-install which should detect Xen kernel
  -grub.cfg example
+efibootmgr to clean up NVRAM if necessary
 -troubleshooting (bootorder (resetting, deleting entries)) examples
  -fallback: "uefi shell v2" bcfg command to delete entries

More needed examples:

Arch kernel mkinitcpio.conf
MODULES="xen-blkfront xen-fbfront xen-netfront xen-kbdfront"

Xen errors:

I'm getting ATAx errors that hang the system for 10-15 seconds during the Arch kernel boot. After though, everything works?_? A quick search showed that it could be a BIOS/firmware issue. My BIOS is up to date, so I changed my SATA settings from AHCI to IDE/disable to see what happens. IDE = doesn't boot at all. Disable = wiped my NVRAM (fuuuuu...).

Jdad (talk) 23:22, 11 December 2013 (UTC)