Deux architectures, deux modèles de stockage
WSL1 n'a pas de noyau Linux du tout : il traduit en temps réel les appels système Linux en appels Windows, et ses fichiers vivent dans un dossier ordinaire — historiquement %LOCALAPPDATA%\Packages\<Distro>\LocalState\rootfs —, parfaitement visible des outils Windows. C'est léger sur le disque et rapide quand les scripts touchent des fichiers sur /mnt/c, mais la traduction est incomplète : Docker, systemd et tout ce qui exige des appels exotiques ne fonctionne pas. WSL2 fait tourner un vrai noyau Linux dans une petite VM utilitaire, ce qui répare la compatibilité — mais tout le système de fichiers de la distro habite désormais dans un ext4.vhdx, image de disque virtuel que Windows monte sans l'interpréter.
Le vhdx est rangé sous %LOCALAPPDATA%\Packages pour les distros installées depuis le Store et sous %LOCALAPPDATA%\wsl pour les installations récentes, et il a une propriété sournoise : il grossit à la demande et ne rétrécit jamais de lui-même. Supprimer des fichiers dans la distro libère de l'espace dans le disque virtuel, mais le fichier .vhdx garde sa marque de pleine mer jusqu'à ce que vous le compactiez. Vérifier la taille du fichier dans l'Explorateur juste après un grand nettoyage dans la distro, c'est la déception classique : le chiffre n'a pas bougé.
Où chacun cache ses gigaoctets
Aucune des deux versions ne range derrière elle, et l'espace fuit dans étonnamment peu d'endroits :
- L'ext4.vhdx de WSL2 — chaque distro a le sien ; un environnement gorgé de Docker le passe couramment au-delà de 30 Go
- Le disque de données de Docker Desktop (docker_data.vhdx), qui suit la même règle de croissance unique
- Le dossier rootfs de WSL1 — modeste en comparaison, mais les vieilles distros abandonnées gardent l'installation complète
- Les caches de paquets et de builds dans la distro — caches apt, node_modules, dossiers target/ et build/ qui gonflent le vhdx pour de bon
- Les sauvegardes wsl --export et les images de distro téléchargées, oubliées dans Téléchargements
Récupérer l'espace sans casser la distro
Faites d'abord le ménage à l'intérieur : apt autoremove et apt clean, docker system prune dans Docker Desktop, vidages des caches npm et pip — tout ce qui vide le disque virtuel avant de rétrécir son contenant. Ensuite lancez wsl --shutdown, car une distro en marche verrouille son vhdx, puis compactez l'image : Optimize-VHD avec l'option -Mode Full si vous avez l'outillage Hyper-V, ou diskpart avec select vdisk file="<chemin>", attach vdisk, compact vdisk, detach vdisk sur n'importe quel Windows. Les versions récentes de WSL proposent wsl --manage <Distro> --set-sparse true, qui laisse le vhdx rendre l'espace automatiquement — à la longue, le meilleur réglage, sans discussion.
Deux dernières issues méritent leur nom. wsl --export emballe la distro dans un .tar que vous pouvez importer sur un autre disque via wsl --import — la voie propre pour déménager une installation WSL2 hors d'un C: saturé. Et wsl --unregister <Distro> supprime la distro et son vhdx entièrement — cette commande n'a pas d'annulation, traitez-la comme l'arme nucléaire qu'elle est. Pendant que vous y êtes, plafonnez l'appétit de la VM via un fichier .wslconfig limitant mémoire et processeurs ; sinon une WSL2 oisive retient des gigaoctets de RAM pour rien.
Questions et réponses
Comment réduire le fichier ext4.vhdx de WSL2 ?
Nettoyez d'abord l'intérieur de la distro, lancez wsl --shutdown, puis compactez le vhdx avec diskpart (select vdisk file, attach vdisk, compact vdisk, detach vdisk) ou Optimize-VHD. Sur un WSL récent, wsl --manage <Distro> --set-sparse true active la libération automatique.
Faut-il choisir WSL1 ou WSL2 ?
WSL2 est la norme et le seul choix pour Docker, systemd et tout ce qui exige un vrai noyau. WSL1 reste gagnant pour le travail en console léger qui touche surtout des fichiers sur les disques Windows : pas de VM, pas de vhdx, pas de faim de mémoire.
Vérifiez le contenu avant l'achat.
L'essai unique de 30 minutes couvre les fonctions de base. Les fonctions marquées PRO restent verrouillées jusqu'à l'activation d'une licence payante.
À lire ensuite
Écrivez-nous: [email protected]