<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Another Home Page Blog - Xen</title><link href="https://blog.anotherhomepage.org/" rel="alternate"></link><link href="https://blog.anotherhomepage.org/feed/tag/Xen/atom" rel="self"></link><id>https://blog.anotherhomepage.org/</id><updated>2017-12-15T11:55:00+01:00</updated><entry><title>NetBSD : recompilation d'un noyau pour intégrer NPF dans un domU</title><link href="https://blog.anotherhomepage.org/post/2017/12/15/netbsd-recompilation-noyau-npf-domu/" rel="alternate"></link><published>2017-12-15T11:55:00+01:00</published><updated>2017-12-15T11:55:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2017-12-15:/post/2017/12/15/netbsd-recompilation-noyau-npf-domu/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;Porsche 911 GT3 RS&amp;quot;" src="https://blog.anotherhomepage.org/public/gt3rs.jpg"&gt;Dans &lt;a href="/post/xen-installation-domu-netbsd"&gt;un billet précédent&lt;/a&gt;, j'abordais l'installation d'une machine virtuelle Xen NetBSD en mode paravirtuel.NetBSD, comme Linux, dispose en plus d'un noyau, de modules permettant d'étendre ses fonctionnalités. Ainsi, l'une des briques de pare-feu de NetBSD, NPF, est disponible sous forme de module. Le problème avec ce module, c'est qu'il …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;Porsche 911 GT3 RS&amp;quot;" src="https://blog.anotherhomepage.org/public/gt3rs.jpg"&gt;Dans &lt;a href="/post/xen-installation-domu-netbsd"&gt;un billet précédent&lt;/a&gt;, j'abordais l'installation d'une machine virtuelle Xen NetBSD en mode paravirtuel.NetBSD, comme Linux, dispose en plus d'un noyau, de modules permettant d'étendre ses fonctionnalités. Ainsi, l'une des briques de pare-feu de NetBSD, NPF, est disponible sous forme de module. Le problème avec ce module, c'est qu'il n'est pas compatible avec un noyau domU. Il est donc nécessaire de recompiler un noyau NetBSD pour en profiter, en incluant le pilote NPF directement dedans plutôt qu'en module.&lt;/p&gt;
&lt;h3&gt;Récupération des sources&lt;/h3&gt;
&lt;p&gt;Recompiler un noyau NetBSD est assez facile. D'abord, je récupère les sources, ici celles de NetBSD 7.1 :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;nils@shell2:/srv$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;CVSROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;anoncvs@anoncvs.NetBSD.org:/cvsroot&amp;quot;&lt;/span&gt;
nils@shell2:/srv$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;CVS_RSH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ssh&amp;quot;&lt;/span&gt;
nils@shell2:/srv$&lt;span class="w"&gt; &lt;/span&gt;cvs&lt;span class="w"&gt; &lt;/span&gt;checkout&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;netbsd-7-1-RELEASE&lt;span class="w"&gt; &lt;/span&gt;-P&lt;span class="w"&gt; &lt;/span&gt;src
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La &lt;a href="https://www.netbsd.org/docs/guide/en/chap-build.html#chap-boot-cross-build-kernel" title="&amp;quot;NetBSD"&gt;documentation officielle&lt;/a&gt; le fait dans &lt;em&gt;/usr/src&lt;/em&gt;, mais je le fais dans &lt;em&gt;/srv/src&lt;/em&gt;, cela ne pose pas de problème.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez recompiler un système complet (et pas juste le noyau), il faudra aussi récupérer xsrc, ce que je ne ferai pas ici.&lt;/p&gt;
&lt;h3&gt;Création d'une configuration noyau personnalisée&lt;/h3&gt;
&lt;p&gt;Maintenant que les sources sont disponibles, je crée un fichier de configuration pour notre nouveau noyau. Pour cela pas besoin de repartir de zéro, je vais tout simplement copier un fichier existant, et ajouter l'option qui m'intéresse. A noter que les configurations de noyau pour NetBSD sont placées dans les sous-arborescences des différentes architectures. Dans mon cas, mes machines virtuelles sont en x86_64, ce qui correspond à amd64 côté NetBSD :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;nils@shell2:/srv$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;src
nils@shell2:/srv/src$&lt;span class="w"&gt; &lt;/span&gt;sys/arch/amd64/conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Le fichier de configuration du noyau utilisé par défaut est &lt;em&gt;GENERIC&lt;/em&gt;, et il en existe aussi un spécialisé pour un invté Xen : &lt;em&gt;XEN3_DOMU&lt;/em&gt;. Je vais copier ce dernier au lieu de le modifier pour facilement différencier ma configuration de l'officielle :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;nils@shell2:/srv/src/sys/arch/amd64/conf$&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;-vp&lt;span class="w"&gt; &lt;/span&gt;XEN3_DOMU&lt;span class="w"&gt; &lt;/span&gt;XEN3_DOMU_NPF
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Je peux ensuite éditer mon nouveau fichier, et aller chercher cette ligne :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#pseudo-device  npf                     # NPF packet filter
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il suffit alors de commenter cette ligne, et de sauvegarder le fichier. Passons maintenant à la compilation en elle-même.&lt;/p&gt;
&lt;h3&gt;Compilation du noyau NetBSD personnalisé&lt;/h3&gt;
&lt;p&gt;La compilation d'un noyau NetBSD peut se faire de deux manières : manuellement ou via l'aide d'un script nommé build.sh. Ce script est capable, depuis n'importe quel OS compatible, de créer très simplement non seulement un noyau, mais aussi une release complète de NetBSD. Ce script est fourni dans les sources, et se trouve d'ailleurs à la racine.&lt;/p&gt;
&lt;p&gt;D'abord, compilons les outils nécessaires :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;nils@shell2:/srv/src/sys/arch/amd64/conf$
nils@shell2:/srv/src$&lt;span class="w"&gt; &lt;/span&gt;./build.sh&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;amd64&lt;span class="w"&gt; &lt;/span&gt;tools
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Autre détail intéressant, et c'est aussi la raison de la présence de l'option &lt;em&gt;-U&lt;/em&gt; dans la commande précédente, je n'ai pas besoin d'être root pour ces opérations :)Passons donc à la compilation du noyau à proprement parler :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;nils@shell2:/srv/src$&lt;span class="w"&gt; &lt;/span&gt;./build.sh&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;amd64&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;kernel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;XEN3_DOMU_NPF
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Selon la puissance de la machine, quelques minutes plus tard un résultat similaire au suivant devrait apparaître :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;===&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;Kernels&lt;span class="w"&gt; &lt;/span&gt;built&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;XEN3_DOMU_NPF:
&lt;span class="w"&gt;  &lt;/span&gt;/srv/src/sys/arch/amd64/compile/obj/XEN3_DOMU_NPF/netbsd
&lt;span class="o"&gt;===&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;build.sh&lt;span class="w"&gt; &lt;/span&gt;ended:&lt;span class="w"&gt;      &lt;/span&gt;Sun&lt;span class="w"&gt; &lt;/span&gt;Jun&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;20&lt;/span&gt;:29:39&lt;span class="w"&gt; &lt;/span&gt;CEST&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;2017&lt;/span&gt;
&lt;span class="o"&gt;===&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;Summary&lt;span class="w"&gt; &lt;/span&gt;of&lt;span class="w"&gt; &lt;/span&gt;results:
&lt;span class="w"&gt;         &lt;/span&gt;build.sh&lt;span class="w"&gt; &lt;/span&gt;command:&lt;span class="w"&gt;    &lt;/span&gt;./build.sh&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;amd64&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;kernel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;XEN3_DOMU_NPF
&lt;span class="w"&gt;         &lt;/span&gt;build.sh&lt;span class="w"&gt; &lt;/span&gt;started:&lt;span class="w"&gt;    &lt;/span&gt;Sun&lt;span class="w"&gt; &lt;/span&gt;Jun&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;20&lt;/span&gt;:29:26&lt;span class="w"&gt; &lt;/span&gt;CEST&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2017&lt;/span&gt;
&lt;span class="w"&gt;         &lt;/span&gt;NetBSD&lt;span class="w"&gt; &lt;/span&gt;version:&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;.1
&lt;span class="w"&gt;         &lt;/span&gt;MACHINE:&lt;span class="w"&gt;             &lt;/span&gt;amd64
&lt;span class="w"&gt;         &lt;/span&gt;MACHINE_ARCH:&lt;span class="w"&gt;        &lt;/span&gt;x86_64
&lt;span class="w"&gt;         &lt;/span&gt;Build&lt;span class="w"&gt; &lt;/span&gt;platform:&lt;span class="w"&gt;      &lt;/span&gt;NetBSD&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;.1&lt;span class="w"&gt; &lt;/span&gt;amd64
&lt;span class="w"&gt;         &lt;/span&gt;HOST_SH:&lt;span class="w"&gt;             &lt;/span&gt;/bin/sh
&lt;span class="w"&gt;         &lt;/span&gt;MAKECONF&lt;span class="w"&gt; &lt;/span&gt;file:&lt;span class="w"&gt;       &lt;/span&gt;/etc/mk.conf
&lt;span class="w"&gt;         &lt;/span&gt;TOOLDIR&lt;span class="w"&gt; &lt;/span&gt;path:&lt;span class="w"&gt;        &lt;/span&gt;/srv/src/obj/tooldir.NetBSD-7.1-amd64
&lt;span class="w"&gt;         &lt;/span&gt;DESTDIR&lt;span class="w"&gt; &lt;/span&gt;path:&lt;span class="w"&gt;        &lt;/span&gt;/srv/src/obj/destdir.amd64
&lt;span class="w"&gt;         &lt;/span&gt;RELEASEDIR&lt;span class="w"&gt; &lt;/span&gt;path:&lt;span class="w"&gt;     &lt;/span&gt;/srv/src/obj/releasedir
&lt;span class="w"&gt;         &lt;/span&gt;Updated&lt;span class="w"&gt; &lt;/span&gt;makewrapper:&lt;span class="w"&gt; &lt;/span&gt;/srv/src/obj/tooldir.NetBSD-7.1-amd64/bin/nbmake-amd64
&lt;span class="w"&gt;         &lt;/span&gt;Building&lt;span class="w"&gt; &lt;/span&gt;kernel&lt;span class="w"&gt; &lt;/span&gt;without&lt;span class="w"&gt; &lt;/span&gt;building&lt;span class="w"&gt; &lt;/span&gt;new&lt;span class="w"&gt; &lt;/span&gt;tools
&lt;span class="w"&gt;         &lt;/span&gt;Building&lt;span class="w"&gt; &lt;/span&gt;kernel:&lt;span class="w"&gt;     &lt;/span&gt;XEN3_DOMU_NPF
&lt;span class="w"&gt;         &lt;/span&gt;Build&lt;span class="w"&gt; &lt;/span&gt;directory:&lt;span class="w"&gt;     &lt;/span&gt;/srv/src/sys/arch/amd64/compile/obj/XEN3_DOMU_NPF
&lt;span class="w"&gt;         &lt;/span&gt;Kernels&lt;span class="w"&gt; &lt;/span&gt;built&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;XEN3_DOMU_NPF:
&lt;span class="w"&gt;          &lt;/span&gt;/srv/src/sys/arch/amd64/compile/obj/XEN3_DOMU_NPF/netbsd
&lt;span class="w"&gt;         &lt;/span&gt;build.sh&lt;span class="w"&gt; &lt;/span&gt;ended:&lt;span class="w"&gt;      &lt;/span&gt;Sun&lt;span class="w"&gt; &lt;/span&gt;Jun&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;20&lt;/span&gt;:29:39&lt;span class="w"&gt; &lt;/span&gt;CEST&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;2017&lt;/span&gt;
&lt;span class="o"&gt;===&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il me suffit donc de copier le fichier &lt;em&gt;/srv/src/sys/arch/amd64/compile/obj/XEN3_DOMU_NPF/netbsd&lt;/em&gt; sur mon dom0 et de l'utiliser dans un fichier de configuration Xen pour un domU !&lt;/p&gt;
&lt;h3&gt;Et NPF alors ?&lt;/h3&gt;
&lt;p&gt;Une fois notre domU démarré à l'aide de ce noyau, il suffit de suivre la &lt;a href="https://www.netbsd.org/~rmind/npf/" title="&amp;quot;NPF"&gt;documentation de NPF&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux ! Si en plus vous avez des remarques, ou des propositions d'améliorations, n'hésitez pas : les commentaires sont là pour ça !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://www.flickr.com/photos/fokuzx2/14286976703/" title="&amp;quot;GT3"&gt;D - 15 photography - GT3 RS&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 15/12/2017 22:21 par &lt;a href="https://utux.fr"&gt;utux&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Oh, un autre utilisateur de NetBSD ^^
Avec iMil ça en fait deux répertoriés xD&lt;/p&gt;
&lt;h3&gt;Le 18/12/2017 19:21 par &lt;a href="https://mathieulubrano.com"&gt;Mathieu&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Bonjour&lt;/p&gt;
&lt;p&gt;Merci pour cet article ! Npf c'est utile par les temps qui courent, et ça change un peu d'iptables.&lt;/p&gt;
&lt;p&gt;Et en réponse à utux : les utilisateurs et admins NetBSD sont discrets, mais sympa et efficaces ;-)&lt;/p&gt;
&lt;p&gt;Cordialement
Mathieu&lt;/p&gt;
&lt;h3&gt;Le 19/12/2017 21:35 par Nils&lt;/h3&gt;
&lt;p&gt;@ utux : nous sommes encore plus nombreux sur IRC, #netbsdfr sur Freenode.&lt;/p&gt;
&lt;p&gt;@ Mathieu : merci du compliment :)&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="blogmas"></category><category term="blogmas17"></category><category term="blogmas2017"></category><category term="NetBSD"></category><category term="NPF"></category><category term="Xen"></category></entry><entry><title>Xen : installation d'un invité domU NetBSD</title><link href="https://blog.anotherhomepage.org/post/2017/05/09/xen-installation-domu-netbsd/" rel="alternate"></link><published>2017-05-09T09:00:00+02:00</published><updated>2017-05-09T09:00:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2017-05-09:/post/2017/05/09/xen-installation-domu-netbsd/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;the" src="https://blog.anotherhomepage.org/public/thehandler.jpg" title="&amp;quot;the"&gt;Dans &lt;a href="/post/xen-installation-dom0-netbsd"&gt;le billet précédent&lt;/a&gt;, j'ai abordé la création d'un hyperviseur Xen (dom0) NetBSD.Il est donc temps de s'occuper du système invité NetBSD, le domU.&lt;/p&gt;
&lt;h3&gt;Création du domU Xen&lt;/h3&gt;
&lt;p&gt;Pour créer notre domU, nous avons besoin de 3 éléments présents sur le dom0 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un fichier de disque dur (on pourrait …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;the" src="https://blog.anotherhomepage.org/public/thehandler.jpg" title="&amp;quot;the"&gt;Dans &lt;a href="/post/xen-installation-dom0-netbsd"&gt;le billet précédent&lt;/a&gt;, j'ai abordé la création d'un hyperviseur Xen (dom0) NetBSD.Il est donc temps de s'occuper du système invité NetBSD, le domU.&lt;/p&gt;
&lt;h3&gt;Création du domU Xen&lt;/h3&gt;
&lt;p&gt;Pour créer notre domU, nous avons besoin de 3 éléments présents sur le dom0 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un fichier de disque dur (on pourrait utiliser LVM ou une partition, mais cela est moins flexible) ;&lt;/li&gt;
&lt;li&gt;dans le cas de NetBSD, un fichier de noyau ;&lt;/li&gt;
&lt;li&gt;et un fichier de configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;D'abord, le fichier de disque dur. Pour le créer, il suffit d'utiliser la commande &lt;em&gt;dd&lt;/em&gt;. La taille de ce fichier déterminera la taille du disque dur de la machine virtuelle. Créons un fichier de 4 Go (4096 blocs d'1 Mo) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;zero&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;disk&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4096&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On peut remarquer que cet exemple remplit notre fichier de zéros, et ne crée pas de fichier sparse. Il semble que la gestion des fichiers sparse ne soit pas parfaite sous NetBSD, d'après le &lt;a href="https://wiki.netbsd.org/ports/xen/howto/" title=""&gt;tutoriel officiel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ensuite, récupérons les fichiers noyau :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mkdir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kernels&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;amd64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kernels&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;amd64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kernels&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;amd64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;cdn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;amd64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nc"&gt;binary&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kernel&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;INSTALL_XEN3_DOMU&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gz&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kernels&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;amd64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;cdn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;amd64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nc"&gt;binary&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kernel&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;XEN3_DOMU&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gz&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On récupère deux fichiers de noyau, car l'un d'entre eux ne sert que pour l'installation. Une fois celle-ci terminée, il faut penser à configurer notre domU avec le noyau "classique".&lt;/p&gt;
&lt;p&gt;Nous pouvons enfin créer notre fichier de configuration, &lt;em&gt;/usr/pkg/etc/xen/netbsd&lt;/em&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;grep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;grep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;
&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;netbsd&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;d0f3e8d3-2f54-11e7-b035-00301bbde894&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;kernel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;/srv/xen/images/kernels/NetBSD/NetBSD-7.1/amd64/netbsd-INSTALL_XEN3_DOMU.gz&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;
&lt;span class="n"&gt;vcpus&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;vif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt; &amp;#39;bridge=bridge0,mac=00:16:3E:00:00:02&amp;#39; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;disk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt; &amp;#39;/srv/xen/images/disk/netbsd.img,raw,xvda,rw&amp;#39; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Les directives du fichier de configuration sont assez explicites, néanmoins il convient de préciser certaines choses :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;d'abord, le nom de la machine virtuelle ("name") doit être unique ;&lt;/li&gt;
&lt;li&gt;et en passant, l'uuid aussi (généré via &lt;em&gt;uuidgen&lt;/em&gt;), mais il n'est pas obligatoire, la directive peut être vide ;&lt;/li&gt;
&lt;li&gt;la mémoire est spécifiée en méga-octets ;&lt;/li&gt;
&lt;li&gt;on peut spécifier plusieurs interfaces réseau ou disques durs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On peut ajouter bien d'autres options, mais il est préférable de commencer par un fichier simple, qui démarrera une machine en mode texte, avant d'aller plus loin.&lt;/p&gt;
&lt;p&gt;Maintenant que notre fichier de configuration est prêt, démarrons notre domU :&lt;/p&gt;
&lt;p&gt;````
root@rogue:/usr/pkg/etc/xen# xl create -c netbsd&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;L&amp;#39;option -c permet d&amp;#39;attacher la console locale de la machine virtuelle en mode texte, et donc de pouvoir interagir avec (pour, par exemple, effectuer une installation).

### Installation de NetBSD dans le domU

L&amp;#39;installation se passe de manière similaire à ce qui est [présenté dans le guide officiel](https://www.netbsd.org/docs/guide/en/chap-exinst.html &amp;quot;&amp;quot;NetBSD&amp;quot;), mais à une différence près : une fois l&amp;#39;installation terminée, il faut quitter l&amp;#39;installeur (au lieu de redémarrer), puis éteindre la machine virtuelle :
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h1&gt;shutdown -p now&lt;/h1&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;De retour dans le dom0, il faut alors changer le fichier de noyau pour un démarrage &amp;quot;classique&amp;quot; :
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;root@rogue:/usr/pkg/etc/xen# vi netbsd
kernel = "/srv/xen/images/kernels/NetBSD/NetBSD-7.1/amd64/netbsd-XEN3_DOMU.gz"&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;On peut ensuite démarrer notre machine virtuelle, dans l&amp;#39;exemple suivant sans attacher la console locale de celle-ci :
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;root@rogue:/usr/pkg/etc/xen# xl create netbsd
```&lt;/p&gt;
&lt;h3&gt;On est vraiment obligé de spécifier sur le noyau ?&lt;/h3&gt;
&lt;p&gt;Dans le domU d'exemple du billet précédent, le système OpenWrt était démarré grâce à pygrub, un chargeur de démarrage pour Xen. Celui-ci n'est hélas pas capable de lire le système de fichiers FFS utilisé par NetBSD. Cela n'est pas non plus possible pour pv-grub, qui n'est de toute façon pas disponible dans les paquets Xen pkgsrc.&lt;/p&gt;
&lt;p&gt;Quelles sont alors les possibilités ? La première consiste à créer une partition /boot en ext2/3/4 au début du disque virtuel, et d'y placer noyau et configuration Grub, comme l'indique &lt;a href="http://wiki.prgmr.com/mediawiki/index.php/NetBSD_as_a_DomU#Partitioning_for_pv-grub" title="&amp;quot;NetBSD"&gt;ce tutoriel&lt;/a&gt;. Une autre consiste à compiler soi-même une version de Grub2, qui semble maintenant gérer Xen, tout du moins d'après ce &lt;a href="https://blog.xenproject.org/2015/01/07/using-grub-2-as-a-bootloader-for-xen-pv-guests/" title="&amp;quot;Using"&gt;billet du blog officiel Xen&lt;/a&gt;, daté de janvier 2015.&lt;/p&gt;
&lt;h3&gt;Autres actions possibles&lt;/h3&gt;
&lt;p&gt;Démarrer sa machine virtuelle, c'est bien, pouvoir effectuer d'autres actions et vérifications, c'est mieux ! Voici donc, en vrac, quelques commandes utiles pour gérer ses domU :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;xl shutdown \&amp;lt;chemin vers le fichier de configuration&amp;gt;&lt;/em&gt; permet d'arrêter proprement celui-ci ;&lt;/li&gt;
&lt;li&gt;besoin d'appuyer sur le bouton Off comme un gros barbare ? &lt;em&gt;xl destroy \&amp;lt;nomdudomU&amp;gt;&lt;/em&gt; ;&lt;/li&gt;
&lt;li&gt;lister les domU en fonctionnement : &lt;em&gt;xl list&lt;/em&gt; ;&lt;/li&gt;
&lt;li&gt;et pour avoir cette liste en temps réel, présentée à la manière d'un &lt;em&gt;top&lt;/em&gt;, on peut utiliser &lt;em&gt;xl top&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;D'autres commandes et paramètres sont disponibles dans la page de manuel de la commande &lt;em&gt;xl&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux ! Si en plus vous avez des remarques, ou des propositions d'améliorations, n'hésitez pas : les commentaires sont là pour ça !&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo :&lt;/em&gt; &lt;a href="https://www.flickr.com/photos/cmustard/34064469610/in/photolist-TUaj2y-ajyqsY-4XMPYQ-4LCSFr-2wz6-6zQVu2-G36kR-oGVpNV-7BguV-4oXq8s-7kKgjh-3KdvKY-8nM4kw-S1W13y-aFogBm-7JNRuf-aE1mHJ-8Roq1t-MQEVs-eaW368-4UFV14-hRpNi-ps4yHK-7JJWbk-6eHd2K-7RjCRN-u5qc9-dKBGda-fCAKEu-duoNYJ-fE8FRp-4vTuc8-4XMNTG-b9et7R-9eFif6-9eJp2C-9eFiez-5Q7YTg-6to7X4-6pBDge-8RogFM-bmZ5X-dqPf7h-3pm8Lc-4WBHsG-7rnC8-c3i3zN-6Yko5-a7h1Wr-6eMmmw" title="&amp;quot;the"&gt;ColonelMustard - the handler&lt;/a&gt;''&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="NetBSD"></category><category term="Xen"></category></entry><entry><title>Xen : installation d'un hyperviseur dom0 NetBSD</title><link href="https://blog.anotherhomepage.org/post/2017/05/02/xen-installation-dom0-netbsd/" rel="alternate"></link><published>2017-05-02T12:00:00+02:00</published><updated>2017-05-02T12:00:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2017-05-02:/post/2017/05/02/xen-installation-dom0-netbsd/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;Army&amp;quot;" src="https://blog.anotherhomepage.org/public/army.jpg" title="&amp;quot;Army,"&gt;J'ai écrit dans le passé quelques billets concernant &lt;a href="/tag/Xen"&gt;Xen&lt;/a&gt;, mais jamais sur l'installation à proprement parler d'un hyperviseur Xen à base de NetBSD. Il est temps de réparer cela ! Mais avant de commencer, quelques rappels :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;en terminologie Xen, chaque système invité se nomme un "domaine" ;&lt;/li&gt;
&lt;li&gt;une machine virtuelle est un …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;Army&amp;quot;" src="https://blog.anotherhomepage.org/public/army.jpg" title="&amp;quot;Army,"&gt;J'ai écrit dans le passé quelques billets concernant &lt;a href="/tag/Xen"&gt;Xen&lt;/a&gt;, mais jamais sur l'installation à proprement parler d'un hyperviseur Xen à base de NetBSD. Il est temps de réparer cela ! Mais avant de commencer, quelques rappels :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;en terminologie Xen, chaque système invité se nomme un "domaine" ;&lt;/li&gt;
&lt;li&gt;une machine virtuelle est un domaines non-privilégié, en anglais "unprivileged domain", généralement raccourci en "domU" ;&lt;/li&gt;
&lt;li&gt;l'OS qui fait fonctionner l'hyperviseur est un domaine privilégié, en anglais "privileged domain", ce qui donne en raccourci "dom0".&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il s'agit donc de détailler l'installation et la configuration de Xen en tant que dom0 sur un système NetBSD amd64. Pour valider son bon fonctionnement, une installation rapide d'un domU OpenWrt sera effectuée à la fin.&lt;/p&gt;
&lt;p&gt;Mais avant de démarrer, voici quelques informations sur la configuration qui sera effectuée :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comme la machine physique ne dispose pas des instructions de virtualisation (Intel Atom 330), seul le mode "paravirtuel" sera abordé ;&lt;/li&gt;
&lt;li&gt;la machine physique se verra attribuer 256 Mo de RAM sur ses 2 Go pour son fonctionnement ;&lt;/li&gt;
&lt;li&gt;la configuration réseau sera en mode "bridge", le dom0 et les domU seront donc sur le même réseau.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Allons-y !&lt;/p&gt;
&lt;h3&gt;Installation et configuration de NetBSD&lt;/h3&gt;
&lt;p&gt;Commençons par l'installation du système d'exploitation : NetBSD 7.1 amd64. Il n'y a rien en particulier à signaler sur l'installation, cela dépend avant tout de son usage. Cette machine n'étant pas destinée à devenir un environnement de production, j'ai choisi un partitionnement minimal, à savoir juste un / qui prend tout le disque.&lt;/p&gt;
&lt;p&gt;A noter aussi qu'à ce moment, il n'y a besoin de rien en particulier concernant le noyau. J'ai pris l'habitude de ne pas installer les sets de compilation ou source sur une machine sauf si j'en ai expressément besoin. Donc, je me suis limité aux sets suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;base ;&lt;/li&gt;
&lt;li&gt;etc ;&lt;/li&gt;
&lt;li&gt;man ;&lt;/li&gt;
&lt;li&gt;misc ;&lt;/li&gt;
&lt;li&gt;modules ;&lt;/li&gt;
&lt;li&gt;tests ;&lt;/li&gt;
&lt;li&gt;text ;&lt;/li&gt;
&lt;li&gt;xbase.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Côté réseau, il sera sans doute plus simple de configurer une adresse IP statique. On va aussi dès maintenant configurer le bridge :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rogue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;#&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ifconfig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bridge0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="n"&gt;create&lt;/span&gt;
&lt;span class="s"&gt;!brconfig&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;$int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;re0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;up&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A noter que l'interface de la machine physique est re0, il convient de la modifier selon celle disponible. On va aussi autoriser la retransmission de paquets réseau :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sysctl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forwarding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ces modifications seront prises en compte au prochain démarrage du système, qu'il convient de faire dès maintenant.&lt;/p&gt;
&lt;p&gt;Pour les paquets logiciels, j'ai choisi d'utiliser mon propre dépôt pkgsrc de paquets binaires. Là aussi, rien d'exceptionnel, j'ai juste installé mon petit confort personnel. Il est néanmoins possible d'utiliser le dépôt binaire pkgsrc officiel (configuré lors de l'installation) ou d'utiliser pkgsrc depuis les sources.&lt;/p&gt;
&lt;h3&gt;Installation et configuration de Xen 4.6&lt;/h3&gt;
&lt;p&gt;Maintenant que notre système est installé et prêt, passons à l'installation de Xen. Rien de compliqué non plus à ce niveau, il suffit d'utiliser pkgin :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rogue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="c1"&gt;# pkgin in xenkernel46 xentools46&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Des messages seront affichés durant l'installation des différents paquets, montrant un certain nombre de messages de conseils et de recommandations.&lt;/p&gt;
&lt;p&gt;Pour que Xen fonctionne, il faut d'abord démarrer un noyau spécialisé qui chargera de lancer l'hyperviseur. Le noyau NetBSD dom0 est disponible à côté du noyau générique sur les dépôts :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;wget&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;cdn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NetBSD&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;amd64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nc"&gt;binary&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kernel&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;XEN3_DOM0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gz&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;XEN3_DOM0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Configurons maintenant le chargeur de démarrage. Il suffit d'insérer la ligne suivante au début du fichier /boot.cfg :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;menu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Xen&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;load&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;netbsd&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;XEN3_DOM0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;multiboot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen46&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;kernel&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dom0_mem&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Parmi les détails de cette ligne de configuration, on remarquera l'allocation de 256 Mo de mémoire vive pour le dom0.&lt;/p&gt;
&lt;p&gt;Par contre, si jamais le partitionnement prévoit un /usr séparé, il vaudra mieux copier /usr/pkg/xen46-kernel/xen.gz dans / et de remplacer les chemins en accord avec la nouvelle localisation du fichier. Une fois que le chargeur de démarrage est modifié, un redémarrage est nécessaire, mais juste avant on peut créer les fichiers spéciaux dans /dev :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MAKEDEV&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Maintenant on peut redémarrer :)&lt;/p&gt;
&lt;p&gt;Mais tout n'est pas encore prêt. Par exemple, le service xencommons doit être activé et démarré. On ajoute alors la ligne suivante au fichier /etc/rc.conf :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;xencommons=YES
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On peut ensuite lancer le service :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xencommons&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il y a encore un fichier de configuration à modifier avant de commencer à faire joujou avec nos machines (para-)virtuelles : /usr/pkg/etc/xl.conf. Je n'ai fait que deux modifications à ce fichier :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;grep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;grep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;
&lt;span class="n"&gt;vif&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;vif-bridge&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;vif&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bridge&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;bridge0&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il est temps d'effectuer rapidement un test de domU !&lt;/p&gt;
&lt;h3&gt;Test d'un domU OpenWrt&lt;/h3&gt;
&lt;p&gt;Un moyen de tester rapidement le fonctionnement de son dom0 Xen est d'utiliser un domU OpenWrt : il s'agit en effet d'un OS léger, non seulement d'un point de vue processeur et mémoire, mais aussi d'un point de vue espace disque. Au moment de la rédaction de cet article, la dernière version stable d'OpenWrt est la 15.05.1 et porte le nom de &lt;em&gt;Chaos Calmer&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Deux éléments sont nécessaires : un fichier qui sera le disque dur de la machine virtuelle, et un fichier de configuration. Dans le premier cas c'est très simple, il suffit d'aller le récupérer sur le site d'OpenWrt, de le placer dans un répertoire, et de le décompresser :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rogue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="c1"&gt;# mkdir -p /srv/xen/images/disk&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rogue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="c1"&gt;# cd /srv/xen/images/disk&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;rogue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;disk&lt;/span&gt;&lt;span class="c1"&gt;# wget https://downloads.openwrt.org/latest/x86/xen_domu/openwrt-15.05.1-x86-xen_domu-combined-ext4.img.gzroot@rogue:/srv/xen/images/disk# zcat openwrt-15.05.1-x86-xen_domu-combined-ext4.img.gz &amp;gt; openwrt.img&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Continuons avec le fichier de configuration, basé sur un fichier d'exemple. Il doit se trouver dans /usr/pkg/etc/xen/, et se nomme tout simplement openwrt :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;openwrt&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;26824417-2dde-11e7-a2aa-00301bbde894&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;bootloader&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/usr/pkg/bin/pygrub&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;extra&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;root=/dev/xvda2 rw&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;
&lt;span class="n"&gt;vcpus&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;vif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bridge=bridge0,mac=00:16:3E:00:00:01&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;disk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/srv/xen/images/disk/openwrt.img,raw,xvda,rw&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Maintenant que tout cela est en place, il ne reste plus qu'à lancer la machine virtuelle :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@rogue&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;openwrt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Une fois OpenWrt démarré, il suffit alors d'appuyer sur la touche entrée pour activer la console locale. Côté tests, il faut vérifier le nombre de processeurs (dans /proc/cpuinfo, il doit n'y en avoir qu'un), ainsi que la quantité de mémoire vive (dans /proc/meminfo, ou via free -m, on doit avoir 128 Mo). Si un serveur DHCP est présent, on peut facilement tester le réseau via udhcpc :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@OpenWrt&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;udhcpc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;br&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lan&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On peut désormais vérifier que le réseau est bien connecté.&lt;/p&gt;
&lt;p&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux ! Si en plus vous avez des remarques, ou des propositions d'améliorations, n'hésitez pas : les commentaires sont là pour ça !&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://www.flickr.com/photos/marcosuk/2995294027/in/photolist-bEiYBV-5yjhGn-jn2zg-6XbeEt-6c5qwC-e7mGh-8xvUWD-4gNkcQ-gmq2dj-921mhJ-4yhA4x-9EVpBj-5qQcS4-uUVN8-wKonJq-5rpK3-8UayAc-qaQboF-4FKmj-n6r2qb-4AKCxg-4He9aP-5qUxvm-88ni6P-4tH4JW-bt4zbR-5yFEyt-7QLkdW-fgfozy-6kzPTG-8nqJ3b-8nqJzu-5qQcU8-5qQcYT-8nnCvX-9uniVc-cMA1Q-8nqLoQ-8nqM41-4DmsM3-AuZqQv-zxJvYj" title="&amp;quot;Colourful"&gt;Marcos Leal - Army&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 03/05/2017 14:35 par &lt;a href="https://utux.fr"&gt;utux&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;NetBSD ? Masochiste.&lt;/p&gt;
&lt;h3&gt;Le 03/05/2017 15:05 par Nils&lt;/h3&gt;
&lt;p&gt;Mais qu'est-ce que c'est bon ;-)&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="NetBSD"></category><category term="OpenWrt"></category><category term="Xen"></category></entry><entry><title>Utilisation de nombreux domU en backend fichiers sur un dom0 NetBSD</title><link href="https://blog.anotherhomepage.org/post/2011/06/30/Utilisation-de-nombreux-domU-en-backend-fichiers-sur-un-dom0-NetBSD/" rel="alternate"></link><published>2011-06-30T14:35:00+02:00</published><updated>2011-06-30T14:35:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2011-06-30:/post/2011/06/30/Utilisation-de-nombreux-domU-en-backend-fichiers-sur-un-dom0-NetBSD/</id><summary type="html">&lt;p&gt;Oui, j'utilise des machines virtuelles Xen dans des fichiers. Pas de partition, pas de LVM, non. Un bon vieux fichier qu'on peut effacer sans regrets une fois son domU "jetable" inutile. Pour utiliser ces fichiers, et pour monter des fichiers en tant que disque de manière générale, NetBSD utilise le …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Oui, j'utilise des machines virtuelles Xen dans des fichiers. Pas de partition, pas de LVM, non. Un bon vieux fichier qu'on peut effacer sans regrets une fois son domU "jetable" inutile. Pour utiliser ces fichiers, et pour monter des fichiers en tant que disque de manière générale, NetBSD utilise le pilote &lt;a href="http://netbsd.gw.com/cgi-bin/man-cgi?vnd+4.amd64+NetBSD-5.1"&gt;vnd (4)&lt;/a&gt;. Et par défaut, il y a 4 fichiers spéciaux vnd. Et lorsqu'on désire lancer 42 machines virtuelles en même temps, chacune ayant besoin d'un fichier vnd pour monter son disque dur, on obient une erreur du genre :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Device&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;51712&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;vbd&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;could&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;not&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;connected&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Hotplug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;scripts&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;not&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;working&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Alors on s'affole, on copie-colle le message dans un moteur de recherche bien connu, et on tombe sur &lt;a href="http://mail-index.netbsd.org/port-xen/2009/08/27/msg005320.html"&gt;ce genre de chose&lt;/a&gt; :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;How much /dev/vnd*d device do you have ? Maube you need to create more ?e.g.:cd /dev./MAKEDEV vnd4 vnd5 vnd6 vnd7 vnd8&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Donc on applique :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@arreat&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@arreat&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;MAKEDEV&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd7&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd11&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd12&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd14&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vnd15&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@arreat&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@arreat&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xen&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vmjetable1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vmkikoo2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;\\&lt;/span&gt;
&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vmpipeau3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vmdelire4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;encoreunevmjetable&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Maintenant, c'est la RAM qui va commencer à manquer... mais c'est un autre problème ;-)&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="NetBSD"></category><category term="Xen"></category></entry><entry><title>Installation d'un domU Xen Enterprise Linux sur un dom0 NetBSD</title><link href="https://blog.anotherhomepage.org/post/2011/06/20/Installation-d-un-domU-Xen-Enterprise-Linux-sur-un-dom0-NetBSD/" rel="alternate"></link><published>2011-06-20T09:30:00+02:00</published><updated>2011-06-20T09:30:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2011-06-20:/post/2011/06/20/Installation-d-un-domU-Xen-Enterprise-Linux-sur-un-dom0-NetBSD/</id><summary type="html">&lt;p&gt;Ces derniers temps je m'amuse à faire des installations par le réseau d'un peu tout et n'importe quoi. J'utilise principalement l'outil de virtualisation &lt;a href="www.virtualbox.org" title="VirtualBox"&gt;Oracle VirtualBox&lt;/a&gt;, mais il m'arrive aussi de faire joujou avec &lt;a href="http://www.xen.org" title="Xen"&gt;Xen&lt;/a&gt;. Avec un hôte (dom0) CentOS 5 (et sans doute toutes les distribution de type "Enterprise Linux …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ces derniers temps je m'amuse à faire des installations par le réseau d'un peu tout et n'importe quoi. J'utilise principalement l'outil de virtualisation &lt;a href="www.virtualbox.org" title="VirtualBox"&gt;Oracle VirtualBox&lt;/a&gt;, mais il m'arrive aussi de faire joujou avec &lt;a href="http://www.xen.org" title="Xen"&gt;Xen&lt;/a&gt;. Avec un hôte (dom0) CentOS 5 (et sans doute toutes les distribution de type "Enterprise Linux" telles que Red Hat Enterprise Linux ou Scientific Linux), il est très facile de créer d'autres machines virtuelles (domU) Xen de même type grâce à la commande "virt-install". Avec un dom0 NetBSD cependant, point de commande de ce type. Voyons donc comment faire.&lt;/p&gt;
&lt;p&gt;Sur un système Enterprise Linux 5, il est possible de trouver une image de noyau d'installation (et l'initrd approprié) spécifique à Xen, comme par exemple sur &lt;a href="http://ftp.free.fr/mirrors/ftp.centos.org/5/os/x86_64/images/xen/" title="&amp;quot;Miroir"&gt;ce miroir pour CentOS 5 64 bits&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ce qui me paraît étrange, c'est avec Enterprise Linux 6, tout du moins avec &lt;a href="http://www.scientificlinux.org/" title="&amp;quot;Scientific"&gt;Scientific Linux&lt;/a&gt;. Le noyau 2.6.32 dispose à priori des &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Paravirtualization#Linux_Paravirtualization_Support" title="&amp;quot;options"&gt;pv-ops&lt;/a&gt;, mais SL6 dispose &lt;a href="http://ftp.scientificlinux.org/linux/scientific/6/x86_64/os/images/" title="&amp;quot;FTP"&gt;d'un noyau et d'un initrd Xen&lt;/a&gt;. Peut-être est-ce par soucis de compatibilité de chemins, car les fichiers font la même taille que dans le répertoire &lt;em&gt;pxeboot&lt;/em&gt;. D'ailleurs, lors de ma synchronisation rsync avec le miroir officiel Scientific Linux, le répertoire xen n'apparaît pas. Et je n'en ai pas eu besoin :)&lt;/p&gt;
&lt;p&gt;Une fois nos images de noyau et d'initrd en main, il nous reste à créer notre fichier de configuration de domU, mon exemple prend comme exemple de disque dur un fichier et une connexion réseau par bridge :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;name = &amp;quot;centosexample&amp;quot;
uuid = &amp;quot;&amp;quot;
maxmem = 512
memory = 512
kernel  = &amp;quot;/srv/www/pub/CentOS/5/os/x86_64/images/xen/vmlinuz&amp;quot;
ramdisk = &amp;quot;/srv/www/pub/CentOS/5/os/x86_64/images/xen/initrd.img&amp;quot;
extra = &amp;quot;vnc&amp;quot;
on_poweroff = &amp;quot;destroy&amp;quot;
on_reboot = &amp;quot;restart&amp;quot;
on_crash = &amp;quot;restart&amp;quot;
vfb = [  ]
disk = [ &amp;quot;file:/srv/xen/images/disk/centosexample.img,xvda,w&amp;quot; ]
vif = [ &amp;quot;mac=00:16:3a:e2:12:34,bridge=bridge0&amp;quot; ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il est possible de faire l'installation en mode texte en supprimant la ligne "extra", et d'ajouter l'url d'un fichier kickstart dans la directive extra, qui devient donc :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;extra = &amp;quot;text ks=http://monserveur/pub/cfg/centos5_x86_64.cfg&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La commande "xm create -c centosexample" vous permet de lancer votre domU et de débuter l'installation. Une fois celle-ci faite et votre domU de nouveau éteint, il suffit de commenter les lignes "kernel" et "ramdisk" et de décommenter la ligne "bootloader". Vous pouvez alors démarrer votre domU sans que le noyau de celui-ci soit sur le disque dur du dom0 :)&lt;/p&gt;
&lt;p&gt;Lors de mes tests, je me suis limité au partitionnement par défaut (qui utilise LVM), à un détail près : avec Scientific Linux 6, j'ai imposé ext3 à l'installeur. Une fois l'installation terminée, éteindre son domU (proprement de préférence) et modifier la configuration qui devient :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;centosexample&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;maxmem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;
&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;
&lt;span class="n"&gt;bootloader&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/usr/pkg/bin/pygrub&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;on_poweroff&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;destroy&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;on_reboot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;restart&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;on_crash&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;restart&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;vfb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;disk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;file:/srv/xen/images/disk/centosexample.img,xvda,w&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;vif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;mac=00:16:3a:e2:12:34,bridge=bridge0&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;J'ai donc remplacé le noyau et l'initrd d'installation par pygrub, qui me permet de démarrer mon domU sur le noyau et l'initrd installés. De plus, les mises à jour ne nécessitent pas de copier de nouveau le noyau et l'initrd sur le dom0.&lt;/p&gt;
&lt;p&gt;Pour finir, si vous souhaitez installer un dom0 NetBSD, je ne peux que vous recommander &lt;a href="http://blog.bsdsx.fr/post/xen_1"&gt;l'excellent billet de Bsdsx&lt;/a&gt; !&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="Linux"></category><category term="NetBSD"></category><category term="RHEL"></category><category term="Scientific"></category><category term="Xen"></category></entry></feed>