Xen for Debian
==============

Config behaviour
----------------

The Debian packages changes the behaviour of some config options.

The options "kernel", "initrd" and "loader" searches in the Xen private boot
directory (/usr/lib/xen-$version/boot) first. "bootloader" and "device_model"
also searches the Xen private bin directory (/usr/lib/xen-$version/bin). This
means that the following entries will properly find anything:
  loader = 'hvmloader'
  bootloader = 'pygrub'

Network setup
-------------

The Debian package of Xen don't change the network setup in any way.  This
differs from the upstream version, which overwrites the main network card
(eth0) with a bridge setup and may break the network at this point..

To setup a bridge please follow the instructions in the manpage for
bridge-utils-interfaces(5).

You can also change the /etc/xen/xend-config.sxp file and re-enable the Xen
included network setup by adding
  (network-script network-bridge)
to the file. But please note that this may or may not work.

Loop devices
------------

If you plan hosting virtual domains with file backed block devices (ie. the
ones xen-tools creates by default) be careful about two issues:

1. Maximum number of loop devices
   By default the loop driver supports a maximum of 8 loop devices. Of
   course since every Xen domain uses at least two (one for the data and one
   for the swap) this number is absolutely insufficient. You should increase
   it by adding a file named local-loop in /etc/modprobe.d containing the
   string "options loop max_loop=128", if the loop driver is compiled as a
   module, or by appending the string max_loop=128 to your kernel parameters
   if the driver is in-kernel. Of course you can increase or decrease the
   number 128 as you see fit.

2. Driver loading (only if loop is compiled as a module)
   Normally the loop driver gets loaded when the first loop device is
   accessed. When using udev, though, the loop devices get created only
   after the driver gets loaded. This means that Xen will fail if the loop
   driver is not already loaded when it tries to start a file-backed virtual
   domain.  To fix this just add "loop" in your /etc/modules file, thus
   forcing it to be loaded at boot time.
