<p>Il y a quelques options ici, mais je réorganise les choses dans cette modification. Ma réponse « originale » redevient la méthode préférée. Voir le bas de cette réponse pour une méthode alternative expérimentale.</p>
<h2><a name="p-13254-rponse-originale-prfre-1" class="anchor" href="#p-13254-rponse-originale-prfre-1" aria-label="Heading link"></a>Réponse « originale » (préférée)</h2>
<p>Il y a un <a href="https://github.com/microsoft/WSL/issues/4699">ticket</a> ouvert sur GitHub WSL à ce sujet. WSL fait automatiquement croître le disque virtuel (ext4.vhdx), mais le réduire pour récupérer l’espace inutilisé est quelque chose qui doit actuellement être fait manuellement.</p>
<p>La première chose à faire est de connaître l’emplacement de votre ext4.vhdx. Pour une installation Ubuntu par défaut, il devrait se trouver dans quelque chose comme <code>%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState</code></p>
<p>Ensuite, il y a plusieurs techniques que vous pouvez utiliser pour supprimer l’espace inutilisé. Je recommande de commencer par un <code>wsl --shutdown</code> et de copier le vhdx comme sauvegarde. Si vous exécutez Docker Desktop, arrêtez-le aussi, sinon il pourrait par inadvertance tenter de redémarrer WSL après votre <code>--shutdown</code>.</p>
<ul>
<li></li>
</ul>
<p>Si vous êtes sur Windows Professionnel ou supérieur, vous pouvez installer Hyper-V et utiliser la commandlet Optimize-VHD comme décrit dans le <a href="https://github.com/microsoft/WSL/issues/4699">ticket original</a>.</p>
<ul>
<li></li>
</ul>
<p>Sur Windows Famille (et supérieur), vous pouvez utiliser <code>diskpart</code> comme décrit <a href="https://github.com/microsoft/WSL/issues/4699#issuecomment-627133168">dans ce commentaire</a>.</p>
<ul>
<li></li>
</ul>
<p>Exporter la distribution WSL et la réimporter dans une nouvelle instance WSL (comme dans <a href="https://github.com/microsoft/WSL/issues/4699#issuecomment-660104214">ce commentaire</a>) récupérera aussi l’espace. Notez que vous devrez réinitialiser le nom d’utilisateur par défaut après une importation. Voir <a href="https://github.com/microsoft/WSL/issues/4276#issuecomment-553367389">ici</a> (et <a href="https://superuser.com/a/1627461/">ici</a> pour des options alternatives).</p>
<p>J’ai testé et confirmé personnellement les deuxième et troisième techniques.</p>
<h2><a name="p-13254-alternative-avertissement-2" class="anchor" href="#p-13254-alternative-avertissement-2" aria-label="Heading link"></a>Alternative (Avertissement)</h2>
<p><em>La fonctionnalité suivante reste en statut « Expérimental » un an après son apparition, et bien que je sois sûr qu’elle fonctionne bien pour beaucoup, <a href="https://github.com/microsoft/WSL/issues/10609">trop d’utilisateurs continuent de signaler des corruptions</a> de leurs distributions WSL et parfois même du système de fichiers de l’hôte Windows lors de son utilisation.</em></p>
<p><em>Merci aux commentaires de <a href="https://superuser.com/users/231454/mark-ch">@MarkCh</a> et <a href="https://superuser.com/questions/1606213/how-do-i-get-back-unused-disk-space-from-ubuntu-on-wsl2/1612289?noredirect=1#comment2927962_1612289">@willnode</a>, j’ai modifié la réponse pour à la fois déplacer cette méthode <em>sous</em> la réponse originale et mettre en évidence cet avertissement.</em></p>
<p>En septembre 2023, une pré-version de WSL (2.0.0) a activé un nouveau mode « sparse » pour les images disque qui est destiné à réduire automatiquement l’image quand des fichiers sont supprimés. (Surtout compte tenu de l’avertissement ci-dessus) Maintenez toujours de bonnes sauvegardes, <em>surtout</em> quand vous utilisez des fonctionnalités récentes qui affectent l’ensemble du disque virtuel. Je n’ai pas encore testé cela personnellement.</p>
<p>Cela dit, d’après l’<a href="https://devblogs.microsoft.com/commandline/windows-subsystem-for-linux-september-2023-update/#automatic-disk-space-clean-up-set-sparse-vhd">annonce du DevBlog</a>, vous pouvez convertir une image disque existante en sparse avec la commande suivante depuis PowerShell :</p>
<pre><code class="lang-auto">wsl --manage <distro> --set-sparse true
</code></pre>
<p>Vous pouvez aussi ajouter ce qui suit dans votre <code>.wslconfig</code> (situé dans votre répertoire de <em>profil</em> Windows, pas à l’intérieur de WSL) pour que toute image de distribution nouvellement créée soit sparse :</p>
<pre><code class="lang-auto">[experimental]
sparseVhd=true
</code></pre>