Bon, j'ai déjà fait les louages de Xen, et je les ferai encore probablement. Mais y'a quand même un truc qui me convient pas. C'est leur outil de création de domU.
Le fameux xen-create-image. Chez moi, il semble se cogner royalement de l'argument --arch= Et puis j'avais 2-3 autres problèmes, notamment la "perte" de la console à la fin du boot de la machine.
J'ai donc décidé d'utiliser un petit tip, basé sur debootstrap.
Voici donc comment je crée mes domU debian :
# soit on utilise une partition
% lvcreate -L5G -n debian1 vg
# soit un "fichier"
% dd if=/dev/zero of=debian1.disk bs=1M count=1 seek=5000
# on formate le bouzin
% mkfs.ext3 /dev/vg/debian1
# ou bien
% mkfs.ext3 debian1.disk
# Puis on monte ça quelque part
% mount /dev/vg/debian1 /mnt
# ou
%mount debian1.disk /mnt -o loop
# maintenant, on passe au debootstrap
% debootstrap --arch=amd64 --components=main,contrib,non-free --include=linux-image-2.6-xen-amd64 lenny /mnt ftp://ftp.fr.debian.org/debian
Puis on le laisse travailler. Une fois terminé, on va devoir récupérer le noyau afin de le faire amorcer par Xen.
% mkdir -p /home/xen/domu/debian1/kernel
% cp /mnt/boot/{initrd.img-2.6.26-2-xen-amd64,vmlinuz-2.6.26-2-xen-amd64} /home/xen/domu/debian1/kernel
On peut ensuite créer le fichier de configuration Xen et y mettre :
kernel = '/home/xen/domu/debian1/kernel/vmlinuz-2.6.26-2-xen-amd64'
ramdisk= '/home/xen/domu/debian1/kernel/initrd.img-2.6.26-2-xen-amd64'
memory = 128
name = "debian1"
vif = [ 'ip=10.0.0.5' ]
disk = [
'phy:/dev/vg/debian1,xvda1,w',
# ou bien
# 'file:/home/xen/domu/debian1/debian1.disk,xvda1,w',
'file:/home/xen/domu/debian1/debian1.swp,xvda2,w'
]
root = "/dev/xvda1 ro"
console = "hvc0"
On créera également un fichier de swap (qui peut également être une partition physique).
% dd if=/dev/zero oh=/home/xen/domu/debian1/debian1.swp bs=1M count=1 seek=512
% mkswap /home/xen/domu/debian1/debian1.swp
Désormais, on va procéder au paramétrage de notre domU.
% chroot /mnt
% cat >/etc/network/interfaces<<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.0.0.5
gateway 10.0.0.254
netmask 255.255.255.0
EOF
% cat >/etc/fstab<<EOF
/dev/xvda1 / ext3 defaults 0 1
/dev/xvda2 none swap defaults 0 0
proc /proc proc defaults 0 0
EOF
% echo -e "\nhvc0:23:respawn:/sbin/getty 38400 hvc0">>/etc/inittab
% echo "debian1">/etc/hostname
% passwd
% exit
Notre domU est prêt, ne reste plus qu'à le démarrer :
% xm create -c /etc/xen/debian1.cfg