<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.sn4ky.net/index.php?action=history&amp;feed=atom&amp;title=Xen_Sur_Debian_6</id>
	<title>Xen Sur Debian 6 - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sn4ky.net/index.php?action=history&amp;feed=atom&amp;title=Xen_Sur_Debian_6"/>
	<link rel="alternate" type="text/html" href="https://wiki.sn4ky.net/index.php?title=Xen_Sur_Debian_6&amp;action=history"/>
	<updated>2026-05-06T13:18:04Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.sn4ky.net/index.php?title=Xen_Sur_Debian_6&amp;diff=3&amp;oldid=prev</id>
		<title>Sn4kY : Page créée avec « &#039;&#039; Cet article a été écrit a partir de Debian 6.0 Squeeze, mais il peut être facilement adapté à Debian 5.0 Lenny &#039;&#039;  == Installation de Xen == Installation des pré... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.sn4ky.net/index.php?title=Xen_Sur_Debian_6&amp;diff=3&amp;oldid=prev"/>
		<updated>2018-04-12T13:55:56Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &amp;#039;&amp;#039; Cet article a été écrit a partir de Debian 6.0 Squeeze, mais il peut être facilement adapté à Debian 5.0 Lenny &amp;#039;&amp;#039;  == Installation de Xen == Installation des pré... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039; Cet article a été écrit a partir de Debian 6.0 Squeeze, mais il peut être facilement adapté à Debian 5.0 Lenny &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation de Xen ==&lt;br /&gt;
Installation des prérequis :&lt;br /&gt;
&lt;br /&gt;
(x86_32)&lt;br /&gt;
 aptitude install -y xen-utils-4.0 xen-tools xen-hypervisor-4.0-i386 xen-docs-4.0 libc6-xen linux-image-xen-686&lt;br /&gt;
&lt;br /&gt;
(x86_64)&lt;br /&gt;
 aptitude install -y xen-utils-4.0 xen-tools xen-hypervisor-4.0-amd64 xen-docs-4.0 linux-image-xen-amd64&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous êtes en grub2 (ce qui est le cas avec Squeeze), il est conseillé de réaliser les opérations suivantes, afin de modifier l&amp;#039;ordre de détection des noyaux pour que les noyaux XEN soient considérés en premier, et de désactiver l&amp;#039;OS_PROBER, pour éviter d&amp;#039;avoir autant d&amp;#039;entrées dans le fichier que de VM, dans le cas d&amp;#039;une install avec des volumes logiques (LVM)&lt;br /&gt;
&lt;br /&gt;
 mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux&lt;br /&gt;
 echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; /etc/default/grub&lt;br /&gt;
 echo &amp;quot;# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu.&amp;quot; &amp;gt;&amp;gt; /etc/default/grub&lt;br /&gt;
 echo &amp;quot;GRUB_DISABLE_OS_PROBER=true&amp;quot; &amp;gt;&amp;gt; /etc/default/grub&lt;br /&gt;
 update-grub2&lt;br /&gt;
&lt;br /&gt;
Il suffit ensuite de rebooter sur le kernel Xen, après avoir modifié le fichier de configuration pour activer le réseau Xen (voir plus bas)&lt;br /&gt;
&lt;br /&gt;
Pour vérifier que l&amp;#039;hyperviseur est fonctionnel :&lt;br /&gt;
 # xm list&lt;br /&gt;
 Name                                        ID   Mem VCPUs      State   Time(s)&lt;br /&gt;
 Domain-0                                     0   249     4     r-----     14.9&lt;br /&gt;
(si rien ne s&amp;#039;affiche, c&amp;#039;est que l&amp;#039;hyperviseur n&amp;#039;est pas démarré, kernel ou module Xen manquant ?)&lt;br /&gt;
&lt;br /&gt;
Ou&lt;br /&gt;
 # xm info&lt;br /&gt;
 host                   : xen1-test&lt;br /&gt;
 release                : 2.6.32-5-xen-amd64&lt;br /&gt;
 version                : #1 SMP Thu Nov 3 05:42:31 UTC 2011&lt;br /&gt;
 machine                : x86_64&lt;br /&gt;
 nr_cpus                : 4&lt;br /&gt;
 nr_nodes               : 1&lt;br /&gt;
 cores_per_socket       : 1&lt;br /&gt;
 threads_per_core       : 2&lt;br /&gt;
 cpu_mhz                : 2992&lt;br /&gt;
 hw_caps                : bfebfbff:20000800:00000000:00000180:0000641d:00000000:00000000:00000000&lt;br /&gt;
 virt_caps              :&lt;br /&gt;
 total_memory           : 8191&lt;br /&gt;
 free_memory            : 7846&lt;br /&gt;
 node_to_cpu            : node0:0-3&lt;br /&gt;
 node_to_memory         : node0:7846&lt;br /&gt;
 node_to_dma32_mem      : node0:3259&lt;br /&gt;
 max_node_id            : 0&lt;br /&gt;
 xen_major              : 4&lt;br /&gt;
 xen_minor              : 0&lt;br /&gt;
 xen_extra              : .1&lt;br /&gt;
 xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p&lt;br /&gt;
 xen_scheduler          : credit&lt;br /&gt;
 xen_pagesize           : 4096&lt;br /&gt;
 platform_params        : virt_start=0xffff800000000000&lt;br /&gt;
 xen_changeset          : unavailable&lt;br /&gt;
 xen_commandline        : placeholder dom0_mem=256M&lt;br /&gt;
 cc_compiler            : gcc version 4.4.5 (Debian 4.4.5-8)&lt;br /&gt;
 cc_compile_by          : waldi&lt;br /&gt;
 cc_compile_domain      : debian.org&lt;br /&gt;
 cc_compile_date        : Sun Nov  6 09:42:15 CET 2011&lt;br /&gt;
 xend_config_format     : 4&lt;br /&gt;
&lt;br /&gt;
== Réseau ==&lt;br /&gt;
=== Pour du network-bridge ===&lt;br /&gt;
On active le script pour le mode bridge de Xen, le script pour les vifs est activé par défaut&lt;br /&gt;
 sed -i &amp;#039;s/#\ (network-script network-bridge)/(network-script network-bridge)/g&amp;#039; /etc/xen/xend-config.sxp&lt;br /&gt;
&lt;br /&gt;
=== Pour du network-nat ===&lt;br /&gt;
On désactive le vif-script pour activer les scripts relatifs au NAT&lt;br /&gt;
 sed -i &amp;#039;s/^(vif-script vif-bridge)/#(vif-script vif-bridge)/g&amp;#039; /etc/xen/xend-config.sxp&lt;br /&gt;
 sed -i &amp;#039;s/^#(network-script network-nat)/(network-script network-nat)/g&amp;#039; /etc/xen/xend-config.sxp&lt;br /&gt;
 sed -i &amp;#039;s/^#(vif-script     vif-nat)/(vif-script     vif-nat)/g&amp;#039; /etc/xen/xend-config.sxp&lt;br /&gt;
&lt;br /&gt;
Il est nécessaire de redémarrer au moins le démon xend pour prendre en compte les modifications&lt;br /&gt;
 /etc/init.d/xend restart&lt;br /&gt;
&lt;br /&gt;
== creation de VMs ==&lt;br /&gt;
=== Créations automatiques, Debian Way ===&lt;br /&gt;
On va utiliser le script &amp;lt;code&amp;gt;xen-create-image&amp;lt;/code&amp;gt;, écrit en perl, et fourni par le paquet &amp;lt;code&amp;gt;xen-tools&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Il est conseillé de lire la documentation fournie, ou de faire un coup de &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt;, il y a vraiment beaucoup d&amp;#039;options.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Note particulière :&amp;#039;&amp;#039; si vous n&amp;#039;utilisez pas &amp;lt;code&amp;gt;--mirror=&amp;lt;/code&amp;gt; le script utilisera le miroir présent dans votre &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Avec LVM ====&lt;br /&gt;
Cet exemple utilisera le noyau recompilé disponible sur le dom0, en IP statique, debootstrap une &amp;#039;&amp;#039;&amp;#039;Debian Squeeze i386&amp;#039;&amp;#039;&amp;#039; via un apt-cacher [http://www.markasread.fr/pxe-apt-cacherperfect-setup-pour-du-debian-like/]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;xen-create-image --vcpus=1 --nohosts --install-method=debootstrap --dist=squeeze --genpass=0 --password=kikoolol \&lt;br /&gt;
--arch=i386 --initrd=/boot/initrd.img-2.6.32-i386-bigmem-xenu --kernel=/boot/vmlinuz-2.6.32-i386-bigmem-xenu \&lt;br /&gt;
--memory=700M --noswap --fs=ext3 --size=12G --lvm=MyVgName \&lt;br /&gt;
--mirror=http://172.16.200.2:3142/ftp2.fr.debian.org/debian/ --hostname=MyVmName \&lt;br /&gt;
--broadcast=172.16.255.255 --gateway=172.16.254.254 --netmask=255.255.0.0 --nameserver=&amp;quot;172.16.254.254&amp;quot; --ip=172.16.200.51&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PyGrub, LVM2, 64 bits&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;xen-create-image --vcpus=1 --nohosts --install-method=debootstrap --dist=squeeze --genpass=0 --password=tatayoyo \&lt;br /&gt;
--arch=amd64 --pygrub \&lt;br /&gt;
--memory=700M --noswap --fs=ext3 --size=12G --lvm=MyVgName \&lt;br /&gt;
--mirror=http://ftp2.fr.debian.org/debian/ --hostname=MyVmName \&lt;br /&gt;
--broadcast=172.16.255.255 --gateway=172.16.254.254 --netmask=255.255.0.0 --nameserver=&amp;quot;172.16.254.254&amp;quot; --ip=172.16.200.51&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple va debootstraper une &amp;#039;&amp;#039;&amp;#039;Ubuntu Lucid Lynx en AMD64&amp;#039;&amp;#039;&amp;#039; sans apt-cacher&lt;br /&gt;
 xen-create-image --vcpus=1 --nohosts --install-method=debootstrap --dist=lucid --genpass=0 --password=kikoolol \&lt;br /&gt;
 --arch=amd64 --pygrub \&lt;br /&gt;
 --memory=700M --noswap --fs=ext3 --size=5G --lvm=MyVgName \&lt;br /&gt;
 --hostname=lucid --mirror=http://archive.ubuntu.com/ubuntu/ \&lt;br /&gt;
 --broadcast=10.0.0.254 --gateway=10.0.0.128 --netmask=255.255.255.0 --nameserver=&amp;quot;10.0.0.128&amp;quot; --ip=10.0.0.3&lt;br /&gt;
&amp;#039;&amp;#039;n.b. : cet exemple a debootsrapé une version &amp;quot;serveur&amp;quot; de lucid&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;n.b. : avec la même methode et en souhaitant debootstraper  maverick, impossible de booter sur xvda1, voir [[ #Impossible_de_booter_sur_xvda1 ]]&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Sans LVM (fichiers .img) ====&lt;br /&gt;
Debootstrap (via apt-cacher) d&amp;#039;une &amp;#039;&amp;#039;&amp;#039;Lenny en amd64&amp;#039;&amp;#039;&amp;#039; en utilisant pygrub, avec 2Go de disque, 512Mo de swap (images stockée dans &amp;lt;code&amp;gt;/home/xen-disks/domains/&amp;lt;hostname&amp;gt;/&amp;lt;/code&amp;gt;), IP DHCP. Le kernel et l&amp;#039;initrd seront physiquement présent dans le /boot de la VM.&lt;br /&gt;
A noter que les xen-tools fournis avec Squeeze génèrent par défaut un password root qui vous sera fourni à la fin de l&amp;#039;install (ou dans le fichier de log de la création : &amp;lt;code&amp;gt;/var/log/xen-tools/&amp;lt;hostname&amp;gt;.log&amp;lt;/code&amp;gt;)&lt;br /&gt;
 xen-create-image --vcpus=2 --nohosts --install-method=debootstrap --dist=lenny \&lt;br /&gt;
 --arch=amd64 --pygrub \&lt;br /&gt;
 --memory=700M --size=2G --swap=512M --fs=ext4 --dir=/home/xen-disks \&lt;br /&gt;
 --hostname=MyVmLenny --mirror=http://172.16.200.2:3142/ftp2.fr.debian.org/debian/ \&lt;br /&gt;
 --dhcp&lt;br /&gt;
=== Créations manuelles ===&lt;br /&gt;
==== Linux ====&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prérequis&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Installer qemu :&lt;br /&gt;
 aptitude install xen-qemu-dm&lt;br /&gt;
Puis, il vous faut disposer d&amp;#039;un CD/DVD ou d&amp;#039;une ISO de la version de Windows que vous souhaitez installer.&amp;lt;br /&amp;gt;&lt;br /&gt;
Vous pouvez installer directement depuis le CD/DVD, ou générer une ISO de celui ci de cette manière :&lt;br /&gt;
 dd if=/dev/cdrom of=/path/to/ISO/windows_version.iso&lt;br /&gt;
Il vous faudra remplacer &amp;lt;code&amp;gt;/dev/cdrom&amp;lt;/code&amp;gt; par le vrai nom de votre lecteur CD/DVD, et le démonter (si automount est passé par là)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Création du disque&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Là encore, 2 méthodes pour la création du disque, la plus intéressante en terme de performance reste tout de même &amp;#039;&amp;#039;via LVM&amp;#039;&amp;#039; :&lt;br /&gt;
 lvcreate -L 20G -n win2008-disk MyVgName&lt;br /&gt;
pour créer un volume de 20G nommé win2008-disk dans le VG MyVgName.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;via images disques&amp;#039;&amp;#039; en attribuant tout l&amp;#039;espace disque (moins de fragmentation possible) :&lt;br /&gt;
 dd if=/dev/zero of=/path/to/IMG/win2008-disk.img bs=1M count=20480&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Configuration de XEN pour VNC&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Dans le fichier de config &amp;lt;code&amp;gt;/etc/xen/xend-config.sxp&amp;lt;/code&amp;gt; il faut activer :&lt;br /&gt;
 (vnc-listen &amp;#039;0.0.0.0&amp;#039;)&lt;br /&gt;
(ou l&amp;#039;interface sur laquelle l&amp;#039;hyperviseur devra écouter)&lt;br /&gt;
 (keymap &amp;#039;fr&amp;#039;)&lt;br /&gt;
Pour activer un clavier Français.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Configuration du premier démarrage&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
On va créer le fichier &amp;lt;code&amp;gt;/etc/xen/win2008.cfg&amp;lt;/code&amp;gt;. Cet exemple est pour un mode &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;BRIDGE&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;import os, re&lt;br /&gt;
arch = os.uname()[4]&lt;br /&gt;
if re.search(&amp;#039;64&amp;#039;, arch):&lt;br /&gt;
   arch_libdir = &amp;#039;lib64&amp;#039;&lt;br /&gt;
else:&lt;br /&gt;
   arch_libdir = &amp;#039;lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
kernel = &amp;#039;/usr/lib/xen-4.0/boot/hvmloader&amp;#039;&lt;br /&gt;
builder = &amp;#039;hvm&amp;#039;&lt;br /&gt;
memory = 2050&lt;br /&gt;
# Shadow pagetable memory for the domain, in MB.&lt;br /&gt;
# If not explicictly set, xend will pick an appropriate value.&lt;br /&gt;
# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.&lt;br /&gt;
shadow_memory = 8&lt;br /&gt;
# The number of cpus guest platform has, default=1&lt;br /&gt;
vcpus=2&lt;br /&gt;
&lt;br /&gt;
# Enable/disable HVM guest PAE, default=1 (enabled)&lt;br /&gt;
#pae=1&lt;br /&gt;
&lt;br /&gt;
# Enable/disable HVM guest ACPI, default=1 (enabled)&lt;br /&gt;
#acpi=1&lt;br /&gt;
&lt;br /&gt;
# Enable/disable HVM APIC mode, default=1 (enabled)&lt;br /&gt;
# Note that this option is ignored if vcpus &amp;gt; 1&lt;br /&gt;
#apic=1&lt;br /&gt;
name = &amp;quot;win2008&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Bridge name must be your bridge name (possibly eth0)&lt;br /&gt;
vif = [ &amp;#039;type=ioemu, bridge=xenbr0&amp;#039; ]&lt;br /&gt;
disk = [ &amp;#039;phy:/dev/MyVgName/win2008-disk,hda,w&amp;#039;, &amp;#039;file:/home/ISO/WIN2008R2_x86-64_FR_STD.ISO,hdc:cdrom,r&amp;#039; ]&lt;br /&gt;
device_model = &amp;#039;/usr/&amp;#039; + arch_libdir + &amp;#039;/xen-4.0/bin/qemu-dm&amp;#039;&lt;br /&gt;
&lt;br /&gt;
#-----------------------------------------------------------------------------&lt;br /&gt;
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)&lt;br /&gt;
# default: hard disk, cd-rom, floppy&lt;br /&gt;
boot = &amp;#039;dc&amp;#039;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncconsole = 1&lt;br /&gt;
vncpasswd = &amp;#039;MyVNCpasswd&amp;#039;&lt;br /&gt;
&lt;br /&gt;
serial = &amp;#039;pty&amp;#039;&lt;br /&gt;
usbdevice = &amp;#039;tablet&amp;#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
n.b. : on active dans un premier temps VNC, pour l&amp;#039;installation. On veillera bien à le désactiver après avoir activé le RDP (Prise en Main à Distance/Remote Desktop Protocol).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour un mode &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NAT&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; il faut modifier la ligne &amp;lt;code&amp;gt;vif =&amp;lt;/code&amp;gt; par :&lt;br /&gt;
 vif  = [ &amp;#039;type=ioemu, vifname=wif_win2008, bridge=10.0.1.254/24&amp;#039; ]&lt;br /&gt;
Toujours uniquement pour le &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NAT&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, il faut modifier le script hotplug fourni avec qemu &amp;lt;code&amp;gt;/etc/xen/scripts/qemu-ifup&amp;lt;/code&amp;gt; en&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/sh&lt;br /&gt;
##############ORIG SCRIPT###############&lt;br /&gt;
#echo -c &amp;#039;config qemu network with xen bridge for &amp;#039;&lt;br /&gt;
#echo $*&lt;br /&gt;
#&lt;br /&gt;
#ifconfig $1 0.0.0.0 up&lt;br /&gt;
#brctl addif $2 $1&lt;br /&gt;
########################################&lt;br /&gt;
&lt;br /&gt;
# $1 - tapx.x name&lt;br /&gt;
# $2 - bridge domain config vif option (vif = [&amp;#039;type=ioemu, bridge=$2&amp;#039;])&lt;br /&gt;
echo &amp;#039;config qemu network with xen interface &amp;#039; $*&lt;br /&gt;
# configure the tapx.x interface to have the ip provided in the bridge option&lt;br /&gt;
ip link set &amp;quot;$1&amp;quot; up arp on&lt;br /&gt;
ip addr add $2 dev &amp;quot;$1&amp;quot;&lt;br /&gt;
# add a route for the Qemu private network to go to the tapx.x interface&lt;br /&gt;
ip_only=echo $2 | awk -F/ &amp;#039;{print $1}&amp;#039;&lt;br /&gt;
route add $2 dev $1 src $ip_only&lt;br /&gt;
# make the tapx.x interface rewrite the MAC address for the forwarded virtual machines packages&lt;br /&gt;
# this will make tapx.x interface act as a gateway&lt;br /&gt;
echo 1 &amp;gt;/proc/sys/net/ipv4/conf/$1/proxy_arp&lt;br /&gt;
# add the iptables rules, in case firewall is enabled, to allow all connection in/out of the tapx.x interface&lt;br /&gt;
iptables -I FORWARD -m physdev --physdev-in &amp;quot;$1&amp;quot; -j ACCEPT 2&amp;gt;/dev/null&lt;br /&gt;
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -m physdev --physdev-out &amp;quot;$1&amp;quot; -j ACCEPT 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot de la VM ==&lt;br /&gt;
 xm create -c /etc/xen/vm.cfg&lt;br /&gt;
L&amp;#039;option &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt; permet de se connecter à la console de la VM à la création de celle-ci (inutile sur une VM Windows).&amp;lt;br /&amp;gt;&lt;br /&gt;
http://img.sn4ky.net/wiki/xen_lenny.JPG&lt;br /&gt;
&lt;br /&gt;
Si VNC est activé, vous devriez pouvoir vous connecter à l&amp;#039;interface de la VM en vous connectant sur l&amp;#039;IP de l&amp;#039;hyperviseur, le port par défaut étant 5900, avec &amp;#039;&amp;#039;UltraVNC&amp;#039;&amp;#039; par exemple.&lt;br /&gt;
&lt;br /&gt;
http://img.sn4ky.net/wiki/xen_win2008.JPG&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recompiler un noyau pour les domU (Debian Way) ==&lt;br /&gt;
=== Kernel 2.6.26 ===&lt;br /&gt;
Ici, on va recompiler depuis le domU, installé en utilisant &amp;lt;code&amp;gt;pygrub&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Installation des prérequis (on va se placer dans &amp;lt;code&amp;gt;/usr/src&amp;lt;/code&amp;gt;, les sources seront téléchargées dans le répertoire courant) :&lt;br /&gt;
 aptitude install -y build-essential libncurses5 zlib1g-dev zlibc kernel-package libncurses-dev&lt;br /&gt;
 cd /usr/src/&lt;br /&gt;
 apt-get source linux-image-2.6.26-2-xen-686&lt;br /&gt;
N.b. : &amp;lt;code&amp;gt;apt-get source&amp;lt;/code&amp;gt; n&amp;#039;est disponible que si le fichier &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; contient les entrées &amp;lt;code&amp;gt;deb-src&amp;lt;/code&amp;gt; :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;deb-src http://ftp2.fr.debian.org/debian/     lenny main&lt;br /&gt;
deb-src http://security.debian.org/ lenny/updates  main&lt;br /&gt;
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Vous devriez vous retrouver avec des éléments :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;linux-2.6-2.6.26/&lt;br /&gt;
linux-2.6_2.6.26-26lenny2.diff.gz&lt;br /&gt;
linux-2.6_2.6.26-26lenny2.dsc&lt;br /&gt;
linux-2.6_2.6.26.orig.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
On va appliquer les patchs contenu dans le .diff (ils contiennent entre autre les patch pour Xen)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;gzip -d linux-2.6_2.6.26-26lenny2.diff.gz&lt;br /&gt;
cd linux-2.6-2.6.26/&lt;br /&gt;
patch -p0 &amp;lt; ../linux-2.6_2.6.26-26lenny2.diff&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
On passe à la compilation (avec copie préalable du .config)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cp /boot/config-2.6.26-2-xen-686 ./.config&lt;br /&gt;
make menuconfig&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Il FAUT penser à activer les options suivantes :&lt;br /&gt;
 Processor type and features  ---&amp;gt;&lt;br /&gt;
  [*] Paravirtualized guest support  ---&amp;gt;&lt;br /&gt;
   [*]   Xen guest support&lt;br /&gt;
Une fois que vous avez sélectionné les options souhaitées, il ne reste plus qu&amp;#039;à faire un&lt;br /&gt;
 time env CONCURRENCY_LEVEL=`grep -c &amp;#039;^processor&amp;#039; /proc/cpuinfo` make-kpkg --initrd --revision=2.6.26-26lenny2 --append-to-version=-i386-bigmem-xenu kernel_image modules&lt;br /&gt;
Prenez un café (ou prenez préalablement le temps d&amp;#039;arrêter la VM et de la rebooter avec plus de vCPUs)&amp;lt;br /&amp;gt;&lt;br /&gt;
Une fois la compilation terminée un &amp;lt;code&amp;gt;ls ../&amp;lt;/code&amp;gt; doit remonter en plus &amp;lt;code&amp;gt;linux-image-2.6.26-i386-bigmem-xenu_2.6.26-26lenny2_i386.deb&amp;lt;/code&amp;gt; qu&amp;#039;il ne reste plus qu&amp;#039;à &amp;lt;code&amp;gt;dpkg -i&amp;lt;/code&amp;gt; pour installer le kernel, les modules, l&amp;#039;initrd, et regénérer grub en conséquence.&lt;br /&gt;
 cd /usr/src/&lt;br /&gt;
 dpkg -i linux-image-2.6.26-i386-bigmem-xenu_2.6.26-26lenny2_i386.deb&lt;br /&gt;
Répondez &amp;lt;code&amp;gt;Oui&amp;lt;/code&amp;gt; à la première question, &amp;lt;code&amp;gt;OK&amp;lt;/code&amp;gt; à la seconde, et &amp;lt;code&amp;gt;Non&amp;lt;/code&amp;gt; à la 3eme.&amp;lt;br /&amp;gt;&lt;br /&gt;
Il faut ensuite modifier le fichier &amp;lt;code&amp;gt;/boot/grub/menu.lst&amp;lt;/code&amp;gt; pour y ajouter le kernel précédemment compilé :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
title           Debian GNU/Linux 5.0&lt;br /&gt;
root            (hd0,0)&lt;br /&gt;
kernel          /boot/vmlinuz-2.6.26-i386-bigmem-xenu root=/dev/xvda2 ro&lt;br /&gt;
initrd          /boot/initrd.img-2.6.26-i386-bigmem-xenu&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
(Pensez à modifier la valeur du &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; en fonction de où vous avez placé le bloc ci-dessus)&lt;br /&gt;
 reboot&lt;br /&gt;
Si tout c&amp;#039;est bien passé, ça reboot sur le bon kernel, et vous devriez avoir les nouvelles options compilées correctement.&lt;br /&gt;
&lt;br /&gt;
=== Kernel 2.6.32 ===&lt;br /&gt;
Cet exemple est réalisé à partir du dom0 (puisqu&amp;#039;on utilise le même kernel)&amp;lt;br /&amp;gt;&lt;br /&gt;
Installation des prérequis :&lt;br /&gt;
 aptitude install -y build-essential libncurses5 zlib1g-dev zlibc linux-source-2.6.32 kernel-package libncurses-dev&lt;br /&gt;
On va ensuite détarer les sources :&lt;br /&gt;
 cd /usr/src/&lt;br /&gt;
 tar jxvf linux-source-2.6.32.tar.bz2&lt;br /&gt;
 cd linux-source-2.6.32&lt;br /&gt;
&lt;br /&gt;
Une configuration fonctionnelle pour un domU est fournie avec le kernel du dom0 (il y aura juste des options en moins, mais ces options ne sont pas nécessaires aux domU). On récupère le fichier de configuration du kernel précedemment installé :&lt;br /&gt;
&lt;br /&gt;
 cp /boot/config-2.6.32-5-xen-686 ./.config&lt;br /&gt;
&lt;br /&gt;
Et on lance la partie de configuration visuelle du kernel&lt;br /&gt;
&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
Sélectionnez dans ce menu les options et optimisation souhaités.&lt;br /&gt;
&lt;br /&gt;
Ex. : la configuration du 1000hz se trouve dans &amp;lt;code&amp;gt;Processor type and features  ---&amp;gt;&amp;lt;/code&amp;gt; puis il s&amp;#039;agit du paramètre de &amp;lt;code&amp;gt;Timer frequency&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;est également dans ce menu que l&amp;#039;on peut désactiver le Tickless, modifier le &amp;lt;code&amp;gt;Processor family&amp;lt;/code&amp;gt;, activer ou pas le &amp;lt;code&amp;gt;SMT (Hyperthreading)&amp;lt;/code&amp;gt; ou encore choisir le &amp;lt;code&amp;gt;Preemption Model&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 time env CONCURRENCY_LEVEL=`grep -c &amp;#039;^processor&amp;#039; /proc/cpuinfo` make-kpkg --initrd --revision=1 --append-to-version=-i386-bigmem-xenu kernel_image modules&lt;br /&gt;
 cd ..&lt;br /&gt;
 dpkg -i ...deb&lt;br /&gt;
&lt;br /&gt;
== Tunning ==&lt;br /&gt;
=== Mémoire du dom0 ===&lt;br /&gt;
Dans certains cas, il peut être intéressant de mettre des quantités fixes de ram au dom0, et faire en sorte que les domU ne puissent pas lui en prendre.&lt;br /&gt;
&lt;br /&gt;
On va pour celà modifier le fichier &amp;lt;code&amp;gt;/etc/xen/xend-config.sxp&amp;lt;/code&amp;gt; et indiquer :&lt;br /&gt;
 (dom0-min-mem 256)&lt;br /&gt;
 (enable-dom0-ballooning no)&lt;br /&gt;
&lt;br /&gt;
Ce qui aura pour effet d&amp;#039;indiquer à Xen que le dom0 ne peut aller en dessous de 256Mo de ram, et qu&amp;#039;on interdit le balooning du dom0 (le balooning c&amp;#039;est la possibilité d&amp;#039;ajouter ou de diminuer la ram à chaud d&amp;#039;un système)&lt;br /&gt;
&lt;br /&gt;
Puis, pour parfaire la chose, et afin de booter le dom0 avec pile poil 256Mb de ram (ajuster bien sur cette valeur à vous souhaits), on va faire quelques modifs dans les fichiers de config de GRUB2 : &lt;br /&gt;
 echo &amp;quot;&amp;quot; &amp;gt;&amp;gt; /etc/default/grub&lt;br /&gt;
 echo &amp;quot;GRUB_CMDLINE_XEN_DEFAULT=&amp;quot;dom0_mem=256M&amp;quot;&amp;quot; &amp;gt;&amp;gt; /etc/default/grub&lt;br /&gt;
Suivi d&amp;#039;un petit &amp;lt;code&amp;gt;update-grub2&amp;lt;/code&amp;gt; pour que la modification soit prise en compte.&lt;br /&gt;
&lt;br /&gt;
=== Boot au démarrage du serveur ===&lt;br /&gt;
Afin de faire booter une, ou plusieurs VM au démarrage de la machine physique, il suffit de créer un répertoire &amp;lt;code&amp;gt;/etc/xen/auto&amp;lt;/code&amp;gt; et d&amp;#039;y placer des liens symboliques :&lt;br /&gt;
 mkdir /etc/xen/auto&lt;br /&gt;
 ln -s /etc/xen/mavm1.cfg /etc/xen/auto/mavm1.cfg&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Toujours dans la section boot &amp;amp; reboot, si on veut que l&amp;#039;hyperviseur procède à un shutdown des VM avant extinction de la machine (au lieu d&amp;#039;un SAVE), il convient de modifier quelques options de &amp;lt;code&amp;gt;/etc/default/xendomains&amp;lt;/code&amp;gt;&lt;br /&gt;
 XENDOMAINS_SAVE=&lt;br /&gt;
 XENDOMAINS_RESTORE=false&lt;br /&gt;
&lt;br /&gt;
=== Fixer le CPU du dom0 ===&lt;br /&gt;
Pour diverses raisons, il est possible de n&amp;#039;attribuer qu&amp;#039;un seul CPU au dom0, dans le fichier &amp;lt;code&amp;gt;/etc/xen/xend-config.sxp&amp;lt;/code&amp;gt;&lt;br /&gt;
 # In SMP system, dom0 will use dom0-cpus # of CPUS&lt;br /&gt;
 # If dom0-cpus = 0, dom0 will take all cpus available&lt;br /&gt;
 (dom0-cpus 0)&lt;br /&gt;
Les CPU (en réalité les threads) sont comptés de 1 à N, 0 indique tous les CPU disponible.&lt;br /&gt;
&lt;br /&gt;
=== Ressources IO du dom0 ===&lt;br /&gt;
Il est possible donner plus de crédits pour l&amp;#039;allocation des IO du dom0, dans &amp;lt;code&amp;gt; /etc/rc.local&amp;lt;/code&amp;gt; :&lt;br /&gt;
 /usr/sbin/xm sched-credit -d Domain-0 -w 512&lt;br /&gt;
&lt;br /&gt;
=== Plusieurs bridges ===&lt;br /&gt;
Selon les cas, il peut être utile d&amp;#039;avoir à monter plusieurs bridges sur le dom0. Sans trop complexifier la chose, nous allons créer un script &amp;lt;code&amp;gt;/etc/xen/scripts/network-multi-bridge&amp;lt;/code&amp;gt; et y mettre dedans :&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 dir=$(dirname &amp;quot;$0&amp;quot;)&lt;br /&gt;
 &amp;quot;$dir/network-bridge&amp;quot; &amp;quot;$@&amp;quot; vifnum=0 netdev=eth0 bridge=eth0&lt;br /&gt;
 &amp;quot;$dir/network-bridge&amp;quot; &amp;quot;$@&amp;quot; vifnum=1 netdev=eth1 bridge=eth1&lt;br /&gt;
&lt;br /&gt;
Ne pas oublier de rendre ce script exécutable &amp;lt;code&amp;gt;chmod +x /xen/scripts/network-multi-bridge&amp;lt;/code&amp;gt; et de demander au démon Xen de prendre ce script plutôt qu&amp;#039;un autre, dans &amp;lt;code&amp;gt;/etc/xen/xend-config.sxp&amp;lt;/code&amp;gt; rechercher la ligne &lt;br /&gt;
 (network-script network-bridge)&lt;br /&gt;
pour la remplacer par&lt;br /&gt;
 (network-script network-multi-bridge)&lt;br /&gt;
&lt;br /&gt;
Un redémarrage pour être certain que toutes les modifications sont bien prises en compte et fonctionnelles, et c&amp;#039;est OK.&lt;br /&gt;
&lt;br /&gt;
=== Bridge sans IP sur l&amp;#039;interface ===&lt;br /&gt;
Dans certains cas, il peut être intéressant de ne pas avoir d&amp;#039;IP sur une interface du dom0 (genre, pas d&amp;#039;IP publique).&lt;br /&gt;
Problème, si l&amp;#039;interface n&amp;#039;est pas configurée, elle ne monte pas au démarrage&lt;br /&gt;
Voici un petit trick applicable dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 allow-hotplug eth0&lt;br /&gt;
 iface eth0 inet manual&lt;br /&gt;
        pre-up ifconfig $IFACE up&lt;br /&gt;
        post-down ifconfig $IFACE down&lt;br /&gt;
&lt;br /&gt;
=== Paraviritualized drivers pour Windows ===&lt;br /&gt;
[http://wiki.xen.org/wiki/XenWindowsGplPv Xen GPLPV Drivers]&lt;br /&gt;
&lt;br /&gt;
[https://plone.lucidsolutions.co.nz/linux/xen/windows/windows-server-2008-r2-xen-hvm-installation-with-gpvpv-drivers]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Impossible de booter sur xvda1 ===&lt;br /&gt;
Dans certaines conditions, on peut se retrouver avec ce type d&amp;#039;erreurs au boot de la VM :&lt;br /&gt;
 ALERT!  /dev/xvda1 does not exist.  Dropping to a shell!&lt;br /&gt;
Debug :&lt;br /&gt;
 (initramfs) ls /dev/&lt;br /&gt;
Rechercher un xvda1 (a priori, il n&amp;#039;y en a pas), un sda1 ou un hda1.&amp;lt;br /&amp;gt;&lt;br /&gt;
Puis remplacer, dans le fichier de config de la VM, les occurences à xvda1 et les remplacer par le &amp;#039;&amp;#039;device&amp;#039;&amp;#039; trouvé plus haut.&amp;lt;br /&amp;gt;&lt;br /&gt;
Par exemple :&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#  Disk device(s).&lt;br /&gt;
root        = &amp;#039;/dev/xvda1 ro&amp;#039;&lt;br /&gt;
disk        = [ &amp;#039;phy:/dev/MyVgName/maverick-disk,xvda1,w&amp;#039;, ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
par&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#  Disk device(s).&lt;br /&gt;
root        = &amp;#039;/dev/sda1 ro&amp;#039;&lt;br /&gt;
disk        = [ &amp;#039;phy:/dev/MyVgName/maverick-disk,sda1,w&amp;#039;, ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pyGrub et grub.cfg ===&lt;br /&gt;
pyGrub sait booter sur menu.lst et grub.cfg. Problème, lors de l&amp;#039;utilisation des xen-scripts l&amp;#039;installeur génère un fichier menu.lst ; or depuis Squeeze (6.0) grub-legacy a été remplacé par grub2, qui génère des fichiers grub.cfg. Il est impossible à pygrub de booter en l&amp;#039;état.&lt;br /&gt;
&lt;br /&gt;
La modification des lignes &lt;br /&gt;
 set root=&amp;#039;(/dev/xvda2)&amp;#039;&lt;br /&gt;
en&lt;br /&gt;
 set root=&amp;#039;(hd0,1)&amp;#039;&lt;br /&gt;
corrige le problème et permet de booter.&lt;br /&gt;
&lt;br /&gt;
Attention toutefois, lors de l&amp;#039;utilisation de update-grub2, la mauvaise configuration revient.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
* [http://wiki.kartbuilding.net/index.php/Xen_Networking Kartbuilding.net]&lt;br /&gt;
* [http://blog.lenorcy.info/2010/11/22/comment-installer-un-windows-7-sur-un-hyperviseur-xen-4/ blog.lenorcy.info]&lt;br /&gt;
* [http://blog.sietch-tabr.com/index.php/post/2007/09/24/faire-tourner-Windows-sur-Xen ka.da]&lt;br /&gt;
* [http://www.2virt.com/blog/?p=151 2Virt blog]&lt;br /&gt;
* http://marc.info/?l=xen-users&amp;amp;m=120931582903469&lt;br /&gt;
* http://xen.1045712.n5.nabble.com/network-nat-whit-qemu-dm-not-working-td2587920.html&lt;br /&gt;
* http://www.thierry-jaouen.fr/dokuwiki/doku.php?id=serveur_xen&lt;/div&gt;</summary>
		<author><name>Sn4kY</name></author>
	</entry>
</feed>