Xen Debian Installer
If, for whatever reason you want to install a Debian EtchDomU using a Debian Etch / Xen 3.1.0 Dom0 using the Debian Installer instead of the xen-tools, this article may help you...
Sommaire
Foreword
This articles describes how to install a Debian Etch DomU using the Debian Installer
We have here a Debian EtchDom0, but this could easily be extended to any Dom0, as we do not use the usual xen-tools
About the installer
The Debian installer does not know anything about Xen...
But the NetInstall CD Image just contains a kernel and an initrd, which in turn contains all the install procedure.
So basically we will run a standard xenified kernel with the netinstall initrd
Disk allocation
We use a logical volume to allocate disk space for the virtual machine:
Code: shell |
lvcreate -L 10240 -n sixty-four vgXen |
It will be used as Disk Image (xvd) by the virtual machine. This gives more flexibility to the guest than individual partitions (hd), and makes the boot process easier (see below).
Xen DomU Configuration file
This is the minimal configuration file that we will use for this installation:
Fichier: /etc/xen/sixty-four.cfg |
# -*- mode: python; -*- #============================================================================ # Python configuration setup for 'xm create'. # This script sets the parameters used when a domain is created using 'xm create'. # You use a separate script for each domain you want to create, or # you can set the parameters for the domain on the xm command line. #============================================================================ #---------------------------------------------------------------------------- # Kernel image file. bootloader="/usr/bin/pygrub" # Initial memory allocation (in megabytes) for the new domain. memory = 512 # A name for your domain. All domains must have different names. name = "sixty-four" #---------------------------------------------------------------------------- # Define network interfaces. vif = [ 'ip=xxx.xxx.xxx.xxx,mac=yy:yy:yy:yy:yy:yy,bridge=xenloc0' ] #---------------------------------------------------------------------------- # Define the disk devices you want the domain to have access to, and # what you want them accessible as. # Each disk entry is of the form phy:UNAME,DEV,MODE # where UNAME is the device, DEV is the device name the domain will see, # and MODE is r for read-only, w for read-write. disk = [ 'phy:/dev/vgDomU/sixty-four,xvda,w' ] #---------------------------------------------------------------------------- # Define frame buffer device. # vfb = ["type=vnc,vncunused=1"] keymap = 'fr-be' #---------------------------------------------------------------------------- # Configure the behaviour when a domain exits. There are three 'reasons' # for a domain to stop: poweroff, reboot, and crash. on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' #============================================================================ |
The interresting aspect of using pygrub as bootloader instead of specifying a kernel and a ramdisk is that the linux kernel will be taken from the DomU virtual machine and not from the Dom0 host. Obviously we will have to override that during the installation.
Installation
Booting
To avoid the text-mode-in-console, we use the Xen Virtual Frame Buffre (vfb), so we need to tell the kernel:
Code: shell |
LinuxRC="xencons=ttyS0 video=xenfb" |
We also override the bootloader directive and specify the installation kernel.
We also need to ask for a destroy at reboot time, otherwise the virtual machine would re-enter the installation procedure when done!
Code: shell |
XmCreate="bootloader= \ kernel=/boot/debian-etch-amd64/vmlinuz-2.6.18-xen \ ramdisk=/boot/debian-etch-amd64/initrd-netinst.gz \ on_reboot=destroy" |
We start the installation with the following incantation:
Code: shell |
xm create /etc/xen/sixty-four.cfg \ ${XmCreate} \ vfb='type=vnc,vncunused=1' \ extra="${LinuxRC}" |
We start xvncviewer to access the install console -- e.g.:
Code: shell |
xvncviewer -via <Dom0> :1 |
Installing
We are now in the (text-mode / graphical) installer.
We will be asked for the language, timezone...
The machine will find the packages and proceed with the installation just like on a bare metal system.
- The vanilla Xen kernel does not have ext3 built-in, so we need to create ext2 filesystems
- Etch Debian Grub does not like xvd as device name, so you will not be able to install Grub without recompiling the package.
There is no issue with Debian Lenny - No Xen kernel is installed by default, so at the end of the installation, ask a shell, chroot the installed system and install the xen kernel.
Reboot
At the end of the installation, the system reboots and you are back at the command prompt of your Dom0 host.
Since we specified the on_reboot=destroy parameter, we need to restart the virtual machine, using this time only the parameters from the configuration file:
Code: shell |
xm create /etc/xen/sixty-four.cfg *** TBD*** |
After the pygrub boot screen the system will start, ask a couple of post-install questions and we are done!
Post Install
ToDo