<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.e-bulles.be/b/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Francois</id>
		<title>Bulles - Basé sur le travail de $1. [fr]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.e-bulles.be/b/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Francois"/>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/bulles/Sp%C3%A9cial:Contributions/Francois"/>
		<updated>2026-04-10T12:43:49Z</updated>
		<subtitle>Basé sur le travail de $1.</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1806</id>
		<title>Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1806"/>
				<updated>2007-09-18T15:30:41Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Bridging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Xen sur une Debian Etch / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Nous utilisons [http://linux-vserver.org/ Linux VServers] sans problèmes depuis un certain temps déjà, mais dans certains cas il est intéressant de faire un pas plus en avant en terme de para-virtualisation (plus grande liberté au niveau de la couche réseau, ou des noyeaux utilisés) ou tout simplement dans la cas de la virtualisation pure (OS propriétaires).&lt;br /&gt;
&lt;br /&gt;
Ce petit article n'est pas un n-ième howto sur la question, mais rassemble plutôt quelques notes prises lors de mes installations et tests.&lt;br /&gt;
&lt;br /&gt;
Environnement:&lt;br /&gt;
* Materiel: [http://supermicro.com/products/motherboard/Xeon1333/5000V/X7DVL-E.cfm SuperMicro X7DVL-E] Bi-Xeon Quad core (E5310), 12 GB Memoire, 2 TB Disque &lt;br /&gt;
* OS hôte (Domain 0): Debian Etch&lt;br /&gt;
* Xen Open Source: version 3.1&lt;br /&gt;
&lt;br /&gt;
= Debian Etch (DomO) =&lt;br /&gt;
&lt;br /&gt;
== Généralités == &lt;br /&gt;
Nous démarrerons su base d'une Debian Etch installée et à jour.&lt;br /&gt;
&lt;br /&gt;
Nous désirons tourner des machines virtuelles 32 bits. Le support des machines virtuelles 32 bits sur un hôte 64 bits dans Xen est assez récent (32-on-64 PV guest support), et pour des raisons de stabilité, nous installons donc une version i386 de Debian.&lt;br /&gt;
&lt;br /&gt;
== Partitionnement ==&lt;br /&gt;
Nous disposons de quatre disque de 500GB. Trois sont configurés en RAID5, le dernier reste comme ''Hot Spare''. Le raid étant géré par la carte ''3Ware'', un seul device est visible pour Linux, sa taille est d'approximativement 1 TB.&lt;br /&gt;
&lt;br /&gt;
Nous mettons toutes les partitions standard dans un ''Volume Group'', et nous réservons un autre pour accueillir les machines virtuelles Xen. De cette manière nous séparons completement le système hôte des machines virtuelles. Ce dernier ''Volume Group'' contiendra un ''file system'' pour les images disques ''sur fichier'' et des ''logical volumes'' additionnels pour les acces ''direct''.&lt;br /&gt;
&lt;br /&gt;
Pour le ''Volume Group'' hôte, je reste un adepte des ''filesystems'' séparés!&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Physical device         !! Taille      !! Volume Group  !!colspan=&amp;quot;2&amp;quot;| LVM     !! Partition &lt;br /&gt;
|-&lt;br /&gt;
| /dev/sda1               || 512 MB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || /boot     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;|/dev/sda2    ||rowspan=&amp;quot;6&amp;quot;| 100 GB  ||rowspan=&amp;quot;6&amp;quot;| vgDom0 || root    || 1 GB  || /     &lt;br /&gt;
|-&lt;br /&gt;
| swap    || 12 GB   || swap     &lt;br /&gt;
|-&lt;br /&gt;
| usr    || 5 GB   || /usr     &lt;br /&gt;
|-&lt;br /&gt;
| var    || 3 GB   || /var  &lt;br /&gt;
|-&lt;br /&gt;
| home    || 20 GB   || /home     &lt;br /&gt;
|-&lt;br /&gt;
| -    || 50 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|/dev/sda3    ||rowspan=&amp;quot;2&amp;quot;| 375 GB  ||rowspan=&amp;quot;2&amp;quot;| vgDomU || domu    || 100 GB  || /home/domu     &lt;br /&gt;
|-&lt;br /&gt;
| -     || 275 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
| -               || 500 GB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || non-alloué     &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
En dehors d'un install de base, nous installerons les packages suivants&lt;br /&gt;
&lt;br /&gt;
=== Packages utiles ===&lt;br /&gt;
Ces packages ne sont pas a proprement parler obligatoire, mais bon...&lt;br /&gt;
 {{Deb|openssh-server}}&lt;br /&gt;
 {{Deb|screen}}&lt;br /&gt;
 {{Deb|ntp}}&lt;br /&gt;
 {{Deb|less}}&lt;br /&gt;
&lt;br /&gt;
=== Checkinstall ===&lt;br /&gt;
Nous utilisons la dernière version de Xen, qui n'est pas disponible dans Etch.&lt;br /&gt;
&amp;lt;br /&amp;gt;Afin d'éviter d'installer des fichiers non controllés par ''dpkg'', nous utiliserons aussi [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] pour empaqueter Xen.&lt;br /&gt;
&lt;br /&gt;
{{Deb|checkinstall}} est actuellement dans Debian Testing, mais nous le compilerons a partir des sources pour éviter un mélange de distribution.&lt;br /&gt;
&lt;br /&gt;
Le version ''Debian'' de [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] est encore assez récente et n'est pas parfaite, mais fonctionne suffisemment bien pour nos besoins.&lt;br /&gt;
{{Boite Code|shell| # Packages pré-requis:&lt;br /&gt;
 apt-get install dpkg-dev gcc file gettext libc6-dev&lt;br /&gt;
 # Récupération des sources&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 mkdir checkinstall&lt;br /&gt;
 cd checkinstall&lt;br /&gt;
 wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.1.tgz&lt;br /&gt;
 tar xzf checkinstall-1.6.1.tgz &lt;br /&gt;
 cd checkinstall-1.6.1&lt;br /&gt;
 # Patch pour les fichiers de configuration&lt;br /&gt;
 perl -pi -e 's@find \$BUILD_DIR/etc 2@find \$BUILD_DIR/etc -name init.d -prune -o -type f -print 2@' \&lt;br /&gt;
      checkinstall&lt;br /&gt;
 # Compilation et installation 'brute'&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 # Génération et installation du paquet Debian&lt;br /&gt;
 checkinstall -D&lt;br /&gt;
 dpkg -i checkinstall_1.6.1-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Xen (Dom0) =&lt;br /&gt;
== Dépendences Xen ==&lt;br /&gt;
Xen nécessite les paquest suivants:&lt;br /&gt;
 {{Deb|iproute}} {{Deb|libc6}} {{Deb|libncurses5}} {{Deb|python}} {{Deb|python-central}} {{Deb|udev}} {{Deb|zlib1g}}&lt;br /&gt;
 {{Deb|libc6-xen}}&lt;br /&gt;
 {{Deb|bridge-utils}} {{Deb|libssl0.9.7}} {{Deb|libsdl1.2debian}}&lt;br /&gt;
&lt;br /&gt;
Les paquets suivant sont nécessaires si on utilise le ''VFB'' (Virtual Frame Buffer) de Xen. Cette option n'est utile que si on désire une console graphique en mode ''para-virtualisé''.&lt;br /&gt;
 {{Deb|libsdl1.2-dev}} {{Deb|libvncserver-dev}} {{Deb|libjpeg62}}&lt;br /&gt;
{{Boite Attention|Le ''vfb'' est une option qui n'est pas compilée dans les binaires distribués par [http://xensource.com/download/index_oss.html XenSource]. &lt;br /&gt;
&amp;lt;br /&amp;gt;Si on désire l'utiliser il faudra [[#Compilation de Xen|recompiler Xen]].}}&lt;br /&gt;
&lt;br /&gt;
== Noyeau ==&lt;br /&gt;
Afin de bénéficier des mises-à-jour de sécurité Debian, nous utilisons le noyau para-virtualisé Debian au lieu du noyau ''kernel.org'' distribué par Xen:&lt;br /&gt;
 {{Deb|linux-image-2.6-xen-686}}&lt;br /&gt;
&lt;br /&gt;
'''Note''': nous avons eu de manière aléatoire le message suivant lors du démarrage d'une machine virtuelle:&lt;br /&gt;
 BUG: unable to handle kernel paging request at virtual address c007c72c&lt;br /&gt;
Nous avons attribué ce problème à la version Debian du noyau, mais il semble qu'il se produise aussi avec le noyau de ''kernel.org''&lt;br /&gt;
&lt;br /&gt;
Si on utilise le noyau Debian, il faudra ajouter ''netloop'' dans la listes des modules à charger:&lt;br /&gt;
{{Boite Fichier|/etc/modules|&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 &lt;br /&gt;
 loop&lt;br /&gt;
 netloop&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Hyperviseur ==&lt;br /&gt;
Pour l'hyperviseur, nous pouvons:&lt;br /&gt;
* soit télécharger de [http://xensource.com/download/index_oss.html XenSource] (version ''tarball'' / ''i386 PAE'');&lt;br /&gt;
* soit utiliser le ''tarball'' généré au paragraphe [[#Compilation de Xen]]&lt;br /&gt;
{{Boite Code|shell| mkdir /usr/src/xen&lt;br /&gt;
 cd /usr/src/xen&lt;br /&gt;
 wget http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
 tar xzf xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Adaptations Debian:&lt;br /&gt;
{{Boite Code|shell| cd dist&lt;br /&gt;
 chown -R root:root .&lt;br /&gt;
 cd install/etc&lt;br /&gt;
 mv sysconfig default&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Création du script network-dummy, si on ne désire pas utiliser le bridge Xen (voir note ci-dessous):&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen/dist/install/etc/xen&lt;br /&gt;
 echo -e '#!/bin/sh\n\nexit 0' &amp;gt; scripts/network-dummy&lt;br /&gt;
 chmod 755 scripts/network-dummy&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Scripts de startup:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 cd /usr/src/xen/dist/install/etc&lt;br /&gt;
 perl -pi -e 's@LOCKFILE=/var/lock/subsys/xendomains@LOCKFILE=/var/lock/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@XENDOM_CONFIG=/etc/sysconfig/xendomains@XENDOM_CONFIG=/etc/default/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains&lt;br /&gt;
 cd /usr/src/xen/dist&lt;br /&gt;
 cat &amp;gt;postinstall-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 update-rc.d xend defaults 20 21 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 update-rc.d xendomains defaults 21 20 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;configure&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     depmod -a -F /boot/System.map-2.6.18-xen 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
     update-initramfs -c -t -k 2.6.18-xen&lt;br /&gt;
   fi&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;preremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     update-initramfs -d -k 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
   fi&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;postremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   update-rc.d xend remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   update-rc.d xendomains remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod a+x postinstall-pak postremove-pak preremove-pak&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Note''': Pour les aventuriers qui utilisent cet article pour installer la version 64 bits de Xen, il faut ruser pour avoir les librairies au bon endroit... (Distribution Xen {{Fichier|xen-3.1.0-install-x86_64.tgz}})&lt;br /&gt;
{{Boite Code|shell -- Uniquement pour la distribution 64 bits|&lt;br /&gt;
 # Uniquement pour la version 64 bits de l'hyperviseur! &lt;br /&gt;
 cd /usr/src/xen/dist/install/usr&lt;br /&gt;
 mv -f lib64/xen/bin lib/xen/&lt;br /&gt;
 rm -rf lib64/xen&lt;br /&gt;
 mv -f lib64/* lib/*&lt;br /&gt;
 rm -rf lib64&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Si nous utilisons les noyeaux Debian; on peux nettoyer le noyeau distribué dans le paquet Xen:&lt;br /&gt;
{{Boite Code|shell (Optionel)| cd  /usr/src/xen/dist/install&lt;br /&gt;
 rm -rf lib&lt;br /&gt;
 rm -f boot/vmlinux-syms-2.6.18-xen boot/vmlinuz-2.6.18-xen boot/vmlinuz-2.6-xen \&lt;br /&gt;
       boot/System.map-2.6.18-xen boot/config-2.6.18-xen&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Préparation du paquet avec {{Commande|checkinstall}}&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen&lt;br /&gt;
 mv dist xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 cd  xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 checkinstall -D ./install.sh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Installer le package:&lt;br /&gt;
{{Boite Code|shell| dpkg -i xen-hypervisor-and-tools-3.1.0-1-i386-pae_3.1.0-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Rebooter!&lt;br /&gt;
&lt;br /&gt;
= Xen (DomU) =&lt;br /&gt;
== Xen-tools ==&lt;br /&gt;
Les utilitaires [http://xen-tools.org/software/xen-tools/ xen-tools] permettent de créer des machines (para-)virtuelles (''DomU'') très facilement.&lt;br /&gt;
&amp;lt;br /&amp;gt;Il supporte la création de machines virtuelles Debian, Ubuntu, CentOS et Fedora. Il permet aussi de copier des machines virtuelles, etc.&lt;br /&gt;
&lt;br /&gt;
[http://xen-tools.org/software/xen-tools/ Xen-tools]est disponible dans Debian Etch, mais nous prendrons le dépot du développeur [http://apt.steve.org.uk/ Steve Kemp] qui est plus récent:&lt;br /&gt;
 {{Boite Fichier|/etc/apt/sources.list|&lt;br /&gt;
 #&lt;br /&gt;
 #  Steve Kemp's repository:  Etch&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
 deb-src http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Ajout de la clé:&lt;br /&gt;
{{Boite Code|shell| wget -q -O - http://apt.steve.org.uk/apt-key.gpg &amp;amp;#124; apt-key add -}}&lt;br /&gt;
&lt;br /&gt;
On aura aussi besoin de ''debootstrap''&lt;br /&gt;
{{Boite Code|shell| apt-get install debootstrap xen-tools}}&lt;br /&gt;
&lt;br /&gt;
Vérifier le fichier {{Fichier|/etc/xen-tools/xen-tools.conf}}; en mettant les ''bons'' paramètres par défaut, la création d'une machine virtuelle s'en trouve grandement simplifiée.&lt;br /&gt;
&amp;lt;br /&amp;gt;Le fichier de configuration est bien documenté et ne devrait pas poser de problèmes.&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (para-virtualisation) ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Pour créer une machine virtuelle avec les paramètres par défaut (si les adresses sont allouées par ''dhcp''):&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 xen-create-image --hostname=&amp;lt;FQDN&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de cette machine virtuelle est {{Fichier|/etc/xen/&amp;lt;FQDN&amp;gt;.cfg}} et elle se démarre:&lt;br /&gt;
{{Boite Code|shell| xm create -c /etc/xen/&amp;lt;FQDN&amp;gt;.cfg}}&lt;br /&gt;
&lt;br /&gt;
Pour démarrer une machine virtuelle au boot:&lt;br /&gt;
{{Boite Code|shell| ln -s /etc/xen/&amp;lt;FQDN&amp;gt;.cfg /etc/xen/auto}}&lt;br /&gt;
Elle sera par la même occasion ''sauvée'' au shutdown.&lt;br /&gt;
&lt;br /&gt;
{{Boite Attention|par défaut, [http://Xen-tools.org/software/xen-tools/ xen-tools] utilise le noyeau de l'hôte ''Dom0'' pour la machine virtuelle. Ce n'est pas un problème en soi, mais il faut en être conscient: une mise-à-jour du noyeau sur le ''Dom0'' sera répercuté sur les ''DomU'' qui l'utilisent; il ne faut donc pas oublier de mettre-à-jour les modules correspondant dans les machines virtuelles...}}&lt;br /&gt;
&lt;br /&gt;
=== Unbreakable Linux / Red Hat / CentOS ===&lt;br /&gt;
Voir l'article [[Unbreakable Xen]]&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (HVM) ==&lt;br /&gt;
Le mode HVM permet de tourner des OS ''non para-virtualisés''.&lt;br /&gt;
&lt;br /&gt;
A titre d'exemple j'ai installé Windows XP Home Edition sur un ''logical volume''.&lt;br /&gt;
&amp;lt;br /&amp;gt;Nous avons une image du CD-ROM: {{Fichier|/home/vservers/XPhome.iso}}&lt;br /&gt;
&lt;br /&gt;
Création du ''logical volume'':&lt;br /&gt;
{{Boite Code|shell| lvcreate –L 10000 –n xphome vgXen}}&lt;br /&gt;
&lt;br /&gt;
Création du fichier de configuration {{Fichier|/etc/xen/xphome.hvm}} à partir du template {{Fichier|/etc/xen/xmexample.hvm}}.&lt;br /&gt;
&amp;lt;br /&amp;gt;Les seules choses à changer sont:&lt;br /&gt;
* Le nom de la machine virtuelle&lt;br /&gt;
* La mémoire à allouer&lt;br /&gt;
* Le ''mapping'' du dique et de l'image CD-ROM&lt;br /&gt;
* L'ordre de boot (C, D)&lt;br /&gt;
* L'accès au serveur VNC par une machine distante&lt;br /&gt;
* Le ''mapping'' clavier &lt;br /&gt;
{{Boite Code|diff xmexample.hvm xphome.hvm|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 28c28&lt;br /&gt;
 &amp;lt; memory = 128&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; memory = 512&lt;br /&gt;
 35c35&lt;br /&gt;
 &amp;lt; name = &amp;quot;ExampleHVMDomain&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; name = &amp;quot;xphome&amp;quot;&lt;br /&gt;
 64c64&lt;br /&gt;
 &amp;lt; vif = [ 'type=ioemu, bridge=xenbr0' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vif = [ 'type=ioemu, mac=00:16:3e:00:00:94, bridge=xenbr0' ]&lt;br /&gt;
 74c74&lt;br /&gt;
 &amp;lt; disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; disk = [ 'phy:/dev/vgXen/xphome,ioemu:hda,w', 'file:/home/vservers/XPhome.iso,hdc:cdrom,r' ]&lt;br /&gt;
 121a122&lt;br /&gt;
 &amp;gt; boot=&amp;quot;cd&amp;quot;&lt;br /&gt;
 138c139&lt;br /&gt;
 &amp;lt; #vnclisten=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vnclisten=&amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
 210c211&lt;br /&gt;
 &amp;lt; #keymap='ja'&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; keymap='fr-be'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de créer la machine virtuelle:&lt;br /&gt;
{{Boite Code|shell| xm create /etc/xen/xphome.hvm}}&lt;br /&gt;
&lt;br /&gt;
Et, a partir d'une machine distante:&lt;br /&gt;
{{Boite Code|shell| xvncviewer &amp;lt;Dom0&amp;gt;}}&lt;br /&gt;
(C'est bien le domaine 0 qu'il faut adresser et pas la machine virtuelle!)&lt;br /&gt;
&lt;br /&gt;
L'installation de Windows se passe sans problème via ''VNC''.&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Compilation de Xen ==&lt;br /&gt;
Si on est un adepte de la compile, ou tout simplement si on désire profiter du Virtual Frame Buffer qui n'est pas compilé par défaut dans les binaires distribués par [http://xensource.com/download/index_oss.html XenSource], il est toujours possible de recompiler le paquet.&lt;br /&gt;
&lt;br /&gt;
La liste des dépendances pour compiler Xen est assez fournie, et pour ne pas ''polluer'' mon ''Dom0'' j'ai effectué l'opération sur une autre machine:&lt;br /&gt;
{{Boite Code|shell| # Xen runtime dependencies:&lt;br /&gt;
 apt-get install iproute libncurses5 python python-central zlib1g bridge-utils libssl0.9.7 \&lt;br /&gt;
         libsdl1.2debian libjpeg62&lt;br /&gt;
 &lt;br /&gt;
 # Development tools:&lt;br /&gt;
 apt-get install binutils gcc bcc make patch bzip2 file gettext &lt;br /&gt;
 &lt;br /&gt;
 # Development Libraries:&lt;br /&gt;
 apt-get install zlib1g-dev python-dev libc6-dev libsdl1.2-dev libvncserver-dev libjpeg62-dev \&lt;br /&gt;
         libncurses5-dev libssl-dev libxml2-dev libcurl3-dev x-dev&lt;br /&gt;
 &lt;br /&gt;
 # To build documentation (optional):&lt;br /&gt;
 apt-get install tetex-bin tetex-base tetex-extra transfig gs-common graphviz&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Récupération des sources:&lt;br /&gt;
{{Boite Code|shell| # Get the sources&lt;br /&gt;
 mkdir /usr/src/xen&lt;br /&gt;
 cd /usr/src/xen&lt;br /&gt;
 wget http://bits.xensource.com/oss-xen/release/3.1.0/src.tgz/xen-3.1.0-src.tgz&lt;br /&gt;
 tar xzf xen-3.1.0-src.tgz&lt;br /&gt;
 cd xen-3.1.0-src&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu'a compiler!&lt;br /&gt;
&amp;lt;br /&amp;gt;Le paquet distribué par [http://xensource.com/download/index_oss.html XenSource] est le résultat de la commande {{Commande|make dist}}. Le {{Fichier|Makefile}} reconnait l'architecture de la machine hôte et inclut les modules par défaut (voir {{Fichier|Config.mk}} pour plus de détails).&lt;br /&gt;
&amp;lt;br /&amp;gt;Nous allons simplement confirmer l'architecture sur la ligne de commande et ajouter les modules qui nous intéressent:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 # Just compile!&lt;br /&gt;
 make dist XEN_TARGET_ARCH=x86_32 XEN_TARGET_X86_PAE=y LIBXENAPI_BINDINGS=y XENFB_TOOLS=y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
C'est le momment de prendre un petit café, voir plus, en fonction de rapidité de votre système...&lt;br /&gt;
&lt;br /&gt;
Création du ''tarball'' binaire, similaire à celui distribué par [http://xensource.com/download/index_oss.html XenSource]:&lt;br /&gt;
{{Boite Code|shell| # Package the distribution&lt;br /&gt;
 tar czf xen-3.1.0-install-x86_32p-custom.tgz dist}}&lt;br /&gt;
&lt;br /&gt;
== VNC et souris ==&lt;br /&gt;
La gestion de la souris est problématique avec Xen/VNC: le curseur local et celui de la machine virtuelle se désynchronisent!&lt;br /&gt;
&lt;br /&gt;
Pour les machines para-virtualisées sous Linux, ce n'est pas un réel problème, étant donné que nous pouvons utiliser le serveur VNC de la distribution Linux qui gère la souris sans problème. En cas de nécessité, le plus simple est de supprimer l'accélération:&lt;br /&gt;
{{Boite Code|shell| xset m 1/1}}&lt;br /&gt;
&lt;br /&gt;
Pour les HVM, et donc essentiellement Windows, il y a une solution simple: utiliser le pilote ''tablet'' qui est supporté par défaut sous Windows. Il suffira de spécifier dans le fichier de configuration Xen de la HVM:&lt;br /&gt;
{{Boite Fichier|/etc/xen/&amp;lt;...&amp;gt;.hvm|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 usbdevice='tablet'&lt;br /&gt;
 ...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Debian et pygrub ==&lt;br /&gt;
Par défaut, [http://xen-tools.org/software/xen-tools/ xen-tools] va utiliser le noyau de ''Dom0'' pour les machines virtuelles créées.&lt;br /&gt;
&amp;lt;br /&amp;gt;Si on désire garder un indépendance entre les machines virtuelles, on peux utiliser ''pygrub'' pour démarrer les machines virtuelles.&lt;br /&gt;
&lt;br /&gt;
{{Boite Code|shell DomU|&lt;br /&gt;
 # Install grub and udev&lt;br /&gt;
 apt-get install grub udev&lt;br /&gt;
 # fake device mapping for grub&lt;br /&gt;
 mkdir /boot/grub&lt;br /&gt;
 echo &amp;quot;(hd0)   /dev/sda&amp;quot; &amp;gt; /boot/grub/device.map&lt;br /&gt;
 # create gub configuration files&lt;br /&gt;
 grub-install /dev/sda1&lt;br /&gt;
 # Install teh Debian kernel&lt;br /&gt;
 apt-get install linux-image-xen-686&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A noter que {{Commande|grub-install}} se termine en erreur:&lt;br /&gt;
 Searching for GRUB installation directory ... found: /boot/grub&lt;br /&gt;
 The file /boot/grub/stage1 not read correctly.&lt;br /&gt;
mais ce n'est pas un problème.&lt;br /&gt;
&lt;br /&gt;
Modifier ensuite le fichier de configuration de la machine virtuelle&lt;br /&gt;
{{Boite Fichier|/etc/xen/&amp;lt;...&amp;gt;.hvm|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 # kernel      = '/boot/vmlinuz-2.6.18-xen'&lt;br /&gt;
 bootloader=&amp;quot;/usr/bin/pygrub&amp;quot;&lt;br /&gt;
 ...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Adresse MAC ==&lt;br /&gt;
Il est plus que conseillé de spécifier l'adresse MAC dans le fichier de configuration de la machine virtuelle. Par défaut Xen génère une adresse aléatoire, ce qui peux avoir des conséquences pour la machine virtuelle -- Debian assigne une nouvelle interface chaque fois qu'il rencontre une nouvelle adresse MAC lorsque {{deb|udev}} est installé! &lt;br /&gt;
&amp;lt;br /&amp;gt;Si cela se produit, on peut effacer les entrées inutiles et retrouver l'adresse assignée pas Xen dans {{Fichier|/etc/udev/rules.d/z25_persistent-net.rules}}.&lt;br /&gt;
&lt;br /&gt;
== Changement de CD-Rom ==&lt;br /&gt;
Pour pouvoir changer de media CD ou DVD durant une installation ou durant le fonctionnement classic il est ncéessaire d'utiliser les commandes xm et xenstore-read/write.&lt;br /&gt;
&lt;br /&gt;
Lister les devices d'un domU nommé sles10&lt;br /&gt;
 xm block-list sles10&lt;br /&gt;
 Vdev  BE handle state evt-ch ring-ref BE-path&lt;br /&gt;
 768    0    0     1      -1     -1    /local/domain/0/backend/vbd/84/768&lt;br /&gt;
 5632    0    0     1      -1     -1    /local/domain/0/backend/vbd/84/5632&lt;br /&gt;
c'est quasiment tous le temps le device avec un ID élevé qui est le lecteur amovible CD/DVD&lt;br /&gt;
&lt;br /&gt;
Regarder vers quel ISO le lecteur virtuel pointe&lt;br /&gt;
 xenstore-read  /local/domain/0/backend/vbd/84/5632/params&lt;br /&gt;
 /home/domu/iso/SuSE/SLES-10-x86-DVD1.iso&lt;br /&gt;
&lt;br /&gt;
Pour changer de media il faut utiliser la commande suivante&lt;br /&gt;
 xenstore-write /local/domain/0/backend/vbd/84/5632/params /full/path/le-nouvel-iso.iso&lt;br /&gt;
&lt;br /&gt;
== Bridging ==&lt;br /&gt;
Si on ne désire pas utiliser le bridge Xen (efficace mais complexe), on peut simplement modifier le fichier de configuration:&lt;br /&gt;
{{Boite Code|shell| perl -pi -e 's@^\(network-script\ network-bridge\)$@\(network-script network-dummy\)@' \&lt;br /&gt;
      /etc/xen/xend-config.sxp}}&lt;br /&gt;
&lt;br /&gt;
Et créér le bridge dans {{Fichier|/etc/network/interfaces}}&lt;br /&gt;
{{Boite Fichier|/etc/network/interfaces|&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
    bridge_fd 0&lt;br /&gt;
    bridge_maxwait 0&lt;br /&gt;
    bridge_helo 0&lt;br /&gt;
    bridge_stp off&lt;br /&gt;
    bridge_ports eth0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
&lt;br /&gt;
* [http://www.xensource.com XenSource]&lt;br /&gt;
* [http://www.howtoforge.com/debian_etch_xen_3.1 The Perfect Xen 3.1.0 Setup For Debian Etch]&lt;br /&gt;
* [http://www.xensource.com/files/xen_install_windows.pdf How to Install Windows on Xen 3.0]&lt;br /&gt;
* [http://lists.xensource.com/archives/html/xen-users/2007-05/msg00652.html Xen 3.1.0 on Debian etch amd64]&lt;br /&gt;
* [http://et.redhat.com/~kraxel/xen/suse-guest.html Install SUSE as Xen guest]&lt;br /&gt;
== Diverses aides ==&lt;br /&gt;
* FreeBSD : http://www.yuanjue.net/xen/howto.html&lt;br /&gt;
* Solaris : http://www.opensolaris.org/os/community/xen/How-To-8-15-06/install/AugDomUs/;jsessionid=9E9E779D80E585F4F2559E2E9E598150&lt;br /&gt;
* SuSE : http://kb.xensource.com/entry!default.jspa?categoryID=18&amp;amp;externalID=311&amp;amp;fromSearchPage=true&lt;br /&gt;
* LVM (snapshot) : http://www.hccfl.edu/pollock/AUnix1/LVM.htm&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1764</id>
		<title>Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1764"/>
				<updated>2007-07-05T21:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Diverses aides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Xen sur une Debian Etch / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Nous utilisons [http://linux-vserver.org/ Linux VServers] sans problèmes depuis un certain temps déjà, mais dans certains cas il est intéressant de faire un pas plus en avant en terme de para-virtualisation (plus grande liberté au niveau de la couche réseau, ou des noyeaux utilisés) ou tout simplement dans la cas de la virtualisation pure (OS propriétaires).&lt;br /&gt;
&lt;br /&gt;
Ce petit article n'est pas un n-ième howto sur la question, mais rassemble plutôt quelques notes prises lors de mes installations et tests.&lt;br /&gt;
&lt;br /&gt;
Environnement:&lt;br /&gt;
* Materiel: [http://supermicro.com/products/motherboard/Xeon1333/5000V/X7DVL-E.cfm SuperMicro X7DVL-E] Bi-Xeon Quad core (E5310), 12 GB Memoire, 2 TB Disque &lt;br /&gt;
* OS hôte (Domain 0): Debian Etch&lt;br /&gt;
* Xen Open Source: version 3.1&lt;br /&gt;
&lt;br /&gt;
= Debian Etch (DomO) =&lt;br /&gt;
&lt;br /&gt;
== Généralités == &lt;br /&gt;
Nous démarrerons su base d'une Debian Etch installée et à jour.&lt;br /&gt;
&lt;br /&gt;
Nous désirons tourner des machines virtuelles 32 bits. Le support des machines virtuelles 32 bits sur un hôte 64 bits dans Xen est assez récent (32-on-64 PV guest support), et pour des raisons de stabilité, nous installons donc une version i386 de Debian.&lt;br /&gt;
&lt;br /&gt;
== Partitionnement ==&lt;br /&gt;
Nous disposons de quatre disque de 500GB. Trois sont configurés en RAID5, le dernier reste comme ''Hot Spare''. Le raid étant géré par la carte ''3Ware'', un seul device est visible pour Linux, sa taille est d'approximativement 1 TB.&lt;br /&gt;
&lt;br /&gt;
Nous mettons toutes les partitions standard dans un ''Volume Group'', et nous réservons un autre pour accueillir les machines virtuelles Xen. De cette manière nous séparons completement le système hôte des machines virtuelles. Ce dernier ''Volume Group'' contiendra un ''file system'' pour les images disques ''sur fichier'' et des ''logical volumes'' additionnels pour les acces ''direct''.&lt;br /&gt;
&lt;br /&gt;
Pour le ''Volume Group'' hôte, je reste un adepte des ''filesystems'' séparés!&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Physical device         !! Taille      !! Volume Group  !!colspan=&amp;quot;2&amp;quot;| LVM     !! Partition &lt;br /&gt;
|-&lt;br /&gt;
| /dev/sda1               || 512 MB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || /boot     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;|/dev/sda2    ||rowspan=&amp;quot;6&amp;quot;| 100 GB  ||rowspan=&amp;quot;6&amp;quot;| vgDom0 || root    || 1 GB  || /     &lt;br /&gt;
|-&lt;br /&gt;
| swap    || 12 GB   || swap     &lt;br /&gt;
|-&lt;br /&gt;
| usr    || 5 GB   || /usr     &lt;br /&gt;
|-&lt;br /&gt;
| var    || 3 GB   || /var  &lt;br /&gt;
|-&lt;br /&gt;
| home    || 20 GB   || /home     &lt;br /&gt;
|-&lt;br /&gt;
| -    || 50 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|/dev/sda3    ||rowspan=&amp;quot;2&amp;quot;| 375 GB  ||rowspan=&amp;quot;2&amp;quot;| vgDomU || domu    || 100 GB  || /home/domu     &lt;br /&gt;
|-&lt;br /&gt;
| -     || 275 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
| -               || 500 GB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || non-alloué     &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
En dehors d'un install de base, nous installerons les packages suivants&lt;br /&gt;
&lt;br /&gt;
=== Packages utiles ===&lt;br /&gt;
Ces packages ne sont pas a proprement parler obligatoire, mais bon...&lt;br /&gt;
 {{Deb|openssh-server}}&lt;br /&gt;
 {{Deb|screen}}&lt;br /&gt;
 {{Deb|ntp}}&lt;br /&gt;
 {{Deb|less}}&lt;br /&gt;
&lt;br /&gt;
=== Checkinstall ===&lt;br /&gt;
Nous utilisons la dernière version de Xen, qui n'est pas disponible dans Etch.&lt;br /&gt;
&amp;lt;br /&amp;gt;Afin d'éviter d'installer des fichiers non controllés par ''dpkg'', nous utiliserons aussi [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] pour empaqueter Xen.&lt;br /&gt;
&lt;br /&gt;
{{Deb|checkinstall}} est actuellement dans Debian Testing, mais nous le compilerons a partir des sources pour éviter un mélange de distribution.&lt;br /&gt;
&lt;br /&gt;
Le version ''Debian'' de [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] est encore assez récente et n'est pas parfaite, mais fonctionne suffisemment bien pour nos besoins.&lt;br /&gt;
{{Boite Code|shell| # Packages pré-requis:&lt;br /&gt;
 apt-get install dpkg-dev gcc file gettext libc6-dev&lt;br /&gt;
 # Récupération des sources&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 mkdir checkinstall&lt;br /&gt;
 cd checkinstall&lt;br /&gt;
 wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.1.tgz&lt;br /&gt;
 tar xzf checkinstall-1.6.1.tgz &lt;br /&gt;
 cd checkinstall-1.6.1&lt;br /&gt;
 # Patch pour les fichiers de configuration&lt;br /&gt;
 perl -pi -e 's@find \$BUILD_DIR/etc 2@find \$BUILD_DIR/etc -name init.d -prune -o -type f -print 2@' \&lt;br /&gt;
      checkinstall&lt;br /&gt;
 # Compilation et installation 'brute'&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 # Génération et installation du paquet Debian&lt;br /&gt;
 checkinstall -D&lt;br /&gt;
 dpkg -i checkinstall_1.6.1-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Xen (Dom0) =&lt;br /&gt;
== Dépendences Xen ==&lt;br /&gt;
Xen nécessite les paquest suivants:&lt;br /&gt;
 {{Deb|iproute}} {{Deb|libc6}} {{Deb|libncurses5}} {{Deb|python}} {{Deb|python-central}} {{Deb|udev}} {{Deb|zlib1g}}&lt;br /&gt;
 {{Deb|libc6-xen}}&lt;br /&gt;
 {{Deb|bridge-utils}} {{Deb|libssl0.9.7}} {{Deb|libsdl1.2debian}}&lt;br /&gt;
&lt;br /&gt;
Les paquets suivant sont nécessaires si Xen a accès au ''Frame Buffer'' (pas testé, car peu d'intérêt pour un serveur)&lt;br /&gt;
 {{Deb|libsdl1.2-dev}} {{Deb|libvncserver-dev}}&lt;br /&gt;
&lt;br /&gt;
== Noyeau ==&lt;br /&gt;
Afin de bénéficier des mises-à-jour de sécurité Debian, nous utilisons le noyeau para-virtualisé Debian au lieu du noyeau ''kernel.org'' distribué par Xen:&lt;br /&gt;
 {{Deb|linux-image-2.6.18-4-xen-686}}&lt;br /&gt;
&lt;br /&gt;
{{Boite Attention| Il semble toutefois que le noyeau Debian pose des problèmes -- de manière aléatoire, on a:&lt;br /&gt;
 BUG: unable to handle kernel paging request at virtual address c007c72c&lt;br /&gt;
au boot d'une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
Nous utiliserons donc le noyeau ''kernel.org'' distribué par Xen pour l'instant&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Hyperviseur ==&lt;br /&gt;
L'hyperviseur est téléchargé de [http://xensource.com/download/index_oss.html XenSource] (version ''tarball'' / ''i386 PAE'')&lt;br /&gt;
{{Boite Code|shell| mkdir /usr/src/xen&lt;br /&gt;
 cd /usr/src/xen&lt;br /&gt;
 wget http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
 tar xzf xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Adaptations Debian:&lt;br /&gt;
{{Boite Code|shell| cd dist&lt;br /&gt;
 chown -R root:root .&lt;br /&gt;
 cd install/etc&lt;br /&gt;
 mv sysconfig default&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Création du script network-dummy, si on ne désire pas utiliser le bridge Xen (voir note ci-dessous):&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen/dist/install/etc/xen&lt;br /&gt;
 echo -e '#!/bin/sh\n\nexit 0' &amp;gt; scripts/network-dummy&lt;br /&gt;
 chmod 755 scripts/network-dummy&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Scripts de startup:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 cd /usr/src/xen/dist/install/etc&lt;br /&gt;
 perl -pi -e 's@LOCKFILE=/var/lock/subsys/xendomains@LOCKFILE=/var/lock/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@XENDOM_CONFIG=/etc/sysconfig/xendomains@XENDOM_CONFIG=/etc/default/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains&lt;br /&gt;
 cd /usr/src/xen/dist&lt;br /&gt;
 cat &amp;gt;postinstall-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 update-rc.d xend defaults 20 21 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 update-rc.d xendomains defaults 21 20 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;configure&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     depmod -a -F /boot/System.map-2.6.18-xen 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
     update-initramfs -c -t -k 2.6.18-xen&lt;br /&gt;
   fi&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;preremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     update-initramfs -d -k 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
   fi&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;postremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   update-rc.d xend remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   update-rc.d xendomains remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod a+x postinstall-pak postremove-pak preremove-pak&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Note''': Pour les aventuriers qui utilisent cet article pour installer la version 64 bits de Xen, il faut ruser pour avoir les librairies au bon endroit... (Distribution Xen {{Fichier|xen-3.1.0-install-x86_64.tgz}})&lt;br /&gt;
{{Boite Code|shell -- Uniquement pour la distribution 64 bits|&lt;br /&gt;
 # Uniquement pour la version 64 bits de l'hyperviseur! &lt;br /&gt;
 cd /usr/src/xen/dist/install/usr&lt;br /&gt;
 mv -f lib64/xen/bin lib/xen/&lt;br /&gt;
 rm -rf lib64/xen&lt;br /&gt;
 mv -f lib64/* lib/*&lt;br /&gt;
 rm -rf lib64&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Si nous utilisons les noyeaux Debian; on peux nettoyer le noyeau distribué dans le paquet Xen:&lt;br /&gt;
{{Boite Code|shell (Optionel)| cd  /usr/src/xen/dist/install&lt;br /&gt;
 rm -rf lib&lt;br /&gt;
 rm -f boot/vmlinux-syms-2.6.18-xen boot/vmlinuz-2.6.18-xen boot/vmlinuz-2.6-xen \&lt;br /&gt;
       boot/System.map-2.6.18-xen boot/config-2.6.18-xen&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Préparation du paquet avec {{Commande|checkinstall}}&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen&lt;br /&gt;
 mv dist xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 cd  xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 checkinstall -D ./install.sh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Installer le package:&lt;br /&gt;
{{Boite Code|shell| dpkg -i xen-hypervisor-and-tools-3.1.0-1-i386-pae_3.1.0-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Rebooter!&lt;br /&gt;
&lt;br /&gt;
= Xen (DomU) =&lt;br /&gt;
== Xen-tools ==&lt;br /&gt;
Les utilitaires [http://xen-tools.org/software/xen-tools/ xen-tools] permettent de créer des machines (para-)virtuelles (''DomU'') très facilement.&lt;br /&gt;
&amp;lt;br /&amp;gt;Il supporte la création de machines virtuelles Debian, Ubuntu, CentOS et Fedora. Il permet aussi de copier des machines virtuelles, etc.&lt;br /&gt;
&lt;br /&gt;
[http://xen-tools.org/software/xen-tools/ Xen-tools]est disponible dans Debian Etch, mais nous prendrons le dépot du développeur [http://apt.steve.org.uk/ Steve Kemp] qui est plus récent:&lt;br /&gt;
 {{Boite Fichier|/etc/apt/sources.list|&lt;br /&gt;
 #&lt;br /&gt;
 #  Steve Kemp's repository:  Etch&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
 deb-src http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Ajout de la clé:&lt;br /&gt;
{{Boite Code|shell| wget -q -O - http://apt.steve.org.uk/apt-key.gpg &amp;amp;#124; apt-key add -}}&lt;br /&gt;
&lt;br /&gt;
On aura aussi besoin de ''debootstrap''&lt;br /&gt;
{{Boite Code|shell| apt-get install debootstrap xen-tools}}&lt;br /&gt;
&lt;br /&gt;
Vérifier le fichier {{Fichier|/etc/xen-tools/xen-tools.conf}}; en mettant les ''bons'' paramètres par défaut, la création d'une machine virtuelle s'en trouve grandement simplifiée.&lt;br /&gt;
&amp;lt;br /&amp;gt;Le fichier de configuration est bien documenté et ne devrait pas poser de problèmes.&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (para-virtualisation) ==&lt;br /&gt;
Pour créer une machine virtuelle avec les paramètres par défaut:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 xen-create-image --hostname=&amp;lt;FQDN&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de cette machine virtuelle est {{Fichier|/etc/xen/&amp;lt;FQDN&amp;gt;.cfg}} et elle se démarre:&lt;br /&gt;
{{Boite Code|shell| xm create /etc/xen/&amp;lt;FQDN&amp;gt;.cfg &amp;amp;&amp;amp; xm console &amp;lt;FQDN&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Pour démarrer une machine virtuelle au boot:&lt;br /&gt;
{{Boite Code|shell| ln -s /etc/xen/&amp;lt;FQDN&amp;gt;.cfg /etc/xen/auto}}&lt;br /&gt;
Elle sera par la même occasion ''sauvée'' au shutdown.&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (HVM) ==&lt;br /&gt;
Le mode HVM permet de tourner des OS ''non para-virtualisés''.&lt;br /&gt;
&lt;br /&gt;
A titre d'exemple j'ai installé Windows XP Home Edition sur un ''logical volume''.&lt;br /&gt;
&amp;lt;br /&amp;gt;Nous avons une image du CD-ROM: {{Fichier|/home/vservers/XPhome.iso}}&lt;br /&gt;
&lt;br /&gt;
Création du ''logical volume'':&lt;br /&gt;
{{Boite Code|shell| lvcreate –L 10000 –n xphome vgXen}}&lt;br /&gt;
&lt;br /&gt;
Création du fichier de configuration {{Fichier|/etc/xen/xphome.hvm}} à partir du template {{Fichier|/etc/xen/xmexample.hvm}}.&lt;br /&gt;
&amp;lt;br /&amp;gt;Les seules choses à changer sont:&lt;br /&gt;
* Le nom de la machine virtuelle&lt;br /&gt;
* La mémoire à allouer&lt;br /&gt;
* Le ''mapping'' du dique et de l'image CD-ROM&lt;br /&gt;
* L'ordre de boot (C, D)&lt;br /&gt;
* L'accès au serveur VNC par une machine distante&lt;br /&gt;
* Le ''mapping'' clavier &lt;br /&gt;
{{Boite Code|diff xmexample.hvm xphome.hvm|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 28c28&lt;br /&gt;
 &amp;lt; memory = 128&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; memory = 512&lt;br /&gt;
 35c35&lt;br /&gt;
 &amp;lt; name = &amp;quot;ExampleHVMDomain&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; name = &amp;quot;xphome&amp;quot;&lt;br /&gt;
 64c64&lt;br /&gt;
 &amp;lt; vif = [ 'type=ioemu, bridge=xenbr0' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vif = [ 'type=ioemu, mac=00:16:3e:00:00:94, bridge=xenbr0' ]&lt;br /&gt;
 74c74&lt;br /&gt;
 &amp;lt; disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; disk = [ 'phy:/dev/vgXen/xphome,ioemu:hda,w', 'file:/home/vservers/XPhome.iso,hdc:cdrom,r' ]&lt;br /&gt;
 121a122&lt;br /&gt;
 &amp;gt; boot=&amp;quot;cd&amp;quot;&lt;br /&gt;
 138c139&lt;br /&gt;
 &amp;lt; #vnclisten=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vnclisten=&amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
 210c211&lt;br /&gt;
 &amp;lt; #keymap='ja'&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; keymap='fr-be'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de créer la machine virtuelle:&lt;br /&gt;
{{Boite Code|shell| xm create /etc/xen/xphome.hvm}}&lt;br /&gt;
&lt;br /&gt;
Et, a partir d'une machine distante:&lt;br /&gt;
{{Boite Code|shell| xvncviewer &amp;lt;Dom0&amp;gt;}}&lt;br /&gt;
(C'est bien le domaine 0 qu'il faut adresser et pas la machine virtuelle!)&lt;br /&gt;
&lt;br /&gt;
L'installation de Windows se passe sans problème via ''VNC''.&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Bridging ==&lt;br /&gt;
Si on ne désire pas utiliser le bridge Xen (efficace mais complexe), on peut simplement modifier le fichier de configuration:&lt;br /&gt;
{{Boite Code|shell| perl -pi -e 's@^\(network-script\ network-bridge\)$@\(network-script network-dummy\)@' \&lt;br /&gt;
      /etc/xen/xend-config.sxp}}&lt;br /&gt;
&lt;br /&gt;
Et créér le bridge dans {{Fichier|/etc/network/interfaces}}&lt;br /&gt;
{{Boite Fichier|/etc/network/interfaces|&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
    bridge_fd 0&lt;br /&gt;
    bridge_maxwait 0&lt;br /&gt;
    bridge_helo 0&lt;br /&gt;
    bridge_stp off&lt;br /&gt;
    bridge_ports eth0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
&lt;br /&gt;
* [http://www.xensource.com XenSource]&lt;br /&gt;
* [http://www.howtoforge.com/debian_etch_xen_3.1 The Perfect Xen 3.1.0 Setup For Debian Etch]&lt;br /&gt;
* [http://www.xensource.com/files/xen_install_windows.pdf How to Install Windows on Xen 3.0]&lt;br /&gt;
* [http://lists.xensource.com/archives/html/xen-users/2007-05/msg00652.html Xen 3.1.0 on Debian etch amd64]&lt;br /&gt;
* [http://et.redhat.com/~kraxel/xen/suse-guest.html Install SUSE as Xen guest]&lt;br /&gt;
== Diverses aides ==&lt;br /&gt;
* FreeBSD : http://www.yuanjue.net/xen/howto.html&lt;br /&gt;
* Solaris : http://www.opensolaris.org/os/community/xen/How-To-8-15-06/install/AugDomUs/;jsessionid=9E9E779D80E585F4F2559E2E9E598150&lt;br /&gt;
* SuSE : http://kb.xensource.com/entry!default.jspa?categoryID=18&amp;amp;externalID=311&amp;amp;fromSearchPage=true&lt;br /&gt;
* LVM (snapshot) : http://www.hccfl.edu/pollock/AUnix1/LVM.htm&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1763</id>
		<title>Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1763"/>
				<updated>2007-07-05T20:46:55Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Diverses aides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Xen sur une Debian Etch / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Nous utilisons [http://linux-vserver.org/ Linux VServers] sans problèmes depuis un certain temps déjà, mais dans certains cas il est intéressant de faire un pas plus en avant en terme de para-virtualisation (plus grande liberté au niveau de la couche réseau, ou des noyeaux utilisés) ou tout simplement dans la cas de la virtualisation pure (OS propriétaires).&lt;br /&gt;
&lt;br /&gt;
Ce petit article n'est pas un n-ième howto sur la question, mais rassemble plutôt quelques notes prises lors de mes installations et tests.&lt;br /&gt;
&lt;br /&gt;
Environnement:&lt;br /&gt;
* Materiel: [http://supermicro.com/products/motherboard/Xeon1333/5000V/X7DVL-E.cfm SuperMicro X7DVL-E] Bi-Xeon Quad core (E5310), 12 GB Memoire, 2 TB Disque &lt;br /&gt;
* OS hôte (Domain 0): Debian Etch&lt;br /&gt;
* Xen Open Source: version 3.1&lt;br /&gt;
&lt;br /&gt;
= Debian Etch (DomO) =&lt;br /&gt;
&lt;br /&gt;
== Généralités == &lt;br /&gt;
Nous démarrerons su base d'une Debian Etch installée et à jour.&lt;br /&gt;
&lt;br /&gt;
Nous désirons tourner des machines virtuelles 32 bits. Le support des machines virtuelles 32 bits sur un hôte 64 bits dans Xen est assez récent (32-on-64 PV guest support), et pour des raisons de stabilité, nous installons donc une version i386 de Debian.&lt;br /&gt;
&lt;br /&gt;
== Partitionnement ==&lt;br /&gt;
Nous disposons de quatre disque de 500GB. Trois sont configurés en RAID5, le dernier reste comme ''Hot Spare''. Le raid étant géré par la carte ''3Ware'', un seul device est visible pour Linux, sa taille est d'approximativement 1 TB.&lt;br /&gt;
&lt;br /&gt;
Nous mettons toutes les partitions standard dans un ''Volume Group'', et nous réservons un autre pour accueillir les machines virtuelles Xen. De cette manière nous séparons completement le système hôte des machines virtuelles. Ce dernier ''Volume Group'' contiendra un ''file system'' pour les images disques ''sur fichier'' et des ''logical volumes'' additionnels pour les acces ''direct''.&lt;br /&gt;
&lt;br /&gt;
Pour le ''Volume Group'' hôte, je reste un adepte des ''filesystems'' séparés!&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Physical device         !! Taille      !! Volume Group  !!colspan=&amp;quot;2&amp;quot;| LVM     !! Partition &lt;br /&gt;
|-&lt;br /&gt;
| /dev/sda1               || 512 MB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || /boot     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;|/dev/sda2    ||rowspan=&amp;quot;6&amp;quot;| 100 GB  ||rowspan=&amp;quot;6&amp;quot;| vgDom0 || root    || 1 GB  || /     &lt;br /&gt;
|-&lt;br /&gt;
| swap    || 12 GB   || swap     &lt;br /&gt;
|-&lt;br /&gt;
| usr    || 5 GB   || /usr     &lt;br /&gt;
|-&lt;br /&gt;
| var    || 3 GB   || /var  &lt;br /&gt;
|-&lt;br /&gt;
| home    || 20 GB   || /home     &lt;br /&gt;
|-&lt;br /&gt;
| -    || 50 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|/dev/sda3    ||rowspan=&amp;quot;2&amp;quot;| 375 GB  ||rowspan=&amp;quot;2&amp;quot;| vgDomU || domu    || 100 GB  || /home/domu     &lt;br /&gt;
|-&lt;br /&gt;
| -     || 275 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
| -               || 500 GB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || non-alloué     &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
En dehors d'un install de base, nous installerons les packages suivants&lt;br /&gt;
&lt;br /&gt;
=== Packages utiles ===&lt;br /&gt;
Ces packages ne sont pas a proprement parler obligatoire, mais bon...&lt;br /&gt;
 {{Deb|openssh-server}}&lt;br /&gt;
 {{Deb|screen}}&lt;br /&gt;
 {{Deb|ntp}}&lt;br /&gt;
 {{Deb|less}}&lt;br /&gt;
&lt;br /&gt;
=== Checkinstall ===&lt;br /&gt;
Nous utilisons la dernière version de Xen, qui n'est pas disponible dans Etch.&lt;br /&gt;
&amp;lt;br /&amp;gt;Afin d'éviter d'installer des fichiers non controllés par ''dpkg'', nous utiliserons aussi [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] pour empaqueter Xen.&lt;br /&gt;
&lt;br /&gt;
{{Deb|checkinstall}} est actuellement dans Debian Testing, mais nous le compilerons a partir des sources pour éviter un mélange de distribution.&lt;br /&gt;
&lt;br /&gt;
Le version ''Debian'' de [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] est encore assez récente et n'est pas parfaite, mais fonctionne suffisemment bien pour nos besoins.&lt;br /&gt;
{{Boite Code|shell| # Packages pré-requis:&lt;br /&gt;
 apt-get install dpkg-dev gcc file gettext libc6-dev&lt;br /&gt;
 # Récupération des sources&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 mkdir checkinstall&lt;br /&gt;
 cd checkinstall&lt;br /&gt;
 wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.1.tgz&lt;br /&gt;
 tar xzf checkinstall-1.6.1.tgz &lt;br /&gt;
 cd checkinstall-1.6.1&lt;br /&gt;
 # Patch pour les fichiers de configuration&lt;br /&gt;
 perl -pi -e 's@find \$BUILD_DIR/etc 2@find \$BUILD_DIR/etc -name init.d -prune -o -type f -print 2@' \&lt;br /&gt;
      checkinstall&lt;br /&gt;
 # Compilation et installation 'brute'&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 # Génération et installation du paquet Debian&lt;br /&gt;
 checkinstall -D&lt;br /&gt;
 dpkg -i checkinstall_1.6.1-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Xen (Dom0) =&lt;br /&gt;
== Dépendences Xen ==&lt;br /&gt;
Xen nécessite les paquest suivants:&lt;br /&gt;
 {{Deb|iproute}} {{Deb|libc6}} {{Deb|libncurses5}} {{Deb|python}} {{Deb|python-central}} {{Deb|udev}} {{Deb|zlib1g}}&lt;br /&gt;
 {{Deb|libc6-xen}}&lt;br /&gt;
 {{Deb|bridge-utils}} {{Deb|libssl0.9.7}} {{Deb|libsdl1.2debian}}&lt;br /&gt;
&lt;br /&gt;
Les paquets suivant sont nécessaires si Xen a accès au ''Frame Buffer'' (pas testé, car peu d'intérêt pour un serveur)&lt;br /&gt;
 {{Deb|libsdl1.2-dev}} {{Deb|libvncserver-dev}}&lt;br /&gt;
&lt;br /&gt;
== Noyeau ==&lt;br /&gt;
Afin de bénéficier des mises-à-jour de sécurité Debian, nous utilisons le noyeau para-virtualisé Debian au lieu du noyeau ''kernel.org'' distribué par Xen:&lt;br /&gt;
 {{Deb|linux-image-2.6.18-4-xen-686}}&lt;br /&gt;
&lt;br /&gt;
{{Boite Attention| Il semble toutefois que le noyeau Debian pose des problèmes -- de manière aléatoire, on a:&lt;br /&gt;
 BUG: unable to handle kernel paging request at virtual address c007c72c&lt;br /&gt;
au boot d'une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
Nous utiliserons donc le noyeau ''kernel.org'' distribué par Xen pour l'instant&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Hyperviseur ==&lt;br /&gt;
L'hyperviseur est téléchargé de [http://xensource.com/download/index_oss.html XenSource] (version ''tarball'' / ''i386 PAE'')&lt;br /&gt;
{{Boite Code|shell| mkdir /usr/src/xen&lt;br /&gt;
 cd /usr/src/xen&lt;br /&gt;
 wget http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
 tar xzf xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Adaptations Debian:&lt;br /&gt;
{{Boite Code|shell| cd dist&lt;br /&gt;
 chown -R root:root .&lt;br /&gt;
 cd install/etc&lt;br /&gt;
 mv sysconfig default&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Création du script network-dummy, si on ne désire pas utiliser le bridge Xen (voir note ci-dessous):&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen/dist/install/etc/xen&lt;br /&gt;
 echo -e '#!/bin/sh\n\nexit 0' &amp;gt; scripts/network-dummy&lt;br /&gt;
 chmod 755 scripts/network-dummy&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Scripts de startup:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 cd /usr/src/xen/dist/install/etc&lt;br /&gt;
 perl -pi -e 's@LOCKFILE=/var/lock/subsys/xendomains@LOCKFILE=/var/lock/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@XENDOM_CONFIG=/etc/sysconfig/xendomains@XENDOM_CONFIG=/etc/default/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains&lt;br /&gt;
 cd /usr/src/xen/dist&lt;br /&gt;
 cat &amp;gt;postinstall-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 update-rc.d xend defaults 20 21 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 update-rc.d xendomains defaults 21 20 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;configure&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     depmod -a -F /boot/System.map-2.6.18-xen 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
     update-initramfs -c -t -k 2.6.18-xen&lt;br /&gt;
   fi&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;preremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     update-initramfs -d -k 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
   fi&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;postremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   update-rc.d xend remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   update-rc.d xendomains remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod a+x postinstall-pak postremove-pak preremove-pak&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Note''': Pour les aventuriers qui utilisent cet article pour installer la version 64 bits de Xen, il faut ruser pour avoir les librairies au bon endroit... (Distribution Xen {{Fichier|xen-3.1.0-install-x86_64.tgz}})&lt;br /&gt;
{{Boite Code|shell -- Uniquement pour la distribution 64 bits|&lt;br /&gt;
 # Uniquement pour la version 64 bits de l'hyperviseur! &lt;br /&gt;
 cd /usr/src/xen/dist/install/usr&lt;br /&gt;
 mv -f lib64/xen/bin lib/xen/&lt;br /&gt;
 rm -rf lib64/xen&lt;br /&gt;
 mv -f lib64/* lib/*&lt;br /&gt;
 rm -rf lib64&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Si nous utilisons les noyeaux Debian; on peux nettoyer le noyeau distribué dans le paquet Xen:&lt;br /&gt;
{{Boite Code|shell (Optionel)| cd  /usr/src/xen/dist/install&lt;br /&gt;
 rm -rf lib&lt;br /&gt;
 rm -f boot/vmlinux-syms-2.6.18-xen boot/vmlinuz-2.6.18-xen boot/vmlinuz-2.6-xen \&lt;br /&gt;
       boot/System.map-2.6.18-xen boot/config-2.6.18-xen&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Préparation du paquet avec {{Commande|checkinstall}}&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen&lt;br /&gt;
 mv dist xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 cd  xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 checkinstall -D ./install.sh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Installer le package:&lt;br /&gt;
{{Boite Code|shell| dpkg -i xen-hypervisor-and-tools-3.1.0-1-i386-pae_3.1.0-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Rebooter!&lt;br /&gt;
&lt;br /&gt;
= Xen (DomU) =&lt;br /&gt;
== Xen-tools ==&lt;br /&gt;
Les utilitaires [http://xen-tools.org/software/xen-tools/ xen-tools] permettent de créer des machines (para-)virtuelles (''DomU'') très facilement.&lt;br /&gt;
&amp;lt;br /&amp;gt;Il supporte la création de machines virtuelles Debian, Ubuntu, CentOS et Fedora. Il permet aussi de copier des machines virtuelles, etc.&lt;br /&gt;
&lt;br /&gt;
[http://xen-tools.org/software/xen-tools/ Xen-tools]est disponible dans Debian Etch, mais nous prendrons le dépot du développeur [http://apt.steve.org.uk/ Steve Kemp] qui est plus récent:&lt;br /&gt;
 {{Boite Fichier|/etc/apt/sources.list|&lt;br /&gt;
 #&lt;br /&gt;
 #  Steve Kemp's repository:  Etch&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
 deb-src http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Ajout de la clé:&lt;br /&gt;
{{Boite Code|shell| wget -q -O - http://apt.steve.org.uk/apt-key.gpg &amp;amp;#124; apt-key add -}}&lt;br /&gt;
&lt;br /&gt;
On aura aussi besoin de ''debootstrap''&lt;br /&gt;
{{Boite Code|shell| apt-get install debootstrap xen-tools}}&lt;br /&gt;
&lt;br /&gt;
Vérifier le fichier {{Fichier|/etc/xen-tools/xen-tools.conf}}; en mettant les ''bons'' paramètres par défaut, la création d'une machine virtuelle s'en trouve grandement simplifiée.&lt;br /&gt;
&amp;lt;br /&amp;gt;Le fichier de configuration est bien documenté et ne devrait pas poser de problèmes.&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (para-virtualisation) ==&lt;br /&gt;
Pour créer une machine virtuelle avec les paramètres par défaut:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 xen-create-image --hostname=&amp;lt;FQDN&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de cette machine virtuelle est {{Fichier|/etc/xen/&amp;lt;FQDN&amp;gt;.cfg}} et elle se démarre:&lt;br /&gt;
{{Boite Code|shell| xm create /etc/xen/&amp;lt;FQDN&amp;gt;.cfg &amp;amp;&amp;amp; xm console &amp;lt;FQDN&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Pour démarrer une machine virtuelle au boot:&lt;br /&gt;
{{Boite Code|shell| ln -s /etc/xen/&amp;lt;FQDN&amp;gt;.cfg /etc/xen/auto}}&lt;br /&gt;
Elle sera par la même occasion ''sauvée'' au shutdown.&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (HVM) ==&lt;br /&gt;
Le mode HVM permet de tourner des OS ''non para-virtualisés''.&lt;br /&gt;
&lt;br /&gt;
A titre d'exemple j'ai installé Windows XP Home Edition sur un ''logical volume''.&lt;br /&gt;
&amp;lt;br /&amp;gt;Nous avons une image du CD-ROM: {{Fichier|/home/vservers/XPhome.iso}}&lt;br /&gt;
&lt;br /&gt;
Création du ''logical volume'':&lt;br /&gt;
{{Boite Code|shell| lvcreate –L 10000 –n xphome vgXen}}&lt;br /&gt;
&lt;br /&gt;
Création du fichier de configuration {{Fichier|/etc/xen/xphome.hvm}} à partir du template {{Fichier|/etc/xen/xmexample.hvm}}.&lt;br /&gt;
&amp;lt;br /&amp;gt;Les seules choses à changer sont:&lt;br /&gt;
* Le nom de la machine virtuelle&lt;br /&gt;
* La mémoire à allouer&lt;br /&gt;
* Le ''mapping'' du dique et de l'image CD-ROM&lt;br /&gt;
* L'ordre de boot (C, D)&lt;br /&gt;
* L'accès au serveur VNC par une machine distante&lt;br /&gt;
* Le ''mapping'' clavier &lt;br /&gt;
{{Boite Code|diff xmexample.hvm xphome.hvm|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 28c28&lt;br /&gt;
 &amp;lt; memory = 128&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; memory = 512&lt;br /&gt;
 35c35&lt;br /&gt;
 &amp;lt; name = &amp;quot;ExampleHVMDomain&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; name = &amp;quot;xphome&amp;quot;&lt;br /&gt;
 64c64&lt;br /&gt;
 &amp;lt; vif = [ 'type=ioemu, bridge=xenbr0' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vif = [ 'type=ioemu, mac=00:16:3e:00:00:94, bridge=xenbr0' ]&lt;br /&gt;
 74c74&lt;br /&gt;
 &amp;lt; disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; disk = [ 'phy:/dev/vgXen/xphome,ioemu:hda,w', 'file:/home/vservers/XPhome.iso,hdc:cdrom,r' ]&lt;br /&gt;
 121a122&lt;br /&gt;
 &amp;gt; boot=&amp;quot;cd&amp;quot;&lt;br /&gt;
 138c139&lt;br /&gt;
 &amp;lt; #vnclisten=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vnclisten=&amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
 210c211&lt;br /&gt;
 &amp;lt; #keymap='ja'&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; keymap='fr-be'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de créer la machine virtuelle:&lt;br /&gt;
{{Boite Code|shell| xm create /etc/xen/xphome.hvm}}&lt;br /&gt;
&lt;br /&gt;
Et, a partir d'une machine distante:&lt;br /&gt;
{{Boite Code|shell| xvncviewer &amp;lt;Dom0&amp;gt;}}&lt;br /&gt;
(C'est bien le domaine 0 qu'il faut adresser et pas la machine virtuelle!)&lt;br /&gt;
&lt;br /&gt;
L'installation de Windows se passe sans problème via ''VNC''.&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Bridging ==&lt;br /&gt;
Si on ne désire pas utiliser le bridge Xen (efficace mais complexe), on peut simplement modifier le fichier de configuration:&lt;br /&gt;
{{Boite Code|shell| perl -pi -e 's@^\(network-script\ network-bridge\)$@\(network-script network-dummy\)@' \&lt;br /&gt;
      /etc/xen/xend-config.sxp}}&lt;br /&gt;
&lt;br /&gt;
Et créér le bridge dans {{Fichier|/etc/network/interfaces}}&lt;br /&gt;
{{Boite Fichier|/etc/network/interfaces|&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
    bridge_fd 0&lt;br /&gt;
    bridge_maxwait 0&lt;br /&gt;
    bridge_helo 0&lt;br /&gt;
    bridge_stp off&lt;br /&gt;
    bridge_ports eth0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
&lt;br /&gt;
* [http://www.xensource.com XenSource]&lt;br /&gt;
* [http://www.howtoforge.com/debian_etch_xen_3.1 The Perfect Xen 3.1.0 Setup For Debian Etch]&lt;br /&gt;
* [http://www.xensource.com/files/xen_install_windows.pdf How to Install Windows on Xen 3.0]&lt;br /&gt;
* [http://lists.xensource.com/archives/html/xen-users/2007-05/msg00652.html Xen 3.1.0 on Debian etch amd64]&lt;br /&gt;
* [http://et.redhat.com/~kraxel/xen/suse-guest.html Install SUSE as Xen guest]&lt;br /&gt;
== Diverses aides ==&lt;br /&gt;
* FreeBSD : http://www.yuanjue.net/xen/howto.html&lt;br /&gt;
* Solaris : http://www.opensolaris.org/os/community/xen/How-To-8-15-06/install/AugDomUs/;jsessionid=9E9E779D80E585F4F2559E2E9E598150&lt;br /&gt;
* SuSE : http://kb.xensource.com/entry!default.jspa?categoryID=18&amp;amp;externalID=311&amp;amp;fromSearchPage=true&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1762</id>
		<title>Xen</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Xen&amp;diff=1762"/>
				<updated>2007-07-05T15:59:24Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Liens */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Xen sur une Debian Etch / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Nous utilisons [http://linux-vserver.org/ Linux VServers] sans problèmes depuis un certain temps déjà, mais dans certains cas il est intéressant de faire un pas plus en avant en terme de para-virtualisation (plus grande liberté au niveau de la couche réseau, ou des noyeaux utilisés) ou tout simplement dans la cas de la virtualisation pure (OS propriétaires).&lt;br /&gt;
&lt;br /&gt;
Ce petit article n'est pas un n-ième howto sur la question, mais rassemble plutôt quelques notes prises lors de mes installations et tests.&lt;br /&gt;
&lt;br /&gt;
Environnement:&lt;br /&gt;
* Materiel: [http://supermicro.com/products/motherboard/Xeon1333/5000V/X7DVL-E.cfm SuperMicro X7DVL-E] Bi-Xeon Quad core (E5310), 12 GB Memoire, 2 TB Disque &lt;br /&gt;
* OS hôte (Domain 0): Debian Etch&lt;br /&gt;
* Xen Open Source: version 3.1&lt;br /&gt;
&lt;br /&gt;
= Debian Etch (DomO) =&lt;br /&gt;
&lt;br /&gt;
== Généralités == &lt;br /&gt;
Nous démarrerons su base d'une Debian Etch installée et à jour.&lt;br /&gt;
&lt;br /&gt;
Nous désirons tourner des machines virtuelles 32 bits. Le support des machines virtuelles 32 bits sur un hôte 64 bits dans Xen est assez récent (32-on-64 PV guest support), et pour des raisons de stabilité, nous installons donc une version i386 de Debian.&lt;br /&gt;
&lt;br /&gt;
== Partitionnement ==&lt;br /&gt;
Nous disposons de quatre disque de 500GB. Trois sont configurés en RAID5, le dernier reste comme ''Hot Spare''. Le raid étant géré par la carte ''3Ware'', un seul device est visible pour Linux, sa taille est d'approximativement 1 TB.&lt;br /&gt;
&lt;br /&gt;
Nous mettons toutes les partitions standard dans un ''Volume Group'', et nous réservons un autre pour accueillir les machines virtuelles Xen. De cette manière nous séparons completement le système hôte des machines virtuelles. Ce dernier ''Volume Group'' contiendra un ''file system'' pour les images disques ''sur fichier'' et des ''logical volumes'' additionnels pour les acces ''direct''.&lt;br /&gt;
&lt;br /&gt;
Pour le ''Volume Group'' hôte, je reste un adepte des ''filesystems'' séparés!&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Physical device         !! Taille      !! Volume Group  !!colspan=&amp;quot;2&amp;quot;| LVM     !! Partition &lt;br /&gt;
|-&lt;br /&gt;
| /dev/sda1               || 512 MB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || /boot     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;|/dev/sda2    ||rowspan=&amp;quot;6&amp;quot;| 100 GB  ||rowspan=&amp;quot;6&amp;quot;| vgDom0 || root    || 1 GB  || /     &lt;br /&gt;
|-&lt;br /&gt;
| swap    || 12 GB   || swap     &lt;br /&gt;
|-&lt;br /&gt;
| usr    || 5 GB   || /usr     &lt;br /&gt;
|-&lt;br /&gt;
| var    || 3 GB   || /var  &lt;br /&gt;
|-&lt;br /&gt;
| home    || 20 GB   || /home     &lt;br /&gt;
|-&lt;br /&gt;
| -    || 50 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|/dev/sda3    ||rowspan=&amp;quot;2&amp;quot;| 375 GB  ||rowspan=&amp;quot;2&amp;quot;| vgDomU || domu    || 100 GB  || /home/domu     &lt;br /&gt;
|-&lt;br /&gt;
| -     || 275 GB   || non-alloué     &lt;br /&gt;
|-&lt;br /&gt;
| -               || 500 GB      || -             ||colspan=&amp;quot;2&amp;quot;| -       || non-alloué     &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
En dehors d'un install de base, nous installerons les packages suivants&lt;br /&gt;
&lt;br /&gt;
=== Packages utiles ===&lt;br /&gt;
Ces packages ne sont pas a proprement parler obligatoire, mais bon...&lt;br /&gt;
 {{Deb|openssh-server}}&lt;br /&gt;
 {{Deb|screen}}&lt;br /&gt;
 {{Deb|ntp}}&lt;br /&gt;
 {{Deb|less}}&lt;br /&gt;
&lt;br /&gt;
=== Checkinstall ===&lt;br /&gt;
Nous utilisons la dernière version de Xen, qui n'est pas disponible dans Etch.&lt;br /&gt;
&amp;lt;br /&amp;gt;Afin d'éviter d'installer des fichiers non controllés par ''dpkg'', nous utiliserons aussi [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] pour empaqueter Xen.&lt;br /&gt;
&lt;br /&gt;
{{Deb|checkinstall}} est actuellement dans Debian Testing, mais nous le compilerons a partir des sources pour éviter un mélange de distribution.&lt;br /&gt;
&lt;br /&gt;
Le version ''Debian'' de [http://asic-linux.com.mx/~izto/checkinstall/ Checkinstall] est encore assez récente et n'est pas parfaite, mais fonctionne suffisemment bien pour nos besoins.&lt;br /&gt;
{{Boite Code|shell| # Packages pré-requis:&lt;br /&gt;
 apt-get install dpkg-dev gcc file gettext libc6-dev&lt;br /&gt;
 # Récupération des sources&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 mkdir checkinstall&lt;br /&gt;
 cd checkinstall&lt;br /&gt;
 wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.1.tgz&lt;br /&gt;
 tar xzf checkinstall-1.6.1.tgz &lt;br /&gt;
 cd checkinstall-1.6.1&lt;br /&gt;
 # Patch pour les fichiers de configuration&lt;br /&gt;
 perl -pi -e 's@find \$BUILD_DIR/etc 2@find \$BUILD_DIR/etc -name init.d -prune -o -type f -print 2@' \&lt;br /&gt;
      checkinstall&lt;br /&gt;
 # Compilation et installation 'brute'&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 # Génération et installation du paquet Debian&lt;br /&gt;
 checkinstall -D&lt;br /&gt;
 dpkg -i checkinstall_1.6.1-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Xen (Dom0) =&lt;br /&gt;
== Dépendences Xen ==&lt;br /&gt;
Xen nécessite les paquest suivants:&lt;br /&gt;
 {{Deb|iproute}} {{Deb|libc6}} {{Deb|libncurses5}} {{Deb|python}} {{Deb|python-central}} {{Deb|udev}} {{Deb|zlib1g}}&lt;br /&gt;
 {{Deb|libc6-xen}}&lt;br /&gt;
 {{Deb|bridge-utils}} {{Deb|libssl0.9.7}} {{Deb|libsdl1.2debian}}&lt;br /&gt;
&lt;br /&gt;
Les paquets suivant sont nécessaires si Xen a accès au ''Frame Buffer'' (pas testé, car peu d'intérêt pour un serveur)&lt;br /&gt;
 {{Deb|libsdl1.2-dev}} {{Deb|libvncserver-dev}}&lt;br /&gt;
&lt;br /&gt;
== Noyeau ==&lt;br /&gt;
Afin de bénéficier des mises-à-jour de sécurité Debian, nous utilisons le noyeau para-virtualisé Debian au lieu du noyeau ''kernel.org'' distribué par Xen:&lt;br /&gt;
 {{Deb|linux-image-2.6.18-4-xen-686}}&lt;br /&gt;
&lt;br /&gt;
{{Boite Attention| Il semble toutefois que le noyeau Debian pose des problèmes -- de manière aléatoire, on a:&lt;br /&gt;
 BUG: unable to handle kernel paging request at virtual address c007c72c&lt;br /&gt;
au boot d'une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
Nous utiliserons donc le noyeau ''kernel.org'' distribué par Xen pour l'instant&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Hyperviseur ==&lt;br /&gt;
L'hyperviseur est téléchargé de [http://xensource.com/download/index_oss.html XenSource] (version ''tarball'' / ''i386 PAE'')&lt;br /&gt;
{{Boite Code|shell| mkdir /usr/src/xen&lt;br /&gt;
 cd /usr/src/xen&lt;br /&gt;
 wget http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
 tar xzf xen-3.1.0-install-x86_32p.tgz&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Adaptations Debian:&lt;br /&gt;
{{Boite Code|shell| cd dist&lt;br /&gt;
 chown -R root:root .&lt;br /&gt;
 cd install/etc&lt;br /&gt;
 mv sysconfig default&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Création du script network-dummy, si on ne désire pas utiliser le bridge Xen (voir note ci-dessous):&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen/dist/install/etc/xen&lt;br /&gt;
 echo -e '#!/bin/sh\n\nexit 0' &amp;gt; scripts/network-dummy&lt;br /&gt;
 chmod 755 scripts/network-dummy&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Scripts de startup:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 cd /usr/src/xen/dist/install/etc&lt;br /&gt;
 perl -pi -e 's@LOCKFILE=/var/lock/subsys/xendomains@LOCKFILE=/var/lock/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@XENDOM_CONFIG=/etc/sysconfig/xendomains@XENDOM_CONFIG=/etc/default/xendomains@' \&lt;br /&gt;
      init.d/xendomains&lt;br /&gt;
 perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains&lt;br /&gt;
 cd /usr/src/xen/dist&lt;br /&gt;
 cat &amp;gt;postinstall-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 update-rc.d xend defaults 20 21 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 update-rc.d xendomains defaults 21 20 &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;configure&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     depmod -a -F /boot/System.map-2.6.18-xen 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
     update-initramfs -c -t -k 2.6.18-xen&lt;br /&gt;
   fi&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;preremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   if [ -e /boot/System.map-2.6.18-xen ]; then&lt;br /&gt;
     update-initramfs -d -k 2.6.18-xen &amp;amp;#124;&amp;amp;#124; true&lt;br /&gt;
   fi&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 cat &amp;gt;postremove-pak &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; = &amp;quot;remove&amp;quot; ]; then&lt;br /&gt;
   update-rc.d xend remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   update-rc.d xendomains remove &amp;gt;/dev/null &amp;amp;#124;&amp;amp;#124; exit $?&lt;br /&gt;
   command -v update-grub &amp;gt; /dev/null &amp;amp;&amp;amp; update-grub&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod a+x postinstall-pak postremove-pak preremove-pak&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Note''': Pour les aventuriers qui utilisent cet article pour installer la version 64 bits de Xen, il faut ruser pour avoir les librairies au bon endroit... (Distribution Xen {{Fichier|xen-3.1.0-install-x86_64.tgz}})&lt;br /&gt;
{{Boite Code|shell -- Uniquement pour la distribution 64 bits|&lt;br /&gt;
 # Uniquement pour la version 64 bits de l'hyperviseur! &lt;br /&gt;
 cd /usr/src/xen/dist/install/usr&lt;br /&gt;
 mv -f lib64/xen/bin lib/xen/&lt;br /&gt;
 rm -rf lib64/xen&lt;br /&gt;
 mv -f lib64/* lib/*&lt;br /&gt;
 rm -rf lib64&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Si nous utilisons les noyeaux Debian; on peux nettoyer le noyeau distribué dans le paquet Xen:&lt;br /&gt;
{{Boite Code|shell (Optionel)| cd  /usr/src/xen/dist/install&lt;br /&gt;
 rm -rf lib&lt;br /&gt;
 rm -f boot/vmlinux-syms-2.6.18-xen boot/vmlinuz-2.6.18-xen boot/vmlinuz-2.6-xen \&lt;br /&gt;
       boot/System.map-2.6.18-xen boot/config-2.6.18-xen&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Préparation du paquet avec {{Commande|checkinstall}}&lt;br /&gt;
{{Boite Code|shell| cd /usr/src/xen&lt;br /&gt;
 mv dist xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 cd  xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0&lt;br /&gt;
 checkinstall -D ./install.sh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Installer le package:&lt;br /&gt;
{{Boite Code|shell| dpkg -i xen-hypervisor-and-tools-3.1.0-1-i386-pae_3.1.0-1_i386.deb&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Rebooter!&lt;br /&gt;
&lt;br /&gt;
= Xen (DomU) =&lt;br /&gt;
== Xen-tools ==&lt;br /&gt;
Les utilitaires [http://xen-tools.org/software/xen-tools/ xen-tools] permettent de créer des machines (para-)virtuelles (''DomU'') très facilement.&lt;br /&gt;
&amp;lt;br /&amp;gt;Il supporte la création de machines virtuelles Debian, Ubuntu, CentOS et Fedora. Il permet aussi de copier des machines virtuelles, etc.&lt;br /&gt;
&lt;br /&gt;
[http://xen-tools.org/software/xen-tools/ Xen-tools]est disponible dans Debian Etch, mais nous prendrons le dépot du développeur [http://apt.steve.org.uk/ Steve Kemp] qui est plus récent:&lt;br /&gt;
 {{Boite Fichier|/etc/apt/sources.list|&lt;br /&gt;
 #&lt;br /&gt;
 #  Steve Kemp's repository:  Etch&lt;br /&gt;
 #&lt;br /&gt;
 deb     http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
 deb-src http://apt.steve.org.uk/etch etch main non-free contrib&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Ajout de la clé:&lt;br /&gt;
{{Boite Code|shell| wget -q -O - http://apt.steve.org.uk/apt-key.gpg &amp;amp;#124; apt-key add -}}&lt;br /&gt;
&lt;br /&gt;
On aura aussi besoin de ''debootstrap''&lt;br /&gt;
{{Boite Code|shell| apt-get install debootstrap xen-tools}}&lt;br /&gt;
&lt;br /&gt;
Vérifier le fichier {{Fichier|/etc/xen-tools/xen-tools.conf}}; en mettant les ''bons'' paramètres par défaut, la création d'une machine virtuelle s'en trouve grandement simplifiée.&lt;br /&gt;
&amp;lt;br /&amp;gt;Le fichier de configuration est bien documenté et ne devrait pas poser de problèmes.&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (para-virtualisation) ==&lt;br /&gt;
Pour créer une machine virtuelle avec les paramètres par défaut:&lt;br /&gt;
{{Boite Code|shell|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 xen-create-image --hostname=&amp;lt;FQDN&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de cette machine virtuelle est {{Fichier|/etc/xen/&amp;lt;FQDN&amp;gt;.cfg}} et elle se démarre:&lt;br /&gt;
{{Boite Code|shell| xm create /etc/xen/&amp;lt;FQDN&amp;gt;.cfg &amp;amp;&amp;amp; xm console &amp;lt;FQDN&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Pour démarrer une machine virtuelle au boot:&lt;br /&gt;
{{Boite Code|shell| ln -s /etc/xen/&amp;lt;FQDN&amp;gt;.cfg /etc/xen/auto}}&lt;br /&gt;
Elle sera par la même occasion ''sauvée'' au shutdown.&lt;br /&gt;
&lt;br /&gt;
== Création d'une machine virtuelle (HVM) ==&lt;br /&gt;
Le mode HVM permet de tourner des OS ''non para-virtualisés''.&lt;br /&gt;
&lt;br /&gt;
A titre d'exemple j'ai installé Windows XP Home Edition sur un ''logical volume''.&lt;br /&gt;
&amp;lt;br /&amp;gt;Nous avons une image du CD-ROM: {{Fichier|/home/vservers/XPhome.iso}}&lt;br /&gt;
&lt;br /&gt;
Création du ''logical volume'':&lt;br /&gt;
{{Boite Code|shell| lvcreate –L 10000 –n xphome vgXen}}&lt;br /&gt;
&lt;br /&gt;
Création du fichier de configuration {{Fichier|/etc/xen/xphome.hvm}} à partir du template {{Fichier|/etc/xen/xmexample.hvm}}.&lt;br /&gt;
&amp;lt;br /&amp;gt;Les seules choses à changer sont:&lt;br /&gt;
* Le nom de la machine virtuelle&lt;br /&gt;
* La mémoire à allouer&lt;br /&gt;
* Le ''mapping'' du dique et de l'image CD-ROM&lt;br /&gt;
* L'ordre de boot (C, D)&lt;br /&gt;
* L'accès au serveur VNC par une machine distante&lt;br /&gt;
* Le ''mapping'' clavier &lt;br /&gt;
{{Boite Code|diff xmexample.hvm xphome.hvm|2=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 28c28&lt;br /&gt;
 &amp;lt; memory = 128&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; memory = 512&lt;br /&gt;
 35c35&lt;br /&gt;
 &amp;lt; name = &amp;quot;ExampleHVMDomain&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; name = &amp;quot;xphome&amp;quot;&lt;br /&gt;
 64c64&lt;br /&gt;
 &amp;lt; vif = [ 'type=ioemu, bridge=xenbr0' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vif = [ 'type=ioemu, mac=00:16:3e:00:00:94, bridge=xenbr0' ]&lt;br /&gt;
 74c74&lt;br /&gt;
 &amp;lt; disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; disk = [ 'phy:/dev/vgXen/xphome,ioemu:hda,w', 'file:/home/vservers/XPhome.iso,hdc:cdrom,r' ]&lt;br /&gt;
 121a122&lt;br /&gt;
 &amp;gt; boot=&amp;quot;cd&amp;quot;&lt;br /&gt;
 138c139&lt;br /&gt;
 &amp;lt; #vnclisten=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; vnclisten=&amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
 210c211&lt;br /&gt;
 &amp;lt; #keymap='ja'&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; keymap='fr-be'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de créer la machine virtuelle:&lt;br /&gt;
{{Boite Code|shell| xm create /etc/xen/xphome.hvm}}&lt;br /&gt;
&lt;br /&gt;
Et, a partir d'une machine distante:&lt;br /&gt;
{{Boite Code|shell| xvncviewer &amp;lt;Dom0&amp;gt;}}&lt;br /&gt;
(C'est bien le domaine 0 qu'il faut adresser et pas la machine virtuelle!)&lt;br /&gt;
&lt;br /&gt;
L'installation de Windows se passe sans problème via ''VNC''.&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
== Bridging ==&lt;br /&gt;
Si on ne désire pas utiliser le bridge Xen (efficace mais complexe), on peut simplement modifier le fichier de configuration:&lt;br /&gt;
{{Boite Code|shell| perl -pi -e 's@^\(network-script\ network-bridge\)$@\(network-script network-dummy\)@' \&lt;br /&gt;
      /etc/xen/xend-config.sxp}}&lt;br /&gt;
&lt;br /&gt;
Et créér le bridge dans {{Fichier|/etc/network/interfaces}}&lt;br /&gt;
{{Boite Fichier|/etc/network/interfaces|&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
    bridge_fd 0&lt;br /&gt;
    bridge_maxwait 0&lt;br /&gt;
    bridge_helo 0&lt;br /&gt;
    bridge_stp off&lt;br /&gt;
    bridge_ports eth0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
&lt;br /&gt;
* [http://www.xensource.com XenSource]&lt;br /&gt;
* [http://www.howtoforge.com/debian_etch_xen_3.1 The Perfect Xen 3.1.0 Setup For Debian Etch]&lt;br /&gt;
* [http://www.xensource.com/files/xen_install_windows.pdf How to Install Windows on Xen 3.0]&lt;br /&gt;
* [http://lists.xensource.com/archives/html/xen-users/2007-05/msg00652.html Xen 3.1.0 on Debian etch amd64]&lt;br /&gt;
* [http://et.redhat.com/~kraxel/xen/suse-guest.html Install SUSE as Xen guest]&lt;br /&gt;
== Diverses aides ==&lt;br /&gt;
* http://www.yuanjue.net/xen/howto.html&lt;br /&gt;
* http://www.opensolaris.org/os/community/xen/How-To-8-15-06/install/AugDomUs/;jsessionid=9E9E779D80E585F4F2559E2E9E598150&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1364</id>
		<title>Linux-VServer HowTo</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1364"/>
				<updated>2006-03-14T17:02:48Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Création d'un serveur virtuel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Linux-VServer sur une Debian Sarge / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Il y a déjà quelques HowTo's dans la place, le but ici n'est pas d'un ré-écrire un, mais plutot d'avoir un brain-dump de mon installation...&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Debian Sarge installé et à jour&lt;br /&gt;
&lt;br /&gt;
= Noyeau =&lt;br /&gt;
Il faut avoir un noyeau récent. Plutôt que d'opter pour un noyeau de kernel.org, j'ai utilisé les sources du dernier noyeau Debian dans unstable:&lt;br /&gt;
 $ apt-get install linux-source-2.6.14&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ tar xjf linux-source-2.6.14.tar.bz2&lt;br /&gt;
&lt;br /&gt;
J'ai aussi récupéré le fichier de configuration ''.config'' du package ''linux-image-2.6.14-2-686-smp'' pour avoir une base de configuration correcte.&lt;br /&gt;
 $ cd /tmp&lt;br /&gt;
 $ wget ftp://ftp.belnet.be/pub/debian/pool/main/l/linux-2.6/linux-image-2.6.14-2-686-smp_2.6.14-6_i386.deb&lt;br /&gt;
 $ ar xv linux-source-2.6.14.tar.bz2 data.tar.gz&lt;br /&gt;
 $ tar xzvf  data.tar.gz ./boot/config-2.6.14-2-686-smp&lt;br /&gt;
 $ cp boot/config-2.6.14-2-686-smp /usr/src/linux-source-2.6.14/.config&lt;br /&gt;
&lt;br /&gt;
On applique la dernière version stable des patches Linux-VServer sur http://www.13thfloor.at/vserver/s_rel26/v2.01/&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/patch-2.6.14.3-vs2.01.diff.bz2&lt;br /&gt;
 $ cd linux-source-2.6.14&lt;br /&gt;
 $ bzcat ../patch-2.6.14.3-vs2.01.diff.bz2 | patch -p1&lt;br /&gt;
&lt;br /&gt;
/!\ Le patch ne s'applique pas entièrement sur un noyeau Debian il faut patcher ''init/version.c'' à la main (trivial).&lt;br /&gt;
&lt;br /&gt;
On vérifie les paramètres de Linux-VServer:&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&lt;br /&gt;
La section Linux-VServer resemble à ceci:&lt;br /&gt;
 [*] Enable Legacy Kernel API&lt;br /&gt;
 [ ]   Show a Legacy Version ID&lt;br /&gt;
 [ ] Disable Legacy Networking Kernel API&lt;br /&gt;
 [*] Enable Proc Security&lt;br /&gt;
 [*] Enable Hard CPU Limits&lt;br /&gt;
 [ ]   Limit the IDLE task&lt;br /&gt;
     Persistent Inode Context Tagging (UID24/GID24)  ---&amp;gt;&lt;br /&gt;
 [ ] Tag NFSD User Auth and Files&lt;br /&gt;
 [ ] VServer Debugging Code&lt;br /&gt;
&lt;br /&gt;
Et dans la section ''Device Drivers'' / ''Block Devices'':&lt;br /&gt;
 &amp;lt;M&amp;gt; Virtual Root device support   &lt;br /&gt;
&lt;br /&gt;
Génération d'un noyeau Debian:&lt;br /&gt;
 $ fakeroot make-kpkg \&lt;br /&gt;
   --revision 2.6.14.vs201 \&lt;br /&gt;
   --append_to_version -1-vs2.0.1-686-smp \&lt;br /&gt;
   --us --uc \&lt;br /&gt;
   --rootcmd fakeroot \&lt;br /&gt;
   --initrd \&lt;br /&gt;
   kernel_image kernel_headers&lt;br /&gt;
&lt;br /&gt;
Et finalement installation:&lt;br /&gt;
 # dpkg -i /usr/src/kernel-image-2.6.14-1-vs2.0.1-686-smp_2.6.14.vs201_i386.deb&lt;br /&gt;
&lt;br /&gt;
= Outils =&lt;br /&gt;
Je n'ai pas eu trop de succès avec ''util-vserver'' de la version stable, le problème venant plus que probablement des chois pris lors de la compilation du noyeau. J'ai donc décidé de recompiler les outils...&lt;br /&gt;
&lt;br /&gt;
Pré-requis:&lt;br /&gt;
 # apt-get install vlan dietlibc dietlibc-dev e2fslibs-dev beecrypt2 beecrypt2-dev &lt;br /&gt;
&lt;br /&gt;
Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/:&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz&lt;br /&gt;
 $ tar xzf util-vserver-0.30.209.tar.gz&lt;br /&gt;
&lt;br /&gt;
Configuration: nous n'allons pas installer le paquet aux endroits habituels:&lt;br /&gt;
* L'ensembles des programmes et librairies sous ''/usr/local/vserver'' pour ne pas mélanger avec d'autres paquets&lt;br /&gt;
* Les serveurs virtuels irons dan /home/vservers&lt;br /&gt;
&lt;br /&gt;
 $ cd util-vserver-0.30.209&lt;br /&gt;
 $ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc&lt;br /&gt;
 [...]&lt;br /&gt;
 util-vserver 0.30.209&lt;br /&gt;
 &lt;br /&gt;
 Features:&lt;br /&gt;
                       CC: gcc, gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                      CXX: g++, g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                 CPPFLAGS: ''&lt;br /&gt;
                   CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W'&lt;br /&gt;
                 CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0'&lt;br /&gt;
               build/host: i686-pc-linux-gnu/i686-pc-linux-gnu&lt;br /&gt;
             Use dietlibc: yes&lt;br /&gt;
       Build C++ programs: yes&lt;br /&gt;
       Build C99 programs: yes&lt;br /&gt;
           Available APIs: compat,v11,v13,fscompat,net,oldproc,olduts&lt;br /&gt;
            ext2fs Source: e2fsprogs&lt;br /&gt;
    syscall(2) invocation: alternative&lt;br /&gt;
      vserver(2) syscall#: 273/glibc&lt;br /&gt;
 &lt;br /&gt;
 Paths:&lt;br /&gt;
                   prefix: /usr/local/vserver&lt;br /&gt;
        sysconf-Directory: /etc&lt;br /&gt;
            cfg-Directory: /etc/vservers&lt;br /&gt;
         initrd-Directory: $(sysconfdir)/init.d&lt;br /&gt;
       pkgstate-Directory: /var/run/vservers&lt;br /&gt;
          vserver-Rootdir: /home/vservers&lt;br /&gt;
&lt;br /&gt;
Compilation:&lt;br /&gt;
 $ make&lt;br /&gt;
 # make install&lt;br /&gt;
 # make install-distribution&lt;br /&gt;
&lt;br /&gt;
Post-install: s'assurer que ''/home/vservers'' est bien ''chroot barrier'' et mettre les permissions sur ''/proc''&lt;br /&gt;
 # /usr/local/vserver/sbin/setattr --barrier /home/vservers&lt;br /&gt;
 # /usr/local/vserver/lib/util-vserver/vprocunhide&lt;br /&gt;
&lt;br /&gt;
= Création d'un serveur virtuel =&lt;br /&gt;
&lt;br /&gt;
Il existe un package ''vserver-debiantools'' qui automatise la création de serveurs sous Debian, mais il est basé sur les ''anciennes'' fonctions de Linux-VServer. Nous ferons donc notre création ''à la main'', ce n'est pas compliqué!&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les choses, on va enregistrer les valeurs par défaut:&lt;br /&gt;
* Mirroir: ''/etc/vservers/.defaults/apps/debootstrap/mirror'' contient ''ftp://ftp.belnet.be/pub/debian''&lt;br /&gt;
 # mkdir -p /etc/vservers/.defaults/apps/debootstrap/&lt;br /&gt;
 # echo ftp://ftp.belnet.be/pub/debian &amp;gt; /etc/vservers/.defaults/apps/debootstrap/mirror&lt;br /&gt;
 # apt-get install debootstrap&lt;br /&gt;
&lt;br /&gt;
Creation du vserver:&lt;br /&gt;
 # PKG_EXCLUDE=&amp;quot;dhcp-client,fdutils,iptables,libpcap0.7,makedev,pciutils,ppp,pppconfig,pppoe,pppoeconf&amp;quot;&lt;br /&gt;
 # vserver alesia build \&lt;br /&gt;
 &amp;gt;  --hostname alesia.bulles-dsl \&lt;br /&gt;
 &amp;gt;  --interface eth0:172.16.34.44/26 \&lt;br /&gt;
 &amp;gt;  -m debootstrap -- -d sarge -- --exclude=${PKG_EXCLUDE}&lt;br /&gt;
'''Note''': J'ai utilisé ''debootstrap'' de ''testing'', pour éviter certain warnings&lt;br /&gt;
&lt;br /&gt;
Post-install: il faut se débarrasser de tout ce qui touche au hardware lors du boot.&lt;br /&gt;
 # vserver alesia start&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# NO_INIT=&amp;quot;makedev hwclock.sh urandom mountnfs.sh umountnfs.sh networking \&lt;br /&gt;
 &amp;gt;  ifupdown umountfs halt klogd reboot keymap.sh console-screen.sh checkroot.sh \ &lt;br /&gt;
 &amp;gt;  mountvirtfs procps.sh mountall.sh checkfs.sh ifupdown-clean hwclockfirst.sh modutils&amp;quot;&lt;br /&gt;
 alesia:/# for FILE in $NO_INIT&lt;br /&gt;
 &amp;gt; do&lt;br /&gt;
 &amp;gt;   update-rc.d -f $FILE remove&lt;br /&gt;
 &amp;gt; done&lt;br /&gt;
'''Note''': Il se peut qu'une erreur ''proc/uptime can not be accessed. Usually, this is caused by procfs-security'' apparaisse; dans ce cas relancez ''/usr/local/vserver/lib/util-vserver/vprocunhide''&lt;br /&gt;
&lt;br /&gt;
Les packages installés par ''debootstrap'' sont vraiment le minimum. Le plus simple est d'exécuter ''base-config''.&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# base-config new&lt;br /&gt;
'''Note''': Il semble que ''debootstrap'' utilise ''testing'' pour ses packages!&lt;br /&gt;
&lt;br /&gt;
= Accès réseau =&lt;br /&gt;
La plupart des services réseau font un ''bind'' sur l'ensembles des interfaces réseau disponibles. Il faut s'assurer que l'hôte et les serveurs virtuels n'écoutent que sur leurs IP respectives.&lt;br /&gt;
&lt;br /&gt;
Par exemple pour SSH, dans ''/etc/ssh/sshd_config''&lt;br /&gt;
 ListenAddress  172.16.34.44&lt;br /&gt;
&lt;br /&gt;
= Démarrage au boot =&lt;br /&gt;
Les scripts de démarrage:&lt;br /&gt;
 # update-rc.d vprocunhide defaults 90 10&lt;br /&gt;
 # update-rc.d vservers-default defaults 91 09&lt;br /&gt;
&lt;br /&gt;
Pour qu'un VServer démarre au boot: mettre ''default'' dans ''/etc/vservers/&amp;lt;vserver&amp;gt;/apps/init/mark''&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
* Page du projet: http://linux-vserver.org/&lt;br /&gt;
* [http://www.5dollarwhitebox.org/wiki/index.php/Howtos_Linux-Vserver_Debian_Sarge Howtos Linux-Vserver Debian Sarge]&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-Step Guide 2.6]&lt;br /&gt;
* [http://www.13thfloor.at/vserver/s_rel26/v2.01/ Linux-VServer L26 Stable]&lt;br /&gt;
* [http://linux-vserver.org/alpha+util-vserver alpha util-vserver]&lt;br /&gt;
* [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Flower page]&lt;br /&gt;
* [http://www.13thfloor.at/old/VServer/HowTo_LVMQS.shtml  VS Secure Quota HowTo]&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1363</id>
		<title>Linux-VServer HowTo</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1363"/>
				<updated>2006-03-14T17:01:34Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Création d'un serveur virtuel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Linux-VServer sur une Debian Sarge / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Il y a déjà quelques HowTo's dans la place, le but ici n'est pas d'un ré-écrire un, mais plutot d'avoir un brain-dump de mon installation...&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Debian Sarge installé et à jour&lt;br /&gt;
&lt;br /&gt;
= Noyeau =&lt;br /&gt;
Il faut avoir un noyeau récent. Plutôt que d'opter pour un noyeau de kernel.org, j'ai utilisé les sources du dernier noyeau Debian dans unstable:&lt;br /&gt;
 $ apt-get install linux-source-2.6.14&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ tar xjf linux-source-2.6.14.tar.bz2&lt;br /&gt;
&lt;br /&gt;
J'ai aussi récupéré le fichier de configuration ''.config'' du package ''linux-image-2.6.14-2-686-smp'' pour avoir une base de configuration correcte.&lt;br /&gt;
 $ cd /tmp&lt;br /&gt;
 $ wget ftp://ftp.belnet.be/pub/debian/pool/main/l/linux-2.6/linux-image-2.6.14-2-686-smp_2.6.14-6_i386.deb&lt;br /&gt;
 $ ar xv linux-source-2.6.14.tar.bz2 data.tar.gz&lt;br /&gt;
 $ tar xzvf  data.tar.gz ./boot/config-2.6.14-2-686-smp&lt;br /&gt;
 $ cp boot/config-2.6.14-2-686-smp /usr/src/linux-source-2.6.14/.config&lt;br /&gt;
&lt;br /&gt;
On applique la dernière version stable des patches Linux-VServer sur http://www.13thfloor.at/vserver/s_rel26/v2.01/&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/patch-2.6.14.3-vs2.01.diff.bz2&lt;br /&gt;
 $ cd linux-source-2.6.14&lt;br /&gt;
 $ bzcat ../patch-2.6.14.3-vs2.01.diff.bz2 | patch -p1&lt;br /&gt;
&lt;br /&gt;
/!\ Le patch ne s'applique pas entièrement sur un noyeau Debian il faut patcher ''init/version.c'' à la main (trivial).&lt;br /&gt;
&lt;br /&gt;
On vérifie les paramètres de Linux-VServer:&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&lt;br /&gt;
La section Linux-VServer resemble à ceci:&lt;br /&gt;
 [*] Enable Legacy Kernel API&lt;br /&gt;
 [ ]   Show a Legacy Version ID&lt;br /&gt;
 [ ] Disable Legacy Networking Kernel API&lt;br /&gt;
 [*] Enable Proc Security&lt;br /&gt;
 [*] Enable Hard CPU Limits&lt;br /&gt;
 [ ]   Limit the IDLE task&lt;br /&gt;
     Persistent Inode Context Tagging (UID24/GID24)  ---&amp;gt;&lt;br /&gt;
 [ ] Tag NFSD User Auth and Files&lt;br /&gt;
 [ ] VServer Debugging Code&lt;br /&gt;
&lt;br /&gt;
Et dans la section ''Device Drivers'' / ''Block Devices'':&lt;br /&gt;
 &amp;lt;M&amp;gt; Virtual Root device support   &lt;br /&gt;
&lt;br /&gt;
Génération d'un noyeau Debian:&lt;br /&gt;
 $ fakeroot make-kpkg \&lt;br /&gt;
   --revision 2.6.14.vs201 \&lt;br /&gt;
   --append_to_version -1-vs2.0.1-686-smp \&lt;br /&gt;
   --us --uc \&lt;br /&gt;
   --rootcmd fakeroot \&lt;br /&gt;
   --initrd \&lt;br /&gt;
   kernel_image kernel_headers&lt;br /&gt;
&lt;br /&gt;
Et finalement installation:&lt;br /&gt;
 # dpkg -i /usr/src/kernel-image-2.6.14-1-vs2.0.1-686-smp_2.6.14.vs201_i386.deb&lt;br /&gt;
&lt;br /&gt;
= Outils =&lt;br /&gt;
Je n'ai pas eu trop de succès avec ''util-vserver'' de la version stable, le problème venant plus que probablement des chois pris lors de la compilation du noyeau. J'ai donc décidé de recompiler les outils...&lt;br /&gt;
&lt;br /&gt;
Pré-requis:&lt;br /&gt;
 # apt-get install vlan dietlibc dietlibc-dev e2fslibs-dev beecrypt2 beecrypt2-dev &lt;br /&gt;
&lt;br /&gt;
Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/:&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz&lt;br /&gt;
 $ tar xzf util-vserver-0.30.209.tar.gz&lt;br /&gt;
&lt;br /&gt;
Configuration: nous n'allons pas installer le paquet aux endroits habituels:&lt;br /&gt;
* L'ensembles des programmes et librairies sous ''/usr/local/vserver'' pour ne pas mélanger avec d'autres paquets&lt;br /&gt;
* Les serveurs virtuels irons dan /home/vservers&lt;br /&gt;
&lt;br /&gt;
 $ cd util-vserver-0.30.209&lt;br /&gt;
 $ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc&lt;br /&gt;
 [...]&lt;br /&gt;
 util-vserver 0.30.209&lt;br /&gt;
 &lt;br /&gt;
 Features:&lt;br /&gt;
                       CC: gcc, gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                      CXX: g++, g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                 CPPFLAGS: ''&lt;br /&gt;
                   CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W'&lt;br /&gt;
                 CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0'&lt;br /&gt;
               build/host: i686-pc-linux-gnu/i686-pc-linux-gnu&lt;br /&gt;
             Use dietlibc: yes&lt;br /&gt;
       Build C++ programs: yes&lt;br /&gt;
       Build C99 programs: yes&lt;br /&gt;
           Available APIs: compat,v11,v13,fscompat,net,oldproc,olduts&lt;br /&gt;
            ext2fs Source: e2fsprogs&lt;br /&gt;
    syscall(2) invocation: alternative&lt;br /&gt;
      vserver(2) syscall#: 273/glibc&lt;br /&gt;
 &lt;br /&gt;
 Paths:&lt;br /&gt;
                   prefix: /usr/local/vserver&lt;br /&gt;
        sysconf-Directory: /etc&lt;br /&gt;
            cfg-Directory: /etc/vservers&lt;br /&gt;
         initrd-Directory: $(sysconfdir)/init.d&lt;br /&gt;
       pkgstate-Directory: /var/run/vservers&lt;br /&gt;
          vserver-Rootdir: /home/vservers&lt;br /&gt;
&lt;br /&gt;
Compilation:&lt;br /&gt;
 $ make&lt;br /&gt;
 # make install&lt;br /&gt;
 # make install-distribution&lt;br /&gt;
&lt;br /&gt;
Post-install: s'assurer que ''/home/vservers'' est bien ''chroot barrier'' et mettre les permissions sur ''/proc''&lt;br /&gt;
 # /usr/local/vserver/sbin/setattr --barrier /home/vservers&lt;br /&gt;
 # /usr/local/vserver/lib/util-vserver/vprocunhide&lt;br /&gt;
&lt;br /&gt;
= Création d'un serveur virtuel =&lt;br /&gt;
&lt;br /&gt;
Il existe un package ''vserver-debiantools'' qui automatise la création de serveurs sous Debian, mais il est basé sur les ''anciennes'' fonctions de Linux-VServer. Nous ferons donc notre création ''à la main'', ce n'est pas compliqué!&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les choses, on va enregistrer les valeurs par défaut:&lt;br /&gt;
* Mirroir: ''/etc/vservers/.defaults/apps/debootstrap/mirror'' contient ''ftp://ftp.belnet.be/pub/debian''&lt;br /&gt;
 # mkdir -p /etc/vservers/.defaults/apps/debootstrap/&lt;br /&gt;
 # echo ftp://ftp.belnet.be/pub/debian &amp;gt; /etc/vservers/.defaults/apps/debootstrap/mirror&lt;br /&gt;
 # apt-get install debootstrap&lt;br /&gt;
&lt;br /&gt;
Creation du vserver:&lt;br /&gt;
 # PKG_EXCLUDE=&amp;quot;dhcp-client,fdutils,iptables,libpcap0.7,makedev,pciutils,ppp,pppconfig,pppoe,pppoeconf&amp;quot;&lt;br /&gt;
 # vserver alesia build \&lt;br /&gt;
 &amp;gt;  --hostname alesia.bulles-dsl \&lt;br /&gt;
 &amp;gt;  --interface eth0:172.16.34.44/26 \&lt;br /&gt;
 &amp;gt;  -m debootstrap -- -d sarge -- --exclude=${PKG_EXCLUDE}&lt;br /&gt;
'''Note''': J'ai utilisé ''debootstrap'' de ''testing'', pour éviter certain warnings&lt;br /&gt;
&lt;br /&gt;
Post-install: il faut se débarrasser de tout ce qui touche au hardware lors du boot.&lt;br /&gt;
 # vserver alesia start&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# NO_INIT=&amp;quot;makedev hwclock.sh urandom mountnfs.sh umountnfs.sh networking \&lt;br /&gt;
 &amp;gt;  ifupdown umountfs halt klogd reboot keymap.sh console-screen.sh checkroot.sh \ &lt;br /&gt;
 &amp;gt;  mountvirtfs procps.sh mountall.sh checkfs.sh ifupdown-clean hwclockfirst.sh modutils&amp;quot;&lt;br /&gt;
 alesia:/# for FILE in $NO_INIT&lt;br /&gt;
 &amp;gt; do&lt;br /&gt;
 &amp;gt;   update-rc.d -f $FILE remove&lt;br /&gt;
 &amp;gt; done&lt;br /&gt;
'''Note''': Il se peut qu'une erreur ''proc/uptime can not be accessed. Usually, this is caused by&lt;br /&gt;
procfs-security. Please read the FAQ for more details'' apparaisse; dans ce cas relancez ''/usr/local/vserver/lib/util-vserver/vprocunhide''&lt;br /&gt;
&lt;br /&gt;
Les packages installés par ''debootstrap'' sont vraiment le minimum. Le plus simple est d'exécuter ''base-config''.&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# base-config new&lt;br /&gt;
'''Note''': Il semble que ''debootstrap'' utilise ''testing'' pour ses packages!&lt;br /&gt;
&lt;br /&gt;
= Accès réseau =&lt;br /&gt;
La plupart des services réseau font un ''bind'' sur l'ensembles des interfaces réseau disponibles. Il faut s'assurer que l'hôte et les serveurs virtuels n'écoutent que sur leurs IP respectives.&lt;br /&gt;
&lt;br /&gt;
Par exemple pour SSH, dans ''/etc/ssh/sshd_config''&lt;br /&gt;
 ListenAddress  172.16.34.44&lt;br /&gt;
&lt;br /&gt;
= Démarrage au boot =&lt;br /&gt;
Les scripts de démarrage:&lt;br /&gt;
 # update-rc.d vprocunhide defaults 90 10&lt;br /&gt;
 # update-rc.d vservers-default defaults 91 09&lt;br /&gt;
&lt;br /&gt;
Pour qu'un VServer démarre au boot: mettre ''default'' dans ''/etc/vservers/&amp;lt;vserver&amp;gt;/apps/init/mark''&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
* Page du projet: http://linux-vserver.org/&lt;br /&gt;
* [http://www.5dollarwhitebox.org/wiki/index.php/Howtos_Linux-Vserver_Debian_Sarge Howtos Linux-Vserver Debian Sarge]&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-Step Guide 2.6]&lt;br /&gt;
* [http://www.13thfloor.at/vserver/s_rel26/v2.01/ Linux-VServer L26 Stable]&lt;br /&gt;
* [http://linux-vserver.org/alpha+util-vserver alpha util-vserver]&lt;br /&gt;
* [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Flower page]&lt;br /&gt;
* [http://www.13thfloor.at/old/VServer/HowTo_LVMQS.shtml  VS Secure Quota HowTo]&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1362</id>
		<title>Linux-VServer HowTo</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1362"/>
				<updated>2006-03-14T16:55:09Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Création d'un serveur virtuel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Linux-VServer sur une Debian Sarge / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Il y a déjà quelques HowTo's dans la place, le but ici n'est pas d'un ré-écrire un, mais plutot d'avoir un brain-dump de mon installation...&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Debian Sarge installé et à jour&lt;br /&gt;
&lt;br /&gt;
= Noyeau =&lt;br /&gt;
Il faut avoir un noyeau récent. Plutôt que d'opter pour un noyeau de kernel.org, j'ai utilisé les sources du dernier noyeau Debian dans unstable:&lt;br /&gt;
 $ apt-get install linux-source-2.6.14&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ tar xjf linux-source-2.6.14.tar.bz2&lt;br /&gt;
&lt;br /&gt;
J'ai aussi récupéré le fichier de configuration ''.config'' du package ''linux-image-2.6.14-2-686-smp'' pour avoir une base de configuration correcte.&lt;br /&gt;
 $ cd /tmp&lt;br /&gt;
 $ wget ftp://ftp.belnet.be/pub/debian/pool/main/l/linux-2.6/linux-image-2.6.14-2-686-smp_2.6.14-6_i386.deb&lt;br /&gt;
 $ ar xv linux-source-2.6.14.tar.bz2 data.tar.gz&lt;br /&gt;
 $ tar xzvf  data.tar.gz ./boot/config-2.6.14-2-686-smp&lt;br /&gt;
 $ cp boot/config-2.6.14-2-686-smp /usr/src/linux-source-2.6.14/.config&lt;br /&gt;
&lt;br /&gt;
On applique la dernière version stable des patches Linux-VServer sur http://www.13thfloor.at/vserver/s_rel26/v2.01/&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/patch-2.6.14.3-vs2.01.diff.bz2&lt;br /&gt;
 $ cd linux-source-2.6.14&lt;br /&gt;
 $ bzcat ../patch-2.6.14.3-vs2.01.diff.bz2 | patch -p1&lt;br /&gt;
&lt;br /&gt;
/!\ Le patch ne s'applique pas entièrement sur un noyeau Debian il faut patcher ''init/version.c'' à la main (trivial).&lt;br /&gt;
&lt;br /&gt;
On vérifie les paramètres de Linux-VServer:&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&lt;br /&gt;
La section Linux-VServer resemble à ceci:&lt;br /&gt;
 [*] Enable Legacy Kernel API&lt;br /&gt;
 [ ]   Show a Legacy Version ID&lt;br /&gt;
 [ ] Disable Legacy Networking Kernel API&lt;br /&gt;
 [*] Enable Proc Security&lt;br /&gt;
 [*] Enable Hard CPU Limits&lt;br /&gt;
 [ ]   Limit the IDLE task&lt;br /&gt;
     Persistent Inode Context Tagging (UID24/GID24)  ---&amp;gt;&lt;br /&gt;
 [ ] Tag NFSD User Auth and Files&lt;br /&gt;
 [ ] VServer Debugging Code&lt;br /&gt;
&lt;br /&gt;
Et dans la section ''Device Drivers'' / ''Block Devices'':&lt;br /&gt;
 &amp;lt;M&amp;gt; Virtual Root device support   &lt;br /&gt;
&lt;br /&gt;
Génération d'un noyeau Debian:&lt;br /&gt;
 $ fakeroot make-kpkg \&lt;br /&gt;
   --revision 2.6.14.vs201 \&lt;br /&gt;
   --append_to_version -1-vs2.0.1-686-smp \&lt;br /&gt;
   --us --uc \&lt;br /&gt;
   --rootcmd fakeroot \&lt;br /&gt;
   --initrd \&lt;br /&gt;
   kernel_image kernel_headers&lt;br /&gt;
&lt;br /&gt;
Et finalement installation:&lt;br /&gt;
 # dpkg -i /usr/src/kernel-image-2.6.14-1-vs2.0.1-686-smp_2.6.14.vs201_i386.deb&lt;br /&gt;
&lt;br /&gt;
= Outils =&lt;br /&gt;
Je n'ai pas eu trop de succès avec ''util-vserver'' de la version stable, le problème venant plus que probablement des chois pris lors de la compilation du noyeau. J'ai donc décidé de recompiler les outils...&lt;br /&gt;
&lt;br /&gt;
Pré-requis:&lt;br /&gt;
 # apt-get install vlan dietlibc dietlibc-dev e2fslibs-dev beecrypt2 beecrypt2-dev &lt;br /&gt;
&lt;br /&gt;
Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/:&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz&lt;br /&gt;
 $ tar xzf util-vserver-0.30.209.tar.gz&lt;br /&gt;
&lt;br /&gt;
Configuration: nous n'allons pas installer le paquet aux endroits habituels:&lt;br /&gt;
* L'ensembles des programmes et librairies sous ''/usr/local/vserver'' pour ne pas mélanger avec d'autres paquets&lt;br /&gt;
* Les serveurs virtuels irons dan /home/vservers&lt;br /&gt;
&lt;br /&gt;
 $ cd util-vserver-0.30.209&lt;br /&gt;
 $ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc&lt;br /&gt;
 [...]&lt;br /&gt;
 util-vserver 0.30.209&lt;br /&gt;
 &lt;br /&gt;
 Features:&lt;br /&gt;
                       CC: gcc, gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                      CXX: g++, g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                 CPPFLAGS: ''&lt;br /&gt;
                   CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W'&lt;br /&gt;
                 CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0'&lt;br /&gt;
               build/host: i686-pc-linux-gnu/i686-pc-linux-gnu&lt;br /&gt;
             Use dietlibc: yes&lt;br /&gt;
       Build C++ programs: yes&lt;br /&gt;
       Build C99 programs: yes&lt;br /&gt;
           Available APIs: compat,v11,v13,fscompat,net,oldproc,olduts&lt;br /&gt;
            ext2fs Source: e2fsprogs&lt;br /&gt;
    syscall(2) invocation: alternative&lt;br /&gt;
      vserver(2) syscall#: 273/glibc&lt;br /&gt;
 &lt;br /&gt;
 Paths:&lt;br /&gt;
                   prefix: /usr/local/vserver&lt;br /&gt;
        sysconf-Directory: /etc&lt;br /&gt;
            cfg-Directory: /etc/vservers&lt;br /&gt;
         initrd-Directory: $(sysconfdir)/init.d&lt;br /&gt;
       pkgstate-Directory: /var/run/vservers&lt;br /&gt;
          vserver-Rootdir: /home/vservers&lt;br /&gt;
&lt;br /&gt;
Compilation:&lt;br /&gt;
 $ make&lt;br /&gt;
 # make install&lt;br /&gt;
 # make install-distribution&lt;br /&gt;
&lt;br /&gt;
Post-install: s'assurer que ''/home/vservers'' est bien ''chroot barrier'' et mettre les permissions sur ''/proc''&lt;br /&gt;
 # /usr/local/vserver/sbin/setattr --barrier /home/vservers&lt;br /&gt;
 # /usr/local/vserver/lib/util-vserver/vprocunhide&lt;br /&gt;
&lt;br /&gt;
= Création d'un serveur virtuel =&lt;br /&gt;
&lt;br /&gt;
Il existe un package ''vserver-debiantools'' qui automatise la création de serveurs sous Debian, mais il est basé sur les ''anciennes'' fonctions de Linux-VServer. Nous ferons donc notre création ''à la main'', ce n'est pas compliqué!&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les choses, on va enregistrer les valeurs par défaut:&lt;br /&gt;
* Mirroir: ''/etc/vservers/.defaults/apps/debootstrap/mirror'' contient ''ftp://ftp.belnet.be/pub/debian''&lt;br /&gt;
 # mkdir -p /etc/vservers/.defaults/apps/debootstrap/&lt;br /&gt;
 # echo ftp://ftp.belnet.be/pub/debian &amp;gt; /etc/vservers/.defaults/apps/debootstrap/mirror&lt;br /&gt;
 # apt-get install debootstrap&lt;br /&gt;
&lt;br /&gt;
Creation du vserver:&lt;br /&gt;
 # PKG_EXCLUDE=&amp;quot;dhcp-client,fdutils,iptables,libpcap0.7,makedev,pciutils,ppp,pppconfig,pppoe,pppoeconf&amp;quot;&lt;br /&gt;
 # vserver alesia build \&lt;br /&gt;
 &amp;gt;  --hostname alesia.bulles-dsl \&lt;br /&gt;
 &amp;gt;  --interface eth0:172.16.34.44/26 \&lt;br /&gt;
 &amp;gt;  -m debootstrap -- -d sarge -- --exclude=${PKG_EXCLUDE}&lt;br /&gt;
'''Note''': J'ai utilisé ''debootstrap'' de ''testing'', pour éviter certain warnings&lt;br /&gt;
&lt;br /&gt;
Post-install: il faut se débarrasser de tout ce qui touche au hardware lors du boot.&lt;br /&gt;
 # vserver alesia start&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# NO_INIT=&amp;quot;makedev hwclock.sh urandom mountnfs.sh umountnfs.sh networking \&lt;br /&gt;
 &amp;gt;  ifupdown umountfs halt klogd reboot keymap.sh console-screen.sh checkroot.sh \ &lt;br /&gt;
 &amp;gt;  mountvirtfs procps.sh mountall.sh checkfs.sh ifupdown-clean hwclockfirst.sh modutils&amp;quot;&lt;br /&gt;
 alesia:/# for FILE in $NO_INIT&lt;br /&gt;
 &amp;gt; do&lt;br /&gt;
 &amp;gt;   update-rc.d -f $FILE remove&lt;br /&gt;
 &amp;gt; done&lt;br /&gt;
&lt;br /&gt;
Les packages installés par ''debootstrap'' sont vraiment le minimum. Le plus simple est d'exécuter ''base-config''.&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# base-config new&lt;br /&gt;
'''Note''': Il semble que ''debootstrap'' utilise ''testing'' pour ses packages!&lt;br /&gt;
&lt;br /&gt;
= Accès réseau =&lt;br /&gt;
La plupart des services réseau font un ''bind'' sur l'ensembles des interfaces réseau disponibles. Il faut s'assurer que l'hôte et les serveurs virtuels n'écoutent que sur leurs IP respectives.&lt;br /&gt;
&lt;br /&gt;
Par exemple pour SSH, dans ''/etc/ssh/sshd_config''&lt;br /&gt;
 ListenAddress  172.16.34.44&lt;br /&gt;
&lt;br /&gt;
= Démarrage au boot =&lt;br /&gt;
Les scripts de démarrage:&lt;br /&gt;
 # update-rc.d vprocunhide defaults 90 10&lt;br /&gt;
 # update-rc.d vservers-default defaults 91 09&lt;br /&gt;
&lt;br /&gt;
Pour qu'un VServer démarre au boot: mettre ''default'' dans ''/etc/vservers/&amp;lt;vserver&amp;gt;/apps/init/mark''&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
* Page du projet: http://linux-vserver.org/&lt;br /&gt;
* [http://www.5dollarwhitebox.org/wiki/index.php/Howtos_Linux-Vserver_Debian_Sarge Howtos Linux-Vserver Debian Sarge]&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-Step Guide 2.6]&lt;br /&gt;
* [http://www.13thfloor.at/vserver/s_rel26/v2.01/ Linux-VServer L26 Stable]&lt;br /&gt;
* [http://linux-vserver.org/alpha+util-vserver alpha util-vserver]&lt;br /&gt;
* [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Flower page]&lt;br /&gt;
* [http://www.13thfloor.at/old/VServer/HowTo_LVMQS.shtml  VS Secure Quota HowTo]&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1361</id>
		<title>Linux-VServer HowTo</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1361"/>
				<updated>2006-03-14T12:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Création d'un serveur virtuel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Linux-VServer sur une Debian Sarge / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Il y a déjà quelques HowTo's dans la place, le but ici n'est pas d'un ré-écrire un, mais plutot d'avoir un brain-dump de mon installation...&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Debian Sarge installé et à jour&lt;br /&gt;
&lt;br /&gt;
= Noyeau =&lt;br /&gt;
Il faut avoir un noyeau récent. Plutôt que d'opter pour un noyeau de kernel.org, j'ai utilisé les sources du dernier noyeau Debian dans unstable:&lt;br /&gt;
 $ apt-get install linux-source-2.6.14&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ tar xjf linux-source-2.6.14.tar.bz2&lt;br /&gt;
&lt;br /&gt;
J'ai aussi récupéré le fichier de configuration ''.config'' du package ''linux-image-2.6.14-2-686-smp'' pour avoir une base de configuration correcte.&lt;br /&gt;
 $ cd /tmp&lt;br /&gt;
 $ wget ftp://ftp.belnet.be/pub/debian/pool/main/l/linux-2.6/linux-image-2.6.14-2-686-smp_2.6.14-6_i386.deb&lt;br /&gt;
 $ ar xv linux-source-2.6.14.tar.bz2 data.tar.gz&lt;br /&gt;
 $ tar xzvf  data.tar.gz ./boot/config-2.6.14-2-686-smp&lt;br /&gt;
 $ cp boot/config-2.6.14-2-686-smp /usr/src/linux-source-2.6.14/.config&lt;br /&gt;
&lt;br /&gt;
On applique la dernière version stable des patches Linux-VServer sur http://www.13thfloor.at/vserver/s_rel26/v2.01/&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/patch-2.6.14.3-vs2.01.diff.bz2&lt;br /&gt;
 $ cd linux-source-2.6.14&lt;br /&gt;
 $ bzcat ../patch-2.6.14.3-vs2.01.diff.bz2 | patch -p1&lt;br /&gt;
&lt;br /&gt;
/!\ Le patch ne s'applique pas entièrement sur un noyeau Debian il faut patcher ''init/version.c'' à la main (trivial).&lt;br /&gt;
&lt;br /&gt;
On vérifie les paramètres de Linux-VServer:&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&lt;br /&gt;
La section Linux-VServer resemble à ceci:&lt;br /&gt;
 [*] Enable Legacy Kernel API&lt;br /&gt;
 [ ]   Show a Legacy Version ID&lt;br /&gt;
 [ ] Disable Legacy Networking Kernel API&lt;br /&gt;
 [*] Enable Proc Security&lt;br /&gt;
 [*] Enable Hard CPU Limits&lt;br /&gt;
 [ ]   Limit the IDLE task&lt;br /&gt;
     Persistent Inode Context Tagging (UID24/GID24)  ---&amp;gt;&lt;br /&gt;
 [ ] Tag NFSD User Auth and Files&lt;br /&gt;
 [ ] VServer Debugging Code&lt;br /&gt;
&lt;br /&gt;
Et dans la section ''Device Drivers'' / ''Block Devices'':&lt;br /&gt;
 &amp;lt;M&amp;gt; Virtual Root device support   &lt;br /&gt;
&lt;br /&gt;
Génération d'un noyeau Debian:&lt;br /&gt;
 $ fakeroot make-kpkg \&lt;br /&gt;
   --revision 2.6.14.vs201 \&lt;br /&gt;
   --append_to_version -1-vs2.0.1-686-smp \&lt;br /&gt;
   --us --uc \&lt;br /&gt;
   --rootcmd fakeroot \&lt;br /&gt;
   --initrd \&lt;br /&gt;
   kernel_image kernel_headers&lt;br /&gt;
&lt;br /&gt;
Et finalement installation:&lt;br /&gt;
 # dpkg -i /usr/src/kernel-image-2.6.14-1-vs2.0.1-686-smp_2.6.14.vs201_i386.deb&lt;br /&gt;
&lt;br /&gt;
= Outils =&lt;br /&gt;
Je n'ai pas eu trop de succès avec ''util-vserver'' de la version stable, le problème venant plus que probablement des chois pris lors de la compilation du noyeau. J'ai donc décidé de recompiler les outils...&lt;br /&gt;
&lt;br /&gt;
Pré-requis:&lt;br /&gt;
 # apt-get install vlan dietlibc dietlibc-dev e2fslibs-dev beecrypt2 beecrypt2-dev &lt;br /&gt;
&lt;br /&gt;
Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/:&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz&lt;br /&gt;
 $ tar xzf util-vserver-0.30.209.tar.gz&lt;br /&gt;
&lt;br /&gt;
Configuration: nous n'allons pas installer le paquet aux endroits habituels:&lt;br /&gt;
* L'ensembles des programmes et librairies sous ''/usr/local/vserver'' pour ne pas mélanger avec d'autres paquets&lt;br /&gt;
* Les serveurs virtuels irons dan /home/vservers&lt;br /&gt;
&lt;br /&gt;
 $ cd util-vserver-0.30.209&lt;br /&gt;
 $ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc&lt;br /&gt;
 [...]&lt;br /&gt;
 util-vserver 0.30.209&lt;br /&gt;
 &lt;br /&gt;
 Features:&lt;br /&gt;
                       CC: gcc, gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                      CXX: g++, g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                 CPPFLAGS: ''&lt;br /&gt;
                   CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W'&lt;br /&gt;
                 CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0'&lt;br /&gt;
               build/host: i686-pc-linux-gnu/i686-pc-linux-gnu&lt;br /&gt;
             Use dietlibc: yes&lt;br /&gt;
       Build C++ programs: yes&lt;br /&gt;
       Build C99 programs: yes&lt;br /&gt;
           Available APIs: compat,v11,v13,fscompat,net,oldproc,olduts&lt;br /&gt;
            ext2fs Source: e2fsprogs&lt;br /&gt;
    syscall(2) invocation: alternative&lt;br /&gt;
      vserver(2) syscall#: 273/glibc&lt;br /&gt;
 &lt;br /&gt;
 Paths:&lt;br /&gt;
                   prefix: /usr/local/vserver&lt;br /&gt;
        sysconf-Directory: /etc&lt;br /&gt;
            cfg-Directory: /etc/vservers&lt;br /&gt;
         initrd-Directory: $(sysconfdir)/init.d&lt;br /&gt;
       pkgstate-Directory: /var/run/vservers&lt;br /&gt;
          vserver-Rootdir: /home/vservers&lt;br /&gt;
&lt;br /&gt;
Compilation:&lt;br /&gt;
 $ make&lt;br /&gt;
 # make install&lt;br /&gt;
 # make install-distribution&lt;br /&gt;
&lt;br /&gt;
Post-install: s'assurer que ''/home/vservers'' est bien ''chroot barrier'' et mettre les permissions sur ''/proc''&lt;br /&gt;
 # /usr/local/vserver/sbin/setattr --barrier /home/vservers&lt;br /&gt;
 # /usr/local/vserver/lib/util-vserver/vprocunhide&lt;br /&gt;
&lt;br /&gt;
= Création d'un serveur virtuel =&lt;br /&gt;
&lt;br /&gt;
Il existe un package ''vserver-debiantools'' qui automatise la création de serveurs sous Debian, mais il est basé sur les ''anciennes'' fonctions de Linux-VServer. Nous ferons donc notre création ''à la main'', ce n'est pas compliqué!&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les choses, on va enregistrer les valeurs par défaut:&lt;br /&gt;
* Mirroir: ''/etc/vservers/.defaults/apps/debootstrap/mirror'' contient ''ftp://ftp.belnet.be/pub/debian''&lt;br /&gt;
 # mkdir -p /etc/vservers/.defaults/apps/debootstrap/&lt;br /&gt;
 # echo ftp://ftp.belnet.be/pub/debian &amp;gt; /etc/vservers/.defaults/apps/debootstrap/mirror&lt;br /&gt;
&lt;br /&gt;
Creation du vserver:&lt;br /&gt;
 # PKG_EXCLUDE=&amp;quot;dhcp-client,fdutils,iptables,libpcap0.7,makedev,pciutils,ppp,pppconfig,pppoe,pppoeconf&amp;quot;&lt;br /&gt;
 # vserver alesia build \&lt;br /&gt;
 &amp;gt;  --hostname alesia.bulles-dsl \&lt;br /&gt;
 &amp;gt;  --interface eth0:172.16.34.44/26 \&lt;br /&gt;
 &amp;gt;  -m debootstrap -- -d sarge -- --exclude=${PKG_EXCLUDE}&lt;br /&gt;
'''Note''': J'ai utilisé ''debootstrap'' de ''testing'', pour éviter certain warnings&lt;br /&gt;
&lt;br /&gt;
Post-install: il faut se débarrasser de tout ce qui touche au hardware lors du boot.&lt;br /&gt;
 # vserver alesia start&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# NO_INIT=&amp;quot;makedev hwclock.sh urandom mountnfs.sh umountnfs.sh networking \&lt;br /&gt;
 &amp;gt;  ifupdown umountfs halt klogd reboot keymap.sh console-screen.sh checkroot.sh \ &lt;br /&gt;
 &amp;gt;  mountvirtfs procps.sh mountall.sh checkfs.sh ifupdown-clean hwclockfirst.sh modutils&amp;quot;&lt;br /&gt;
 alesia:/# for FILE in $NO_INIT&lt;br /&gt;
 &amp;gt; do&lt;br /&gt;
 &amp;gt;   update-rc.d -f $FILE remove&lt;br /&gt;
 &amp;gt; done&lt;br /&gt;
&lt;br /&gt;
Les packages installés par ''debootstrap'' sont vraiment le minimum. Le plus simple est d'exécuter ''base-config''.&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# base-config new&lt;br /&gt;
'''Note''': Il semble que ''debootstrap'' utilise ''testing'' pour ses packages!&lt;br /&gt;
&lt;br /&gt;
= Accès réseau =&lt;br /&gt;
La plupart des services réseau font un ''bind'' sur l'ensembles des interfaces réseau disponibles. Il faut s'assurer que l'hôte et les serveurs virtuels n'écoutent que sur leurs IP respectives.&lt;br /&gt;
&lt;br /&gt;
Par exemple pour SSH, dans ''/etc/ssh/sshd_config''&lt;br /&gt;
 ListenAddress  172.16.34.44&lt;br /&gt;
&lt;br /&gt;
= Démarrage au boot =&lt;br /&gt;
Les scripts de démarrage:&lt;br /&gt;
 # update-rc.d vprocunhide defaults 90 10&lt;br /&gt;
 # update-rc.d vservers-default defaults 91 09&lt;br /&gt;
&lt;br /&gt;
Pour qu'un VServer démarre au boot: mettre ''default'' dans ''/etc/vservers/&amp;lt;vserver&amp;gt;/apps/init/mark''&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
* Page du projet: http://linux-vserver.org/&lt;br /&gt;
* [http://www.5dollarwhitebox.org/wiki/index.php/Howtos_Linux-Vserver_Debian_Sarge Howtos Linux-Vserver Debian Sarge]&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-Step Guide 2.6]&lt;br /&gt;
* [http://www.13thfloor.at/vserver/s_rel26/v2.01/ Linux-VServer L26 Stable]&lt;br /&gt;
* [http://linux-vserver.org/alpha+util-vserver alpha util-vserver]&lt;br /&gt;
* [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Flower page]&lt;br /&gt;
* [http://www.13thfloor.at/old/VServer/HowTo_LVMQS.shtml  VS Secure Quota HowTo]&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	<entry>
		<id>http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1360</id>
		<title>Linux-VServer HowTo</title>
		<link rel="alternate" type="text/html" href="http://wiki.e-bulles.be/b/index.php?title=Linux-VServer_HowTo&amp;diff=1360"/>
				<updated>2006-03-14T12:22:11Z</updated>
		
		<summary type="html">&lt;p&gt;Francois : /* Outils */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes sur l'installation de Linux-VServer sur une Debian Sarge / Linux 2.6&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Il y a déjà quelques HowTo's dans la place, le but ici n'est pas d'un ré-écrire un, mais plutot d'avoir un brain-dump de mon installation...&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Debian Sarge installé et à jour&lt;br /&gt;
&lt;br /&gt;
= Noyeau =&lt;br /&gt;
Il faut avoir un noyeau récent. Plutôt que d'opter pour un noyeau de kernel.org, j'ai utilisé les sources du dernier noyeau Debian dans unstable:&lt;br /&gt;
 $ apt-get install linux-source-2.6.14&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ tar xjf linux-source-2.6.14.tar.bz2&lt;br /&gt;
&lt;br /&gt;
J'ai aussi récupéré le fichier de configuration ''.config'' du package ''linux-image-2.6.14-2-686-smp'' pour avoir une base de configuration correcte.&lt;br /&gt;
 $ cd /tmp&lt;br /&gt;
 $ wget ftp://ftp.belnet.be/pub/debian/pool/main/l/linux-2.6/linux-image-2.6.14-2-686-smp_2.6.14-6_i386.deb&lt;br /&gt;
 $ ar xv linux-source-2.6.14.tar.bz2 data.tar.gz&lt;br /&gt;
 $ tar xzvf  data.tar.gz ./boot/config-2.6.14-2-686-smp&lt;br /&gt;
 $ cp boot/config-2.6.14-2-686-smp /usr/src/linux-source-2.6.14/.config&lt;br /&gt;
&lt;br /&gt;
On applique la dernière version stable des patches Linux-VServer sur http://www.13thfloor.at/vserver/s_rel26/v2.01/&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/patch-2.6.14.3-vs2.01.diff.bz2&lt;br /&gt;
 $ cd linux-source-2.6.14&lt;br /&gt;
 $ bzcat ../patch-2.6.14.3-vs2.01.diff.bz2 | patch -p1&lt;br /&gt;
&lt;br /&gt;
/!\ Le patch ne s'applique pas entièrement sur un noyeau Debian il faut patcher ''init/version.c'' à la main (trivial).&lt;br /&gt;
&lt;br /&gt;
On vérifie les paramètres de Linux-VServer:&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&lt;br /&gt;
La section Linux-VServer resemble à ceci:&lt;br /&gt;
 [*] Enable Legacy Kernel API&lt;br /&gt;
 [ ]   Show a Legacy Version ID&lt;br /&gt;
 [ ] Disable Legacy Networking Kernel API&lt;br /&gt;
 [*] Enable Proc Security&lt;br /&gt;
 [*] Enable Hard CPU Limits&lt;br /&gt;
 [ ]   Limit the IDLE task&lt;br /&gt;
     Persistent Inode Context Tagging (UID24/GID24)  ---&amp;gt;&lt;br /&gt;
 [ ] Tag NFSD User Auth and Files&lt;br /&gt;
 [ ] VServer Debugging Code&lt;br /&gt;
&lt;br /&gt;
Et dans la section ''Device Drivers'' / ''Block Devices'':&lt;br /&gt;
 &amp;lt;M&amp;gt; Virtual Root device support   &lt;br /&gt;
&lt;br /&gt;
Génération d'un noyeau Debian:&lt;br /&gt;
 $ fakeroot make-kpkg \&lt;br /&gt;
   --revision 2.6.14.vs201 \&lt;br /&gt;
   --append_to_version -1-vs2.0.1-686-smp \&lt;br /&gt;
   --us --uc \&lt;br /&gt;
   --rootcmd fakeroot \&lt;br /&gt;
   --initrd \&lt;br /&gt;
   kernel_image kernel_headers&lt;br /&gt;
&lt;br /&gt;
Et finalement installation:&lt;br /&gt;
 # dpkg -i /usr/src/kernel-image-2.6.14-1-vs2.0.1-686-smp_2.6.14.vs201_i386.deb&lt;br /&gt;
&lt;br /&gt;
= Outils =&lt;br /&gt;
Je n'ai pas eu trop de succès avec ''util-vserver'' de la version stable, le problème venant plus que probablement des chois pris lors de la compilation du noyeau. J'ai donc décidé de recompiler les outils...&lt;br /&gt;
&lt;br /&gt;
Pré-requis:&lt;br /&gt;
 # apt-get install vlan dietlibc dietlibc-dev e2fslibs-dev beecrypt2 beecrypt2-dev &lt;br /&gt;
&lt;br /&gt;
Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/:&lt;br /&gt;
 $ cd /usr/src&lt;br /&gt;
 $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz&lt;br /&gt;
 $ tar xzf util-vserver-0.30.209.tar.gz&lt;br /&gt;
&lt;br /&gt;
Configuration: nous n'allons pas installer le paquet aux endroits habituels:&lt;br /&gt;
* L'ensembles des programmes et librairies sous ''/usr/local/vserver'' pour ne pas mélanger avec d'autres paquets&lt;br /&gt;
* Les serveurs virtuels irons dan /home/vservers&lt;br /&gt;
&lt;br /&gt;
 $ cd util-vserver-0.30.209&lt;br /&gt;
 $ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc&lt;br /&gt;
 [...]&lt;br /&gt;
 util-vserver 0.30.209&lt;br /&gt;
 &lt;br /&gt;
 Features:&lt;br /&gt;
                       CC: gcc, gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                      CXX: g++, g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)&lt;br /&gt;
                 CPPFLAGS: ''&lt;br /&gt;
                   CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W'&lt;br /&gt;
                 CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0'&lt;br /&gt;
               build/host: i686-pc-linux-gnu/i686-pc-linux-gnu&lt;br /&gt;
             Use dietlibc: yes&lt;br /&gt;
       Build C++ programs: yes&lt;br /&gt;
       Build C99 programs: yes&lt;br /&gt;
           Available APIs: compat,v11,v13,fscompat,net,oldproc,olduts&lt;br /&gt;
            ext2fs Source: e2fsprogs&lt;br /&gt;
    syscall(2) invocation: alternative&lt;br /&gt;
      vserver(2) syscall#: 273/glibc&lt;br /&gt;
 &lt;br /&gt;
 Paths:&lt;br /&gt;
                   prefix: /usr/local/vserver&lt;br /&gt;
        sysconf-Directory: /etc&lt;br /&gt;
            cfg-Directory: /etc/vservers&lt;br /&gt;
         initrd-Directory: $(sysconfdir)/init.d&lt;br /&gt;
       pkgstate-Directory: /var/run/vservers&lt;br /&gt;
          vserver-Rootdir: /home/vservers&lt;br /&gt;
&lt;br /&gt;
Compilation:&lt;br /&gt;
 $ make&lt;br /&gt;
 # make install&lt;br /&gt;
 # make install-distribution&lt;br /&gt;
&lt;br /&gt;
Post-install: s'assurer que ''/home/vservers'' est bien ''chroot barrier'' et mettre les permissions sur ''/proc''&lt;br /&gt;
 # /usr/local/vserver/sbin/setattr --barrier /home/vservers&lt;br /&gt;
 # /usr/local/vserver/lib/util-vserver/vprocunhide&lt;br /&gt;
&lt;br /&gt;
= Création d'un serveur virtuel =&lt;br /&gt;
&lt;br /&gt;
Il existe un package ''vserver-debiantools'' qui automatise la création de serveurs sous Debian, mais il est basé sur les ''anciennes'' fonctions de Linux-VServer. Nous ferons donc notre création ''à la main'', ce n'est pas compliqué!&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les choses, on va enregistrer les valeurs par défaut:&lt;br /&gt;
* Mirroir: ''/etc/vservers/.defaults/apps/debootstrap/mirror'' contient ''ftp://ftp.belnet.be/pub/debian''&lt;br /&gt;
&lt;br /&gt;
Creation du vserver:&lt;br /&gt;
 # PKG_EXCLUDE=&amp;quot;dhcp-client,fdutils,iptables,libpcap0.7,makedev,pciutils,ppp,pppconfig,pppoe,pppoeconf&amp;quot;&lt;br /&gt;
 # vserver alesia build \&lt;br /&gt;
 &amp;gt;  --hostname alesia.bulles-dsl \&lt;br /&gt;
 &amp;gt;  --interface eth0:172.16.34.44/26 \&lt;br /&gt;
 &amp;gt;  -m debootstrap -- -d sarge -- --exclude=${PKG_EXCLUDE}&lt;br /&gt;
'''Note''': J'ai utilisé ''debootstrap'' de ''testing'', pour éviter certain warnings&lt;br /&gt;
&lt;br /&gt;
Post-install: il faut se débarrasser de tout ce qui touche au hardware lors du boot.&lt;br /&gt;
 # vserver alesia start&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# NO_INIT=&amp;quot;makedev hwclock.sh urandom mountnfs.sh umountnfs.sh networking \&lt;br /&gt;
 &amp;gt;  ifupdown umountfs halt klogd reboot keymap.sh console-screen.sh checkroot.sh \ &lt;br /&gt;
 &amp;gt;  mountvirtfs procps.sh mountall.sh checkfs.sh ifupdown-clean hwclockfirst.sh modutils&amp;quot;&lt;br /&gt;
 alesia:/# for FILE in $NO_INIT&lt;br /&gt;
 &amp;gt; do&lt;br /&gt;
 &amp;gt;   update-rc.d -f $FILE remove&lt;br /&gt;
 &amp;gt; done&lt;br /&gt;
&lt;br /&gt;
Les packages installés par ''debootstrap'' sont vraiment le minimum. Le plus simple est d'exécuter ''base-config''.&lt;br /&gt;
 # vserver alesia enter&lt;br /&gt;
 alesia:/# LANG=C&lt;br /&gt;
 alesia:/# base-config new&lt;br /&gt;
'''Note''': Il semble que ''debootstrap'' utilise ''testing'' pour ses packages!&lt;br /&gt;
&lt;br /&gt;
= Accès réseau =&lt;br /&gt;
La plupart des services réseau font un ''bind'' sur l'ensembles des interfaces réseau disponibles. Il faut s'assurer que l'hôte et les serveurs virtuels n'écoutent que sur leurs IP respectives.&lt;br /&gt;
&lt;br /&gt;
Par exemple pour SSH, dans ''/etc/ssh/sshd_config''&lt;br /&gt;
 ListenAddress  172.16.34.44&lt;br /&gt;
&lt;br /&gt;
= Démarrage au boot =&lt;br /&gt;
Les scripts de démarrage:&lt;br /&gt;
 # update-rc.d vprocunhide defaults 90 10&lt;br /&gt;
 # update-rc.d vservers-default defaults 91 09&lt;br /&gt;
&lt;br /&gt;
Pour qu'un VServer démarre au boot: mettre ''default'' dans ''/etc/vservers/&amp;lt;vserver&amp;gt;/apps/init/mark''&lt;br /&gt;
&lt;br /&gt;
= Liens =&lt;br /&gt;
* Page du projet: http://linux-vserver.org/&lt;br /&gt;
* [http://www.5dollarwhitebox.org/wiki/index.php/Howtos_Linux-Vserver_Debian_Sarge Howtos Linux-Vserver Debian Sarge]&lt;br /&gt;
* [http://linux-vserver.org/Step-by-Step+Guide+2.6 Step-by-Step Guide 2.6]&lt;br /&gt;
* [http://www.13thfloor.at/vserver/s_rel26/v2.01/ Linux-VServer L26 Stable]&lt;br /&gt;
* [http://linux-vserver.org/alpha+util-vserver alpha util-vserver]&lt;br /&gt;
* [http://www.nongnu.org/util-vserver/doc/conf/configuration.html Flower page]&lt;br /&gt;
* [http://www.13thfloor.at/old/VServer/HowTo_LVMQS.shtml  VS Secure Quota HowTo]&lt;/div&gt;</summary>
		<author><name>Francois</name></author>	</entry>

	</feed>