Présentation :
Dans ce didacticiel, une nouvelle machine virtuelle basée sur la distribution Debian Jessie sera créée à partir de rien avec un minimum de composants.
Hypothèse :l'hyperviseur Xen doit déjà être installé et en cours d'exécution sur le système principal (DOM0).
Création de la machine virtuelle Xen
Cette machine virtuelle sera créée avec les outils xen qui démarrent la création de la VM.
Bootstrap : mkdir -p /virtual/xen/
cd /virtual/xen/
xen-create-image --dir=. --dist=jessie --hostname=mail.myserver.com --size=10Gb --swap=2048Mb --ip=87.176.10.167 --gateway=87.176.10.254 --netmask=255.255.255.0 --memory=4096Mb --arch=amd64 --role=udev
Installer le noyau et pyGrub
– Placez les fichiers disk.img et swap.img produits dans le bon chemin.
ex. dans /virtual/xen/MAIL/
Monte l'image disque en bouclemkdir /mnt/MAIL
mount /virtual/xen/MAIL/disk.img /mnt/MAIL -o loop,rw
Montez /sys, /proc, /dev et chrootez dessusmount /proc /mnt/MAIL/proc -o bind
mount /sys /mnt/MAIL/sys -o bind
mount /dev /mnt/MAIL/dev -o bind
chroot /mnt/MAIL
Installez grub-legacy dans la VMapt-get update
apt-get install grub-legacy linux-image-3.2.0-4-amd64 mc
mkdir /boot/grub
mcedit /boot/grub/menu.lst
CONTENT:
#----------------
default 0
timeout 2
#
title Debian GNU/Linux
root (hd0,0)
kernel /vmlinuz root=/dev/xvda1 ro
initrd /initrd.img
#
title Debian GNU/Linux (recovery mode)
root (hd0,0)
kernel /vmlinuz root=/dev/xvda1 ro single
initrd /initrd.img
#-------------
Quittez chroot et démontez tout.exit
umount /mnt/MAIL/dev
umount /mnt/MAIL/sys
umount /mnt/MAIL/proc
umount /mnt/MAIL/
Ajustez la configuration VM xen (/etc/xen/mail.server.com.cfg ) comme suit :
Remplacez les anciennes lignes kernel et initrd dans le fichier de configuration Xen DOMu comme suit :
Exemple :REPLACE:
kernel = '/boot/vmlinuz-2.6.32-5-xen-amd64'
ramdisk = '/boot/initrd.img-2.6.32-5-xen-amd64'
AVEC :
Pour l'hyperviseur Debian squeeze :bootloader = '/usr/lib/xen-default/bin/pygrub'
Pour l'hyperviseur Debian Wheezy :bootloader = '/usr/lib/xen-4.1/bin/pygrub'
Pour l'hyperviseur Debian jessie :bootloader = '/usr/lib/xen-4.4/bin/pygrub'
Ajustez correctement les chemins des disques :
Exemple :disk = [
'file:/virtual/xen/MAIL/disk.img,xvda2,w',
'file:/virtual/xen/MAIL/disk.swp,xvda1,w',
]
Testez la configuration pyGRUB avec le disque VM
Remarque :un menu GRUB devrait apparaître pendant quelques secondes, puis disparaître avec un message d'erreur. Ignorez le message d'erreur. Le plus important est que le menu Grub apparaisse.
Pour l'hyperviseur Debian squeeze :/usr/lib/xen-default/bin/pygrub /virtual/xen/MAIL/disk.img
Pour l'hyperviseur Debian Wheezy :/usr/lib/xen-4.1/bin/pygrub /virtual/xen/MAIL/disk.img
Pour l'hyperviseur Debian jessie :/usr/lib/xen-4.4/bin/pygrub /virtual/xen/MAIL/disk.img
Démarrez la VM
Le menu Grub devrait apparaître et démarrer le démarrage.xm create /etc/xen/mail.server.com.cfg -c
Remarque importante : Normalement, après un tel démarrage d'une nouvelle machine virtuelle Xen, la machine virtuelle utilise le noyau de l'hyperviseur lors du démarrage. Cela signifie que chaque VM n'est pas capable de mettre à jour son noyau indépendamment. Cette méthode ci-dessus rend la machine virtuelle totalement indépendante du noyau de l'hyperviseur et obtient son propre noyau. Le seul inconvénient que je vois est qu'avec certaines mises à jour du noyau, le fichier /boot/grub/menu.lst est automatiquement remplacé lors de la mise à niveau du noyau, vous DEVEZ alors récupérer le précédent /boot/grub/menu.lst qui est normalement enregistré sous / boot/grub/menu.lst~ avant de redémarrer la machine virtuelle. Au cas où vous l'auriez oublié, montez simplement l'image VM en boucle comme expliqué ci-dessus et remplacez le fichier si nécessaire. Vous devriez alors pouvoir ensuite démarrer la VM.