# Installer WSL



### WSL (installation)

Nécessite au minimum la build 2004 (une <u>insider build</u> au 31/03/2020)
Aller à Fonctionnalités de Windows:

- installer <u>Plateforme d'ordinateur virtuel</u> (Virtual Machine Platform)
- installer <u>Sous-système Windows pour Linux</u> (Windows Subsystem for Linux)

Activer la virtualisation dans le BIOS.

- Asus: Advanced -> Configuration Processeur -> Virtualisation Techno: Intel (VMY) Virtualisation Technology
- Gigabyte:

Pour voir, si elle est active, aller dans le Gestionnaire de taches -> onglet Performance

Pour Parallels Desktop, aller dans Configuration -> Matériel -> CPU et mémoire -> Paramètres avancés, et cocher <u>Activer la virtualisation imbriquée</u>.

Mettre-à-jour le [composant noyau](https://docs.microsoft.com/en-us/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package):

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi

Dans PowerShell:

```powershell
wsl --set-default-version 1
```

Aller sur le Microsoft Store et installer une distrib Linux (Debian).

```bash
$ cat /etc/debian_version
11.0	# bullseye
```

Dans l'<u>invite de commande</u>:

```powershell
wsl --list --verbose
NAME    			STATE       debian_version

*   Debian  	Running     1
```

```powershell
wsl --list --running
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
```

Les distros sont visibles en tapant \\wsl$  dans la barre de l'explorer.
Même en quittant la distro (`$ exit`), elle y reste dispo.

#### Quitter une distro:

> ```powershell
> wsl --terminate Debian
> wsl -t Debian
> 
> C:\Users\enzo2>wsl --list --running
> Il n'y a aucune distribution en cours d'exécution.
> ```
>



#### Pour passer la distribution à wsl 2:

```powershell
wsl --set-version Debian 2
```

https://docs.microsoft.com/fr-fr/windows/wsl/wsl2-kernel

Différences entre wsl 1 et 2:
https://docs.microsoft.com/en-us/windows/wsl/wsl2-ux-changes



#### Définir wsl 2 comme version par défaut:

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



#### Pour démarrer la distro:

```powershell
wsl --distribution Debian


wsl --list --verbose
NAME      STATE           VERSION

* Debian    Running         2

```



#### Liste des distributions:

```powershell
# Prêtes à l'utilisation:

wsl -l
wsl --list
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
Ubuntu

# Toutes les distributions:

wsl --list --all
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
Ubuntu

# En cours d'utilisation:

wsl --list --running
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
```



#### Distribution par défaut:

Celle qui répond aux commandes `wsl`

```powershell
wsl -s Debian
wsl --setdefault Debian
```

Pour utiliser une distribution spécifique, sans la mettre par défaut:

```powershell
wsl -d Ubuntu
wsl --distribution Ubuntu
```



#### Désactiver une distribution:

Elle n'apparait plus dans `wsl --list`:

```
wsl --unregister Debian
```

Retourner dans le Microsoft Store pour la réinstaller.




#### Backup wsl:

```bash
wsl --export Debian debian.tar
```

Ré-import wsl:

```bash
wsl --import Debian C:\Users\bruno\debian C:\Users\bruno\debian.tar
```

Pour supprimer Debian
Dans l'invite de commande:

```powershell
C:\Users\enzo2>debian clean
C:\Users\enzo2>debian --help
```



#### Réglages WSL:

https://docs.microsoft.com/en-us/windows/wsl/wsl-config#set-wsl-launch-settings



#### Fichier de config `/etc/wsl.conf`:

Il est lu au chargement de la distro.



#### Fichier de configuration globale `C:\Users\<yourUserName>\.wslconfig`:

Les options s'appliquent à toutes les distros (WSL2)

https://docs.microsoft.com/en-us/windows/wsl/wsl-config



#### Installer une GUI:

```
sudo apt-get update
```

Installer xfce4:

```bash
sudo apt-get -y install xfce4
```

Installer xRDP server

```bash
sudo apt-get -y install xrdp
echo xfce4-session > ~/.xsession
sudo service xrdp restart

sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
# changer le port
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
# changer les réglages de qualité
sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini
# redémarrer le serveur
sudo service xrdp restart
```

Trouver l'adresse IP de la distrib WSL

```bash
ifconfig | grep inet (ip addr | grep inet)
#Les IP de ipconfig.exe ne sont pas les bonnes.
```

```bash
hostname -i
127.0.1.1
```

Ouvrir une session xRDP

> mstsc.exe
> puis fournir l'adresse IP

```bash
mstsc.exe 127.0.0.1:3390
```

Si erreur *failed to execute child process "dbus-launch"*:

```bash
sudo apt-get install dbus-x11
```

Ajouter un alias au .zshrc

```bash
# cd /mnt/c/Users/enzo2/OneDrive/Documents/wsl

alias xfce='mstsc.exe "C:\Users/enzo2/OneDrive/Documents/wsl/debian-xfce-pass.rdp"'
```

https://dev.to/darksmile92/linux-on-windows-wsl-with-desktop-environment-via-rdp-522g

https://korben.info/linux-wsl-gui-interface-graphique-windows-10.html



#### Installer un X11-server:

```powershell
choco install vcxsrv
```

Ajouter au `.bashrc` ou `.zshrc`:

`export DISPLAY=:0`

Installer gvim (sudo apt-get install gvim) pour tester.



#### Navigation dans les dossiers/fichiers:

Dans WSL:
Chemin du bureau Windows:
`/mnt/C/Users/enzo2/OneDrive/Bureau/         =>  C:\Users\enzo2\OneDrive\Desktop`
$HOME
`/home/enzo2`



wr** evaluates to the absolute path to your Windows user's root.

```bash
export wr=~/../../mnt/c/Users/<Windows Username>/
```

Cela permet d'aller rapidement au root de Windows.

```bash
alias cdwr='cd "$wr"'
```



Dans l'explorer, aller à wsl :
taper `\\wsl$` dans la barre de l'explorer

Depuis wsl, ouvrir une fenêtre du répertoire dans l'explorer :

```bash
~/.ssh $ explorer.exe .
```

Copier dans le presse-papier:

```bash
cat ~/.ssh/id_rsa.pub | clip.exe
```



Lancer des commandes Linux depuis l'Invite de commandes ou Powershell:

```powershell
C:\Users\enzo2>wsl ls -la | findstr "Documents"
drwxrwxrwx 1 enzo2 enzo2     512 Mar 31 08:51 Documents
lrwxrwxrwx 1 enzo2 enzo2      28 Mar 28 17:59 Mes documents -> /mnt/c/Users/enzo2/Documents
```

```powershell
C:\Users\enzo2>dir | wsl "Documents"
```

```powershell
C:\Users\enzo2>wsl ls -la "/mnt/c/Program Files"
```





### =>[La suite (configurer wsl)](wsl_2.md)<=