<p>Sous WSL2 (Windows 11), la virtualisation imbriquée est prise en charge mais pas activée par défaut. Pour l’activer, vous devez :</p>
<ul>
<li>
<p>Vous ajouter au groupe <code>kvm</code></p>
</li>
<li>
<p>Choisir votre architecture et changer le groupe par défaut de <code>/dev/kvm</code></p>
</li>
<li>
<p>(peut-être) Activer la virtualisation imbriquée dans <code>%USERPROFILE%.wslconfig</code></p>
</li>
<li>
<p>Redémarrer WSL</p>
</li>
</ul>
<h2><a name="p-33334-h-1-sajouter-au-groupe-kvm-1" class="anchor" href="#p-33334-h-1-sajouter-au-groupe-kvm-1" aria-label="Heading link"></a>1. S’ajouter au groupe <code>kvm</code> :</h2>
<p>Celui-ci est simple :</p>
<pre><code class="lang-auto">sudo usermod -a -G kvm ${USER}
</code></pre>
<h2><a name="p-33334-h-2-choisir-votre-architecture-et-changer-le-groupe-par-dfaut-de-devkvm-2" class="anchor" href="#p-33334-h-2-choisir-votre-architecture-et-changer-le-groupe-par-dfaut-de-devkvm-2" aria-label="Heading link"></a>2. Choisir votre architecture et changer le groupe par défaut de <code>/dev/kvm</code></h2>
<p>C’est aussi simple, mais <a href="https://github.com/microsoft/WSL/issues/13262#issuecomment-3097854770">WSL a un système de fichiers en lecture seule avec une surcouche tmpfs</a>. Vous devez également activer le module spécifique au processeur pour votre architecture. Je suis sur Intel, donc c’est <code>kvm_intel</code>, mais sur AMD c’est <code>kvm_amd</code>.</p>
<p>Pour activer le module spécifique au processeur, changer le groupe par défaut et faire en sorte que tout cela persiste à travers les redémarrages et mises à jour, ajoutez cette section à votre fichier <code>/etc/wsl.conf</code> :</p>
<pre><code class="lang-auto">[boot]
command = "modprobe kvm_intel && while [ ! -e /dev/kvm ]; do sleep 0.1; done && chown root:kvm /dev/kvm && chmod 660 /dev/kvm"
</code></pre>
<p>Il peut y avoir un léger délai avant que le noyau ne peuple <code>/dev</code> avec <code>kvm</code>, d’où la boucle while.</p>
<h2><a name="p-33334-h-3-activer-la-virtualisation-imbrique-3" class="anchor" href="#p-33334-h-3-activer-la-virtualisation-imbrique-3" aria-label="Heading link"></a>3. Activer la virtualisation imbriquée</h2>
<p>Vous n’avez pas besoin de recompiler votre distribution WSL pour activer la virtualisation imbriquée. La dernière fois que j’ai vérifié, la virtualisation imbriquée est activée par défaut. Vous pouvez confirmer avec la commande suivante :</p>
<pre><code class="lang-auto">cat /sys/module/kvm_intel/parameters/nested
</code></pre>
<p>Si vous voyez <code>Y</code> (comme dans <strong>Y</strong>es/Oui), c’est déjà activé, passez à l’étape suivante.</p>
<p>Si vous ne pouvez pas mettre à jour WSL vers la dernière version, ajoutez simplement cette section à votre configuration WSL sous Windows. Lancez <code>notepad %USERPROFILE%.wslconfig</code> (créez le fichier s’il n’existe pas) et ajoutez :</p>
<pre><code class="lang-auto">[wsl2]
nestedVirtualization=true
</code></pre>
<p>Quand j’ai écrit ceci la première fois, je devais mettre la directive dans <code>/etc/wsl.conf</code>. Comme <span class="mention">@athys</span> l’a mentionné, il semble que cela appartienne désormais au <a href="https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig">fichier <code>.wslconfig</code> sous Windows</a>.</p>
<h2><a name="p-33334-h-4-redmarrer-wsl-4" class="anchor" href="#p-33334-h-4-redmarrer-wsl-4" aria-label="Heading link"></a>4. Redémarrer WSL</h2>
<p>Vous pouvez soit redémarrer Windows, soit fermer toutes vos fenêtres de terminal WSL et exécuter cette commande dans PowerShell, CMD ou le menu Exécuter de Windows (Windows+R)</p>
<pre><code class="lang-auto">wsl.exe --shutdown
</code></pre>
<p>La prochaine fois que vous ouvrirez un terminal, WSL démarrera avec les nouvelles options et la virtualisation imbriquée fonctionnera.<br>
Plus de détails sur <a href="https://www.paralint.com/2022/11/find-new-modified-and-unversioned-subversion-files-on-windows">l’activation de la virtualisation imbriquée ici</a>.</p>