Xen Install

From ArchWiki

Jump to: navigation, search
Image:Tango-dialog-warning.png This article is out of date.
Please help improve the wiki by updating the article and correcting mistakes.

Contents

Introduction

This document will cover installing Xen on Arch Linux. It needs to be updated because it's very out of date. Please be careful.

Much of the information comes directly from the Xen Install Doc.

More info about Xen here:
Wikipedia Xen Article
Main Xen site

Requirements

You need to fulfill the requirements before you can get Xen running. Those requirements are:

  • iproute
  • bridge-utils
  • twisted-web
  • libcurl

Install

Fulfill the Requirements

Fetch pacman packages.

$ pacman -Sy iproute bridge-utils zope-interface python twisted curl

Fetch Xen Binaries

Download the Xen binaries from The Xen Download Site.

$ wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/xen-2.0.7-install-x86_32.tgz

Extract Xen Binaries

< you need to become root user here >

$ su
$ tar -xpzf xen-2.0.7-install-x86_32.tgz
$ cd xen-2.0-install

Modification of files

Some of the Xen files need to be modified.

$ edit install.sh change all init.d to rc.d
$ cd install
$ cd etc
$ mv init.d rc.d
$ cd ../usr/lib/
$ mv python python2.4
$ cd python2.4/xen
$ sed -i "s#twisted.protocols import http#twisted.web import http#g" xend/XendAsynchProtocol.py \
  xend/server/SrvDomainDir.py xend/server/SrvDir.py xend/server/SrvBase.py xend/server/SrvDomain.py
$ cd ../../../../..
$ sh install.sh

Configuration Xen

Grub

$ vi /boot/grub/menu.lst

Add the following before the current grub entry.

title  Xen [/boot/xen.gz]
root   (hd0,1)
kernel /xen.gz dom0_mem=524288
module /vmlinuz-2.6.11.12-xen0 root=/dev/sda5 ro

Of course, replace your information as appropriate. Namely, the root device, and specify an appropriate value for dom0_mem=NUMBER, where NUMBER is the amount of memory (in kilobytes) you wish to dedicate to the main Xen instance (the host).

Rebooting

Now you need to reboot into your new kernel/Xen0 host instance. If the system does not boot, then just reboot with the previous kernel grub entry, and attempt to fix the errors.

Starting Xen Daemon

After a successful kernel reboot, start xend.

$ /etc/rc.d/xend start

If you get any errors, attempt to fix them.

Creating a xenU instance

The /etc/xen file

You need to create a domain configuration file for your xenU instance.

Here is a simple example. The useful comments have been removed. If you wish to delve deeper, the xmexample1 and xmexample2 files contain more information. Just copy them to a custom filename, and edit away.

Here is the example used for this how to:

#  -*- mode: python; -*-
#============================================================================

# Kernel image file.
kernel = "/boot/vmlinuz-2.6.11-xenU"

# Initial memory allocation (in megabytes) for the new domain.
memory = 256

# A name for your domain. All domains must have different names.
name = "WebServer"

disk = [ 'file:/home/xen/webserver,hda1,w','file:/home/xen/webserver-swap,hda2,w' ]

# Set root device.
root = "/dev/hda1 ro"

# Sets runlevel 4.
extra = "3"

restart = 'onreboot'

Name the file webserver for the purposes of this example. /etc/xen/webserver

Create data files

$ cd /home
$ mkdir xen
$ cd xen
$ dd if=/dev/zero of=webserver-swap bs=1k seek=768k count=1
$ dd if=/dev/zero of=webserver bs=1k seek=2048k count=1
$ mkfs -t ext3 webserver
$ mkswap webserver-swap

Populate xenU instance

We now need to populate our xen vm instance. I installed Xen on a pretty barebones/fresh Arch install. I took the following steps to get a usable vm install.

$ mount -o loop webserver /mnt/fl/
$ cp -ax /{root,dev,var,etc,usr,bin,sbin,lib} /mnt/fl/
$ cd /mnt/fl
$ mkdir {proc,sys,home,tmp}
$ vi /mnt/fl/etc/inittab
< remove all but the first agetty respawn lines >
$ vi /mnt/fl/etc/rc.conf
< modify ip address, hostname, and anything else you desire >
$ cd 
$ umount /mnt/fl

Start XenU instance

$ xm create /etc/xen/webserver -c

Special note: If you use the -c flag, the tty will attach to that the xenU instance being started. You will see the kernel start output, as well as receive a login. All the other tty's on the box will remain attached to the host xen0 system. If you leave off the -c, then it will not attach directly, and will instead start in the 'background'.

Login and configure your installation

Since this is a copy of the host system, I recommend modifying your user/group information. Namely, changing the root password, and removing/adding users as needed. Once that is done, the xenU instance behaves just like a standalone system, while inside the xenU tty. You can ssh to the system, run services, install things with pacman, etc.

More info

Instance Management

From the xen0, or host system, you can manage your xenU, or user subsystems. The management interface is xm.

$ xm help

It is also advisable to add xend to your DAEMONS array list in the xen0 system's /etc/rc.conf


= Addendum

Check out the talk for this page.

Personal tools