Dopo aver installato Xen 4.0.1 su Debian 6, mi sono accorto che il Kernel Xen di Debian a 64 bit non include il supporto per blktap2, necessario per utilizzare le definizioni dei dischi aio:tap di Xen.
Dovendo ricompilare a mano kernel e, con buona probabilità, Xen e Xen-Tools, ho deciso di provare ad usare Gentoo come distribuzione base per l’hypervisor Xen.
Partiamo quindi da una installazione di base di Xen come spiegato nell’articolo di ieri e andiamo oltre installando Xen.
Configurazione di base del sistema
E’ necessario partire dalla versione di default di Gentoo (non hardened) in quanto la compilazione di Xen-Tools ha qualche problema con le impostazione PAE della vesione Hardened.
Inoltre, se state compilando su una macchina a 32 bit, è necessario impostare il flag “-mno-tls-direct-seg-refs” in make.conf e procedere alla ricompilazione del sistema (emerge -e world).
La versione 4.1 di Xen è ancora considerata sperimentale, pertanto è necessario eseguire l’unmask dei pacchetti modificando il file :
/etc/portage/package.keywords app-emulation/xen app-emulation/xen-tools sys-kernel/xen-sources
Quindi abilitiamo il flag hvm per abilitare le funzionaltà VT-X:
echo app-emulation/xen-tools hvm >> /etc/portage/package.use
Ora installiamo i prerequisiti:
emerge iasl usermode-utilities
Installazione del kernel
Innanzi tutto scarichiamo il kernel con:
emerge xen-sources
A questo punto bisogna compilare il kernel. Invece di creare un unico kernel sia per il dom0, sia per il domU, creeremo due kernel separati usando l’opzione O= del comando make.
cd /usr/src/linux mkdir -p build/dom0 build/domU make O=build/dom0 menuconfig
Ora creeremo la configurazione del kernel per il dom0. Abilitiamo:
- Processor type and features -> Enable Xen compatible kernel
- Processor type and features -> Support for hot-pluggable CPUs
- Networking options -> 802.1d Ethernet Bridging
- Device drivers -> XEN -> Privileged Guest (domain 0)
Ora è il turno della configurazione del kernel per il DomU. Come per il Dom0 abilitiamo:
- Processor type and features -> Enable Xen compatible kernel
- Processor type and features -> Support for hot-pluggable CPUs
- Networking options -> 802.1d Ethernet Bridging
- Bus options -> PCI support
- Device drivers -> tutte le opzioni compreso ATA, Serial ATA, HID e USB
- Device drivers -> supporto SCSI
- Infine abilitiamo io driver di XEN per il domU:

A questo punto passiamo a compilare i due kernel con:
make O=build/dom0 -j24 && make O=build/domU -j24
e ad installare il kernel del dom0:
make O=build/dom0 modules_install install
Configurazione del bootloader
Editiamo il file /etc/grub/grub.conf per avviare il kernel xen aggiungerndo le seguenti righe:
title XEN 4.1 root (hd0,0) kernel /xen-4.1.gz module /vmlinuz-2.6.34-xen-r4 root=/dev/sda3
Ricordiamoci di modificare l’opzione “default” in modo da avviare il kernel corretto.
Installazione di Xen
Per installare i pacchetti lanciamo il comando:
emerge xen xen-tools
Al termine dell’installazione aggiungiamo il demone xend all’avvio automatico con:
rc-update add xend default
