WSL - Installation : Différence entre versions

De PedroWiki
(Sans le Windows Store)
Ligne 158 : Ligne 158 :
  
 
En résumé: <pre>Add-AppxPackage Microsoft.WindowsTerminal_<versionNumber>.msixbundle</pre>
 
En résumé: <pre>Add-AppxPackage Microsoft.WindowsTerminal_<versionNumber>.msixbundle</pre>
 +
 +
Exemple: <pre>Add-AppxPackage .\Microsoft.WindowsTerminalPreview_1.11.2421.0_8wekyb3d8bbwe.msixbundle</pre>
  
 
= Diagnostiquer les problèmes d'installation ou de fonctionnement de WSL sur votre système =
 
= Diagnostiquer les problèmes d'installation ou de fonctionnement de WSL sur votre système =

Version du 28 octobre 2021 à 13:14

Introduction

Cet article traite des différentes méthodes disponibles pour l'installation de Windows Subsystem for Linux (WSL) sur un poste Windows (10).

Les guides d'installation Microsoft servent de référence, l'objectif est de mieux identifier les méthodes alternatives.

Tips PowerShell utile

Informations du système

Pour déterminer les informations de son système (architecture processeur, version de build Windows, etc), vous pouvez procéder de 2 façons:

  • via les paramètres => Système => A propos de.
  • via la commande PowerShell suivante:
    systeminfo

Ex:

PS C:\Users\j.pedrono> systeminfo

Nom de l’hôte:                              901180281M
Nom du système d’exploitation:              Microsoft Windows 10 Professionnel
Version du système:                         10.0.19042 N/A version 19042
Fabricant du système d’exploitation:        Microsoft Corporation
Configuration du système d’exploitation:    Station de travail membre
Type de version du système d’exploitation:  Multiprocessor Free
Propriétaire enregistré:                    XXXXXXX
Organisation enregistrée:                   XXXXXXX
Identificateur de produit:                  XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX
Date d’installation originale:              01/09/2021, 09:55:49
Heure de démarrage du système:              08/09/2021, 14:04:42
Fabricant du système:                       HP
Modèle du système:                          HP EliteBook 840r G4
Type du système:                            x64-based PC
Processeur(s):                              1 processeur(s) installé(s).
                                            [01] : Intel64 Family 6 Model 142 Stepping 9 GenuineIntel ~2511 MHz
Version du BIOS:                            HP Q80 Ver. 01.14.01, 16/10/2020
Répertoire système:                         C:\WINDOWS\system32
Périphérique d’amorçage:                    \Device\HarddiskVolume5
Option régionale du système:                fr;Français (France)
Paramètres régionaux d’entrée:              fr;Français (France)
Fuseau horaire:                             (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris
Mémoire physique totale:                    12 131 Mo
Mémoire physique disponible:                6 127 Mo
Mémoire virtuelle : taille maximale:        14 563 Mo
Mémoire virtuelle : disponible:             7 349 Mo
Mémoire virtuelle : en cours d’utilisation: 7 214 Mo
Emplacements des fichiers d’échange:        C:\pagefile.sys
Domaine:                                    directory.XXXXXXX.com
Serveur d’ouverture de session:             \\XXXXXXX
Correctif(s):                               9 Corrections installées.
                                            [01]: KB5004331
                                            [02]: KB4562830
                                            [03]: KB4570334
                                            [04]: KB4577266
                                            [05]: KB4577586
                                            [06]: KB4589212
                                            [07]: KB4598481
                                            [08]: KB5005033
                                            [09]: KB5005260
Carte(s) réseau:                            3 carte(s) réseau installée(s).
                                            [01]: Intel(R) Ethernet Connection (4) I219-V
                                                  Nom de la connexion : Ethernet
                                                  État :                Support déconnecté
                                            [02]: Intel(R) Dual Band Wireless-AC 8265
                                                  Nom de la connexion : Wi-Fi
                                                  DHCP activé :         Oui
                                                  Serveur DHCP :        XXXXXXX
                                                  Adresse(s) IP
                                                  [01]: XXXXXXX
                                                  [02]: XXXXXXX
                                            [03]: Bluetooth Device (Personal Area Network)
                                                  Nom de la connexion : Connexion réseau Bluetooth
                                                  État :                Support déconnecté
Configuration requise pour Hyper-V:         Un hyperviseur a été détecté. Les fonctionnalités nécessaires à Hyper-V ne seront pas affichées.

Information de version WSL par distribution Linux

wsl --list --verbose

ou

wsl -l -v

Ex:

PS C:\Users\j.pedrono> wsl -l -v
  NAME      STATE           VERSION
* Debian    Running         1

Changer de version WSL par distribution Linux

wsl --set-version <distribution name> <versionNumber>

Installation de WSL

Installation standard

Cf cette documentation Microsoft sur le sujet.

  • Si vous avez accès au Windows Store sur votre poste Windows, suivez cette méthode, considérée comme la plus simple.
  • Une technique équivalente en ligne de commande PowerShell:
    wsl --install
  • NB: cette méthode requiert de faire partie du programme Windows Insider.

Sans accès au Windows Store (App)

Sans accès à Windows Store, l'installation manuelle est possible (cf le lien du paragraphe "installation standard":

Les étapes en résumé sont:

  • activation de WSL dans une console PowerShell en tant qu'administrateur (du poste):
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • OPTIONNEL WSL2: vérification des pré requis pour l'utilisation de WSL 2 (au lieu de WSL 1) => cette feature nécessite un certain niveau de build Windows en fonction de l'architecture.
  • OPTIONNEL WSL2: activation de la fonctionnalité Virtual Machine dans une console PowerShell en tant qu'administrateur (du poste):
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    (cette action nécessite ensuite un reboot).
  • OPTIONNEL WSL2: téléchargement et installation du Linux kernel update package. L'installation nécessite une élévation de privilège.
  • OPTIONNEL WSL2: déclarer WSL 2 comme version par défaut. Dans une fenêtre PowerShell:
    wsl --set-default-version 2
    . NB: ce n'est que la version par défaut, il est ensuite possible de sélectionner une version de WSL par distribution Linux installée sur le système.
  • Télécharger depuis le site Microsoft la distribution Linux qui vous intéresse (dans mon cas, Debian).

Sans accès au Windows Store (y compris sites de téléchargement Microsoft)

Si comme moi, pour une raison non encore identifiée liée à la sécurisation du poste Windows ou du réseau d'entreprise, vous ne pouvez pas télécharger les distributions Linux en cliquant sur Obtenir (ou Get) sur par exemple ce lien, il existe encore des méthodes d'installation alternatives: cf cette documentation d'installation manuelle.

Les étapes:

  • Déterminer le nom de sa distribution via les URLs de téléchargement.
  • Téléchargement d'une distribution, via une commande PowerShell:
    Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
  • Installer le package, via une commande PowerShell:
    Add-AppxPackage .\Ubuntu.appx

Quel que soit le mode d'installation

Ajout de Windows Terminal

Il y a de nombreux intérêts à l'installation de Windows Terminal en complément de WSL:

  • Cet outil permet notamment de faire cohabiter de nombreuses sessions en onglets au sein d'une seule fenêtre.
  • Il permet de lancer de nombreux terminaux: terminal PowerShell, l'intégralité des distributions Linux installées sur WSL, une console Azure PowerShell...

Cf cette partie de la documentation officielle Microsoft.

Cf cette documentation spécifique pour installer la version Preview.

Avec le Windows Store

Installation directe avec le Windows Store, ou en lançant le téléchargement depuis la documentation d'installation Microsoft.

Sans le Windows Store

Sans accès au Windows Store, il existe un dépôt Github pour la publication des versions successives de Windows Terminal.

NB: la contrainte dans ce cas est qu'il faut gérer soi même les mises à jour du Windows Terminal.

Vous téléchargez un fichier dont l'extension est msibundle: cf cette documentation spécifique pour l'installation.

En résumé:
Add-AppxPackage Microsoft.WindowsTerminal_<versionNumber>.msixbundle
Exemple:
Add-AppxPackage .\Microsoft.WindowsTerminalPreview_1.11.2421.0_8wekyb3d8bbwe.msixbundle

Diagnostiquer les problèmes d'installation ou de fonctionnement de WSL sur votre système

Microsoft met à disposition ce guide de troubleshooting assez complet.

Problème pour utiliser la commande ping

A l'installation, et fonction de la version de votre build Windows et de WSL, vous pouvez rencontrer l'erreur suivante lors d'un ping:

jpedrono@901180281M:/mnt/c/Users/j.pedrono$ ping 8.8.8.8
ping: socket: Operation not permitted

D'après les liens suivants, plus ou moins fiable, il s'agit d'un problème de droit de l'utilisateur de votre distribution sur le binaire ping:

Dans mon cas, application de la 1ere méthode puisqu'à priori émise par des personnes au sein de l'équipe MS WSL:

jpedrono@901180281M:/mnt/c/Users/j.pedrono$ getcap /bin/ping
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ sudo setcap cap_net_raw+p /bin/ping
[sudo] password for jpedrono:
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ getcap /bin/ping
/bin/ping = cap_net_raw+p
jpedrono@901180281M:/mnt/c/Users/j.pedrono$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=10.7 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 10.728/10.728/10.728/0.000 ms

Une fois votre setup terminé...

Une fois WSL installé, vous pouvez ensuite procéder à l'installation des packages essentiels.