Ziirish's Home :: Blog

Ziirish's Pub

 
 

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