# WSL (Sous-système Windows pour Linux) : ce que c'est, installation et configuration

URL: https://skillaria.top/fr/guides/linux/wsl-linux-sous-windows

WSL (Windows Subsystem for Linux) est un sous-système intégré à Windows 10 et 11 qui lance une véritable distribution Linux sans machine virtuelle séparée ni double démarrage. Il s'installe avec la commande wsl --install dans PowerShell en tant qu'administrateur; par défaut on obtient WSL 2 avec Ubuntu, où tourne un vrai noyau Linux dans une machine virtuelle légère.

Le sous-système Windows pour Linux (WSL) est un composant de Windows 10 et 11 qui permet de faire fonctionner une distribution Linux directement sous Windows : le shell bash, `apt`, `ssh`, `grep`, Docker et tous les outils en ligne de commande. Inutile d'installer VirtualBox ni de partager le disque avec un second système : Ubuntu s'ouvre en quelques secondes dans une simple fenêtre de terminal. Voici la différence entre WSL 1 et WSL 2, l'installation pas à pas, l'usage des fichiers, de VS Code et des applications graphiques, ainsi que la solution aux erreurs courantes.

## Ce que signifie WSL sous Linux et Windows

En bref, WSL offre un environnement Linux complet pour le développement et l'apprentissage, sans quitter Windows. Vous installez une distribution (Ubuntu, Debian, openSUSE, Kali, AlmaLinux et d'autres) depuis la ligne de commande ou le Microsoft Store, puis vous travaillez dedans comme sur un serveur : utilisateurs, droits, paquets, services.

Il est important de savoir ce que WSL n'est pas. Ce n'est ni un émulateur de commandes du type Cygwin, ni un ensemble d'outils portés : dans WSL 2 tourne un vrai noyau Linux, compilé par Microsoft. Les programmes Linux se lancent donc sans recompilation, et ce que vous apprenez dans WSL se transpose directement sur un vrai serveur.

Usages typiques :

- apprendre Linux et la ligne de commande sans disposer d'un second ordinateur ;
- développement web lorsque la production tourne sous Linux (Python, Node.js, PHP, Go) ;
- Docker Desktop, qui utilise WSL 2 comme moteur ;
- connexions SSH aux serveurs, scripts bash, Git dans un environnement familier.

## WSL 1 et WSL 2 : quelle différence

Il existe deux architectures. WSL 1 traduit les appels système Linux en appels au noyau Windows : il n'y a pas de noyau Linux à proprement parler. WSL 2 exécute un vrai noyau Linux dans une machine virtuelle légère basée sur Hyper-V, qui démarre en quelques secondes et gère elle-même sa mémoire.

| Caractéristique | WSL 1 | WSL 2 |
| --- | --- | --- |

| Noyau | aucun, traduction des appels système | vrai noyau Linux |

| Compatibilité des appels système | partielle | complète |

| Docker, systemd | non | oui |

| Vitesse sur les fichiers Linux (`~/`) | plus faible | élevée |

| Vitesse sur les fichiers Windows (`/mnt/c`) | élevée | nettement plus faible |

| Virtualisation requise | non | oui |

| Réseau | partagé avec Windows | réseau virtuel propre (NAT par défaut) |

Pour presque tous les scénarios, choisissez WSL 2, c'est la valeur par défaut. WSL 1 peut se justifier si la virtualisation ne peut pas être activée (par exemple lorsque Windows lui-même tourne dans une machine virtuelle sans virtualisation imbriquée) ou si le projet doit rester sur le disque Windows et y être modifié intensivement.

## Installer WSL sous Windows 10 et 11

Sous Windows 11 et Windows 10 à partir de la version 2004 (build 19041 et ultérieures), l'installation tient en une commande. Ouvrez PowerShell ou le Terminal en tant qu'administrateur et exécutez :

```
wsl --install
```

La commande active les composants Windows nécessaires, télécharge le noyau WSL 2 et installe Ubuntu. Après le redémarrage, la fenêtre de la distribution s'ouvre : choisissez un nom d'utilisateur Linux et un mot de passe. Ils ne sont pas liés à votre compte Windows ; ce mot de passe servira pour `sudo`.

```
Enter new UNIX username: alex
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
```

Mettez ensuite les paquets à jour, comme sur tout serveur neuf :

```
sudo apt update && sudo apt upgrade -y
```

### Choisir une distribution

Ubuntu est installée par défaut, mais vous pouvez en choisir une autre. Pour afficher les distributions disponibles :

```
wsl --list --online
```

Pour installer une distribution précise à partir de son nom dans cette liste :

```
wsl --install -d Debian
```

Si WSL est déjà installé, la commande ajoute simplement la nouvelle distribution. Vous pouvez en garder plusieurs, par exemple Ubuntu pour le travail et Kali pour les expérimentations.

### Vérifier la version : wsl -l -v

Pour voir les distributions installées, leur état et leur version de WSL :

```
wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
  Debian    Stopped         2
```

L'astérisque indique la distribution par défaut, lancée par la commande `wsl` sans paramètre. Vous pouvez la changer avec `wsl --set-default Debian`.

### Passer de WSL 1 à WSL 2

La version utilisée pour les nouvelles installations se règle ainsi :

```
wsl --set-default-version 2
```

Une distribution déjà installée se convertit séparément (les données sont conservées, l'opération peut durer quelques minutes) :

```
wsl --set-version Ubuntu 2
```

La conversion inverse se fait avec `wsl --set-version Ubuntu 1`.

### Commandes utiles pour gérer WSL

| Commande | Effet |
| --- | --- |

| `wsl` | ouvrir la distribution par défaut |

| `wsl -d Debian` | ouvrir une distribution précise |

| `wsl --shutdown` | arrêter toutes les distributions et la machine virtuelle WSL 2 |

| `wsl --terminate Ubuntu` | arrêter une seule distribution |

| `wsl --update` | mettre à jour WSL et le noyau |

| `wsl --status` | version par défaut et état général |

| `wsl --export Ubuntu ubuntu.tar` | sauvegarder la distribution dans une archive |

| `wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tar` | restaurer ou cloner une distribution |

| `wsl --unregister Ubuntu` | supprimer la distribution avec toutes ses données |

Soyez prudent avec `--unregister` : les fichiers de la distribution sont supprimés sans passer par la corbeille. Faites d'abord un `--export`.

## Échanger des fichiers entre Windows et Linux

Les disques Windows sont montés automatiquement dans WSL, dans le répertoire `/mnt` : le lecteur C: correspond à `/mnt/c`, D: à `/mnt/d`.

```
cd /mnt/c/Users/alex/Downloads
ls -l
cp report.csv ~/projects/
```

Dans l'autre sens, les fichiers Linux sont visibles dans l'Explorateur via le chemin réseau `\\wsl$\Ubuntu` (sous Windows 11, aussi `\\wsl.localhost\Ubuntu`) et dans la section « Linux » du volet latéral. Pour ouvrir rapidement le répertoire Linux courant dans l'Explorateur :

```
explorer.exe .
```

Depuis WSL, vous pouvez lancer des programmes Windows (`notepad.exe`, `code`), et depuis PowerShell exécuter des commandes Linux avec le préfixe `wsl` : `wsl ls -la`. Pour convertir des chemins entre les deux systèmes, utilisez l'outil `wslpath` :

```
wslpath 'C:\Users\alex'
/mnt/c/Users/alex
```

La règle de performance la plus importante avec WSL 2 : placez vos projets dans le système de fichiers Linux (`~/projects`), et non sous `/mnt/c`. L'accès aux disques Windows passe par un protocole réseau, et des opérations comme `git status` ou `npm install` sur un gros projet y sont beaucoup plus lentes.

## VS Code et WSL

Visual Studio Code peut travailler avec WSL comme avec une machine distante : l'interface reste sous Windows, tandis que le terminal, les extensions, les interpréteurs et le débogueur s'exécutent dans Linux. Il faut pour cela l'extension WSL (Microsoft). Ensuite, dans le terminal de la distribution, allez dans le répertoire du projet et lancez :

```
cd ~/projects/site
code .
```

Au premier lancement, VS Code installe lui-même la partie serveur dans Linux. En bas à gauche apparaît l'indicateur « WSL: Ubuntu » : tout ce que vous lancez dans le terminal intégré s'exécute alors dans Linux. Les extensions comme Python ou ESLint doivent être installées « dans WSL » ; VS Code le propose par un bouton.

## Applications graphiques dans WSL (WSLg)

Sous Windows 11 et dans les versions récentes de WSL, y compris sous Windows 10, WSLg permet d'exécuter des applications graphiques Linux sans configurer de serveur X. Installez le programme comme d'habitude : sa fenêtre s'affiche à côté des fenêtres Windows et son raccourci apparaît dans le menu Démarrer.

```
sudo apt install gedit -y
gedit ~/.bashrc &
```

WSLg prend en charge X11 et Wayland, le son et le presse-papiers. Pour un travail quotidien avec un bureau Linux complet, cela ne remplace toutefois pas un vrai bureau : WSL est conçu pour des applications isolées, pas pour GNOME ou KDE dans leur ensemble.

## systemd et ressources de WSL 2

Les versions récentes de WSL 2 prennent en charge systemd : sur les nouvelles installations d'Ubuntu, il est activé par défaut. Sinon, ajoutez dans le fichier `/etc/wsl.conf` de la distribution :

```
[boot]
systemd=true
```

puis redémarrez le sous-système depuis PowerShell : `wsl --shutdown`. Ensuite, `systemctl` et les services comme nginx ou PostgreSQL fonctionnent.

Vous limitez la mémoire et les processeurs de la machine virtuelle WSL 2 dans le fichier `%UserProfile%\.wslconfig`, côté Windows :

```
[wsl2]
memory=4GB
processors=2
```

Les réglages sont appliqués après un `wsl --shutdown`.

## Erreurs courantes à l'installation de WSL

### Erreur 0x80370102

Message complet : « Impossible de démarrer la machine virtuelle, car un composant nécessaire n'est pas installé » (WslRegisterDistribution failed with error: 0x80370102). La cause est presque toujours la même : WSL 2 ne parvient pas à lancer une machine virtuelle. Vérifiez dans cet ordre :

1. La virtualisation matérielle est-elle activée dans le BIOS/UEFI : Intel VT-x (Intel Virtualization Technology) ou AMD-V (SVM Mode). L'état s'affiche dans le Gestionnaire des tâches, onglet « Performances », « Processeur », « Virtualisation : activée ».
2. Le composant « Plateforme de machine virtuelle » est-il activé ?
3. L'hyperviseur n'est-il pas désactivé dans le chargeur de démarrage ?

Les composants s'activent dans PowerShell en tant qu'administrateur :

```
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
bcdedit /set hypervisorlaunchtype auto
```

Redémarrez ensuite l'ordinateur. Si vous travaillez dans une machine virtuelle, il faut autoriser la virtualisation imbriquée sur l'hôte, ou bien utiliser WSL 1.

### Autres problèmes fréquents

- **0x800701bc** — le noyau WSL 2 n'est pas à jour. Exécutez `wsl --update`.
- **La commande wsl --install n'affiche que l'aide** — WSL est déjà installé ; ajoutez la distribution avec `wsl --install -d Ubuntu`.
- **Pas d'accès à Internet dans WSL avec un VPN** — le client VPN intercepte les routes du réseau virtuel. Sous Windows 11, le mode `networkingMode=mirrored` dans la section `[wsl2]` du fichier `.wslconfig` aide souvent.
- **WSL occupe beaucoup d'espace** — le disque virtuel `ext4.vhdx` grossit, mais ne rétrécit pas tout seul après la suppression de fichiers. Vous pouvez le réduire manuellement ou déplacer la distribution avec `--export` et `--import`.
- **Mot de passe Linux oublié** — connectez-vous en root depuis PowerShell : `wsl -u root`, puis `passwd alex`.

## WSL, machine virtuelle ou double démarrage

WSL n'est pas la seule façon d'avoir Linux sur un ordinateur Windows. Le choix dépend de la tâche.

| Solution | Avantages | Inconvénients | Quand la choisir |
| --- | --- | --- | --- |

| WSL 2 | démarrage en quelques secondes, fichiers partagés, VS Code, Docker | pas de bureau complet, particularités réseau et disques | développement, apprentissage de la ligne de commande, scripts |

| Machine virtuelle (VirtualBox, Hyper-V, VMware) | isolation complète, instantanés, toute distribution et tout bureau, carte réseau propre | plus lourde, ressources réservées à l'avance | banc d'essai de serveur, expérimentations réseau, démarrage, partitionnement |

| Double démarrage | pleine puissance matérielle, graphismes et pilotes natifs | redémarrage pour changer, risque lors du partitionnement | Linux comme système principal, jeux et calcul GPU sous Linux |

Pour apprendre Linux à partir de zéro, WSL suffit généralement : fichiers, droits, processus, paquets, scripts bash et SSH se comportent comme sur un serveur. Une machine virtuelle devient nécessaire pour ce qui fonctionne autrement dans WSL : le chargeur de démarrage, le partitionnement des disques physiques, les interfaces réseau et les pare-feu au niveau de l'hôte.

## Conclusion

Le sous-système Windows pour Linux offre un vrai Linux sous Windows, avec une seule commande, `wsl --install`. Choisissez WSL 2, vérifiez les versions avec `wsl -l -v`, placez vos projets sous `~/` plutôt que sous `/mnt/c` et reliez VS Code via l'extension WSL. Si l'installation échoue avec 0x80370102, activez la virtualisation dans le BIOS et le composant « Plateforme de machine virtuelle ». C'est avec cet environnement que commence la pratique dans le cours sur Linux.

## FAQ

**WSL est-il gratuit ?**

Oui. WSL est inclus dans toutes les éditions de Windows 10 et 11, y compris Famille, et les distributions Linux sont elles aussi gratuites.

**Peut-on faire fonctionner Docker dans WSL ?**

Oui, mais uniquement avec WSL 2. Vous pouvez installer Docker Desktop avec le moteur WSL 2, ou installer Docker Engine directement dans la distribution, comme sur un Ubuntu Server classique.

**Où sont physiquement stockés les fichiers de la distribution WSL ?**

Dans WSL 2, ils se trouvent dans le disque virtuel ext4.vhdx, dans le profil utilisateur de Windows. Inutile d'ouvrir ce fichier directement : utilisez le chemin \\wsl$\ dans l'Explorateur.

**Comment supprimer complètement WSL ?**

Supprimez les distributions avec wsl --unregister , puis désinstallez l'application « Sous-système Windows pour Linux » dans « Applications installées », et désactivez si besoin les composants Windows.

**Peut-on déplacer WSL sur un autre disque ?**

Oui : wsl --export Ubuntu ubuntu.tar, puis wsl --unregister Ubuntu et wsl --import Ubuntu D:\wsl\ubuntu ubuntu.tar. Les versions récentes proposent aussi la commande wsl --manage Ubuntu --move.


---
Source: Skillaria.Top (https://skillaria.top)
