Lerm-IT

Blog traitant de technologies informatiques. Logiciel libre, AdminSys, DevOps et GNU/Linux !

12 May 2009

[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 Gigaoctets), -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ée 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 à 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