[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"; };
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