[Xen] Installation d’une debian (domU) sur une debian (dom0)

Je vais ici énoncer la procédure que j’ai employée pour installer un domU sous debian 5.0 Lenny, sur un dom0 du même type. Le réseau étant configuré en bridge et les disques gérés par LVM.

Tout d’abord créer les disques LVM. Dans l’exemple mon groupe de volumes est ‘vg-00’.

# lvcreate -L 3G -n debian-domU /dev/vg-00

Ici l’option -L spécifie la taille (3 giga), -n le nom de la partition et vg-00 spécifie mon groupe de volumes.

On partitionne le disque

# mkfs.ext3 /dev/vg-00/debian-dom0

Nous allons maintenant installer notre système. Ceci va consister à montrer le système et « placer » les fichiers du système d’exploitation sur notre partition.
Montons la partition

# mount -t ext3 /dev/vg-00/debian-domU /mnt/debian-domU

Bien heureusement nous n’allons pas faire l’installation à la main c’est l’utilitaire debootstrap qui s’en chargera.
Si vous utilisez un serveur de cache de paquet .deb comme apt-cacher utilisez cette commande. (Bien evidement vous pouvez choisir un autre repo et/ou un autre port !)

# debootstrap lenny /mnt/debian-domU http://apt-cacher-host:3142/ftp.fr.debian.org/debian/

Si vous n’utilisez pas de cache la commande est sensiblement la même

# debootstrap lenny /mnt/debian-domU http://ftp.fr.debian.org/debian/

Après cette installation sans soucis, configurons notre VM !

Attelons nous à la configuration générale.

Le fstab

# vi /mnt/debian-domU/etc/fstab

proc            /proc           proc    defaults        0       0
/dev/hda1       /               ext3    errors=remount-ro 0       1

Le hostname de la machine

# vi /mnt/debian-domU/etc/hostname

nom-de-la-machine

Les interfaces réseaux

# vi /mnt/debian-domU/etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

Le fichier hosts

# vi /etc/hosts

127.0.0.1       localhost
127.0.1.1       nom-de-la-machine.pockost.com       nom-de-la-machine

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Configurons apt pour utiliser notre proxy (si vous n’avez toujours pas de proxy sautez cette étape !).

# vi /mnt/debian-domU/etc/apt/apt.conf.d/30proxy

Et entrez ceci (à adapter à votre configuration)

Acquire::http { Proxy « http://apt-cacher-repo:3142 »; };

Ensuite éditer votre fichier sources.list à votre guise voici le mien (classique !)

deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny maindeb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

Nous allons maintenant « chroot-er » notre disque. C’est à dire que nous allons limiter l’exécution de nos commandes à notre nouvelle debian.

#chroot /mnt/debian-domU /bin/bash

Installons le paquet libc6-xen

#aptitude install libc6-xen

Notre installation est terminées sortons du chroot et démontons l’image.

#exit
#umount /mnt/debian-domU

Ensuite il faut créer notre fichier de configuration. (Il est aussi possible d’utiliser l’utilitaire xen-create-image mais cette méthode n’est pas détaillée ici.)

# vi /etc/xen/debian-domU.cfg

Voici le contenu de mon fichier

name= »ma-debian-en-domU »

kernel= »/boot/vmlinuz-2.6.26-2-xen-686″
ramdisk= »/boot/initrd.img-2.6.26-2-xen-686″

root= »/dev/hda1″
memory= »128″

disk=[‘phy:/dev/vg-00/debian-domU,hda1,w’]

vif=[  » ]

dhcp= »on »

extra=’xencons=tty’

Voici l’explication des options :
name : nom de la machine
kernel : noyaux a utiliser pour booter (ici le noyaux est le même que celui de notre dom0 !)
ramdisk : image mémoire de démarrage (idem)
root : partition à booter (interne à la VM)
memory : mémoire ram en Mo
disk : disque interne de la VM. Ici nous utilisons notre partition LVM mais vous pouvez aussi utiliser des fichiers faisant office de disque dur, des lecteurs CD-Rom, des images iso, …
vif : configuration du réseau. Ici vide correspond à la configuration par défaut.
dhcp : spécifie si on utilise ou non le DHCP pour récupérer notre adresse IP. Si vous ne voulez pas utiliser DHCP il vous faudra utiliser les options ip, netmask, gateway et hostname qui parlent d’elles même.
extra : spécifie une option de démarrage, (ici extra=’xencons=tty’ est indispensable si vous voulez pouvoir vous logger après la création de la machine).

Maintenant que tout est près finissons-en ! Pour cela xen fournit la commande xm que nous utiliserons comme suit :

#xm create -c /etc/xen/debian-domU.cfg

N’oubliez pas l’option -c qui vous attachera la machine au terminal actuel.
Vous pourrez éteindre votre machine avec xm shutdown. Pour plus d’info utilisez le man.

[EDIT]

Si vous tentez de vous connecter en SSH sur votre nouvelle VM et que vous rencontrez cette erreur :

PTY allocation request failed on channel 0
stdin: is not a tty

Installer udev

# aptitude install udev

Ajouter ceci dans votre fstab

# vi /etc/fstab

none   /dev/pts    devpts    defaults    0    0

Bonne virtualisation !

Configurons apt pour utiliser notre proxy (si vous n’avez toujours pas de proxy sautez cette étape !).

#vi /etc/apt/apt.conf.d/30proxy

Et entrez ceci (à adapter à votre configuration)

Acquire::http { Proxy « http://apt-cacher-repo:3142 »; };

Ensuite éditer votre fichier sources.list à votre guise voici le mien (classique !)

deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

Si vous avez apprécié cet article, pensé à laissé un commentaire ou vous abonner au flux RSS feed.

One thought on “[Xen] Installation d’une debian (domU) sur une debian (dom0)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *