Résolution des problèmes liés au sous-système Windows pour LinuxTroubleshooting Windows Subsystem for Linux

Bash perd la connectivité réseau une fois connecté à un VPNBash loses network connectivity once connected to a VPN

Si, après une connexion à un VPN sur Windows, Bash perd la connectivité réseau, essayez cette solution de contournement à partir de Bash.If after connecting to a VPN on Windows, bash loses network connectivity, try this workaround from within bash. Elle vous permet de remplacer la résolution DNS manuellement avec /etc/resolv.conf.This workaround will allow you to manually override the DNS resolution through /etc/resolv.conf.

  1. Exécutez la commande ipconfig.exe /all et notez le serveur DNS du VPN.Take a note of the DNS server of the VPN from doing ipconfig.exe /all
  2. Copiez le fichier resolv.conf existant avec sudo cp /etc/resolv.conf /etc/resolv.conf.new.Make a copy of the existing resolv.conf sudo cp /etc/resolv.conf /etc/resolv.conf.new
  3. Dissociez le fichier resolv.conf actuel avec sudo unlink /etc/resolv.conf.Unlink the current resolv.con sudo unlink /etc/resolv.conf
  4. sudo mv /etc/resolv.conf.new /etc/resolv.conf
  5. Ouvrez /etc/resolv.conf etOpen /etc/resolv.conf and
    a.a. Supprimez la première ligne du fichier, comportant le message « # This file was automatically generated by WSL.Delete the first line from the file, which says "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line. » (Ce fichier a été généré automatiquement par WSL. Pour arrêter la génération automatique de ce fichier, supprimez cette ligne. »).To stop automatic generation of this file, remove this line.".
    b.b. Ajoutez l’entrée DNS notée à l’étape 1 précédente comme première entrée de la liste des serveurs DNS.Add the DNS entry from (1) above as the very first entry in the list of DNS servers.
    c.c. Fermez le fichier.Close the file.

Une fois que vous avez déconnecté le VPN, vous devez revenir au fichier /etc/resolv.conf non modifié.Once you have disconnected the VPN, you will have to revert the changes to /etc/resolv.conf. Pour ce faire, exécutez les commandes suivantes :To do this, do:

  1. cd /etc
  2. sudo mv resolv.conf resolv.conf.new
  3. sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

Le démarrage de WSL ou l’installation d’une distribution retourne un code d’erreur.Starting WSL or installing a distribution returns an error code

Suivez ces instructions pour récupérer des journaux détaillés et signaler un problème sur notre plateforme GitHub.Follow these instructions to collect detailed logs and file an issue on our GitHub.

Mise à jour de Bash sur Ubuntu sur WindowsUpdating Bash on Ubuntu on Windows

Deux composants de Bash sur Ubuntu sur Windows peuvent nécessiter une mise à jour.There are two components of Bash on Ubuntu on Windows that can require updating.

  1. Sous-système Windows pour LinuxThe Windows Subsystem for Linux

    La mise à niveau de cette partie de Bash sur Ubuntu sur Windows active tous les nouveaux correctifs mentionnés dans les notes de publication.Upgrading this portion of Bash on Ubuntu on Windows will enable any new fixes outlines in the release notes. Vérifiez que vous êtes abonné au programme Windows Insider et que votre build est à jour.Ensure that you are subscribed to the Windows Insider Program and that your build is up to date. Pour un contrôle plus précis et, notamment, pour réinitialiser votre instance Ubuntu, consultez les informations de référence sur les commandes.For finer grain control including resetting your Ubuntu instance check out the command reference page.

  2. Fichiers binaires utilisateur UbuntuThe Ubuntu user binaries

    La mise à niveau de cette partie de Bash sur Ubuntu sur Windows installe toutes les mises à jour des fichiers binaires utilisateur Ubuntu, y compris les applications que vous avez installées avec apt-get.Upgrading this portion of Bash on Ubuntu on Windows will install any updates to the Ubuntu user binaries including applications that you have installed via apt-get. Pour procéder à la mise à jour, exécutez les commandes suivantes dans Bash :To update run the following commands in Bash:

    1. apt-get update
    2. apt-get upgrade

Erreurs avec apt-get upgradeApt-get upgrade errors

Certains packages utilisent des fonctionnalités que nous n’avons pas encore implémentées.Some packages use features that we haven't implemented yet. udev, par exemple, n’est pas encore pris en charge et provoque plusieurs erreurs avec apt-get upgrade.udev, for example, isn't supported yet and causes several apt-get upgrade errors.

Pour résoudre les problèmes liés à udev, procédez comme suit :To fix issues related to udev, follow the following steps:

  1. Écrivez le code suivant dans /usr/sbin/policy-rc.d et enregistrez vos modifications.Write the following to /usr/sbin/policy-rc.d and save your changes.

    #!/bin/sh
    exit 101
    
  2. Ajoutez des autorisations d’exécution à /usr/sbin/policy-rc.dAdd execute permissions to /usr/sbin/policy-rc.d

    chmod +x /usr/sbin/policy-rc.d
    
  3. Exécutez les commandes suivantes.Run the following commands

    dpkg-divert --local --rename --add /sbin/initctl
    ln -s /bin/true /sbin/initctl
    

« Error : 0x80040306 » lors de l’installation"Error: 0x80040306" on installation

Cette erreur est due au fait que nous ne prenons pas en charge la console héritée.This has to do with the fact that we do not support legacy console. Pour désactiver la console héritée :To turn off legacy console:

  1. Ouvrez cmd.exe.Open cmd.exe
  2. Cliquez avec le bouton droit sur la barre de titre, sélectionnez Propriétés, puis désactivez la case Utiliser la console héritée.Right click title bar -> Properties -> Uncheck Use legacy console
  3. Cliquez sur OKClick OK

« Error : 0x80040154 » après une mise à jour de Windows"Error: 0x80040154" after Windows update

La fonctionnalité de sous-système Windows pour Linux peut être désactivée au cours d’une mise à jour de Windows.The Windows Subsystem for Linux feature may be disabled during a Windows update. Dans ce cas, la fonctionnalité Windows doit être réactivée.If this happens the Windows feature must be re-enabled. Pour obtenir des instructions sur l’activation du sous-système Windows pour Linux, consultez le guide d’installation.Instructions for enabling the Windows Subsystem for Linux can be found in the Installation Guide.

Changement de la langue d’affichageChanging the display language

Le processus d’installation de WSL tente de changer automatiquement les paramètres régionaux d’Ubuntu de sorte qu’ils correspondent à ceux de votre installation Windows.WSL install will try to automatically change the Ubuntu locale to match the locale of your Windows install. Si vous souhaitez éviter ce comportement, vous pouvez exécuter cette commande pour changer les paramètres régionaux d’Ubuntu une fois l’installation terminée.If you do not want this behavior you can run this command to change the Ubuntu locale after install completes. Vous devrez relancer bash.exe pour que ce changement prenne effet.You will have to relaunch bash.exe for this change to take effect.

L’exemple ci-dessous applique les paramètres régionaux en-US :The below example changes to locale to en-US:

sudo update-locale LANG=en_US.UTF8

Problèmes d’installation après une restauration du système WindowsInstallation issues after Windows system restore

  1. Supprimez le dossier %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux.Delete the %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux folder.
    Remarque : N’effectuez pas cette opération si votre fonctionnalité facultative est entièrement installée et opérationnelle.Note: Do not do this if your optional feature is fully installed and working.
  2. Si ce n’est déjà fait, activez la fonctionnalité facultative WSL.Enable the WSL optional feature (if not already)
  3. RedémarrerReboot
  4. lxrun /uninstall /fulllxrun /uninstall /full
  5. Installez Bash.Install bash

Aucun accès Internet dans WSLNo internet access in WSL

Certains utilisateurs ont signalé des problèmes posés par certaines applications de pare-feu, qui bloquent l’accès Internet dans WSL.Some users have reported issues with specific firewall applications blocking internet access in WSL. Les pare-feux signalés sont :The firewalls reported are:

  1. KasperskyKaspersky
  2. AVGAVG
  3. AvastAvast

Dans certains cas, la désactivation du pare-feu permet d’obtenir l’accès.In some cases turning off the firewall allows for access. Parfois, il semble que la simple installation du pare-feu bloque l’accès.In some cases simply having the firewall installed looks to block access.

Autorisation refusée lors de l’utilisation d’une commande pingPermission Denied error when using ping

Mise à jour anniversaireAnniversary Update

L’exécution d’une commande ping dans WSL nécessite des privilèges d’administrateur dans Windows.Administrator privileges in Windows are required to run ping in WSL. Pour exécuter une commande ping, exécutez Bash sur Ubuntu sur Windows en tant qu’administrateur, ou exécutez bash.exe à partir d’une invite de commandes/PowerShell avec des privilèges d’administrateur.To run ping, run Bash on Ubuntu on Windows as an administrator, or run bash.exe from a CMD/PowerShell prompt with administrator privileges.

Builds 14926 et ultérieuresBuild 14926+

Les privilèges d’administrateur ne sont plus nécessaires.Administrator privileges no longer required.

Bash est bloqué.Bash is hung

Si, alors que vous utilisez Bash, celui-ci se bloque et ne répond pas aux entrées, aidez-nous à diagnostiquer le problème en collectant une image mémoire et en nous la communiquant.If while working with bash, you find that bash is hung (or deadlocked) and not responding to inputs, help us diagnose the issue by collecting and reporting a memory dump. Notez que la procédure ci-après entraînera le plantage de votre système.Note that these steps will crash your system. Suivez-la uniquement si vous êtes à l’aise avec ce type d’opération, ou enregistrez votre travail au préalable.Do not do this if you are not comfortable with that or save your work prior to doing this.
Pour collecter une image mémoire :To collect a memory dump:

  1. Changez le type d’image mémoire en choisissant « Image mémoire complète ».Change the memory dump type to "complete memory dump". Lors de ce changement, prenez note du type d’image actuel.While changing the dump type, take a note of your current type.
  2. Suivez cette procédure pour configurer une commande de clavier produisant un plantage.Use the steps to configure crash using keyboard control.
  3. Reproduisez le blocage.Repro the hang or deadlock.
  4. Faites planter le système à l’aide de la séquence de touches définie à l’étape 2.Crash the system using the key sequence from (2).
  5. Le système plante et collecte l’image mémoire.The system will crash and collect the memory dump.
  6. Une fois le système redémarré, envoyez l’image memory.dmp sur secure@microsoft.com.Once the system reboots, report the memory.dmp to secure@microsoft.com. L’emplacement par défaut du fichier d’image mémoire est %SystemRoot%\memory.dmp ou C:\Windows\memory.dmp si C: est le lecteur système.The default location of the dump file is %SystemRoot%\memory.dmp or C:\Windows\memory.dmp if C: is the system drive. Dans l’e-mail, indiquez que le fichier d’image mémoire est destiné à l’équipe WSL ou Bash sur Windows.In the email, note that the dump is for the WSL or Bash on Windows team.
  7. Rétablissez le type d’image mémoire d’origine.Restore the memory dump type to the original setting.

Vérifier votre numéro de buildCheck your build number

Pour trouver le numéro de build de Windows et de l’architecture de votre PC, sélectionnez :To find your PC's architecture and Windows build number, open
Paramètres > Système > À proposSettings > System > About

Recherchez les champs Build du système d’exploitation et Type de système.Look for the OS Build and System Type fields.
Capture d’écran montrant les champs Build du système d’exploitation et Type de systèmeScreenshot of Build and System Type fields

Pour trouver le numéro de build de Windows Server, exécutez la commande suivante dans PowerShell :To find your Windows Server build number, run the following in PowerShell:

systeminfo | Select-String "^OS Name","^OS Version"

Vérifier que WSL est activéConfirm WSL is enabled

Vous pouvez vérifier que le sous-système Windows pour Linux est activé en exécutant la commande suivante dans PowerShell :You can confirm that the Windows Subsystem for Linux is enabled by running the following in PowerShell:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Problèmes de connexion du serveur OpenSSHOpenSSH-Server connection issues

L’erreur suivante se produit lors d’une tentative de connexion du serveur SSH : « Connection closed by 127.0.0.1 port 22 » (Connexion fermée par 127.0.0.1 port 22).Trying to connect your SSH server is failed with the following error: "Connection closed by 127.0.0.1 port 22".

  1. Vérifiez que votre serveur OpenSSH est en cours d’exécution :Make sure your OpenSSH Server is running:
    sudo service ssh status
    
    et veillez à suivre ce tutoriel : https://help.ubuntu.com/lts/serverguide/openssh-server.html.enand you've followed this tutorial: https://help.ubuntu.com/lts/serverguide/openssh-server.html.en
  2. Arrêtez le service SSHD et démarrez SSHD en mode débogage :Stop the sshd service and start sshd in debug mode:
    sudo service ssh stop
    sudo /usr/sbin/sshd -d
    
  3. Consultez les journaux de démarrage et vérifiez que les clés d’hôte sont disponibles et que les journaux ne contiennent pas de message de ce type :Check the startup logs and make sure HostKeys are available and you don't see log messages such as:
    debug1: sshd version OpenSSH_7.2, OpenSSL 1.0.2g  1 Mar 2016
    debug1: key_load_private: incorrect passphrase supplied to decrypt private key
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_rsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_dsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ed25519_key
    

Si vous voyez des messages de ce type et que les clés ne sont pas disponibles sous /etc/ssh/, vous devrez régénérer les clés ou simplement purger et installer le serveur OpenSSH :If you do see such messages and the keys are missing under /etc/ssh/, you will have to regenerate the keys or just purge&install openssh-server:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

« L’assembly référencé est introuvable. »"The referenced assembly could not be found." lors de l’activation de la fonctionnalité facultative WSLwhen enabling the WSL optional feature

Cette erreur est liée à un mauvais état d’installation.This error is related to being in a bad install state. Effectuez les étapes suivantes pour essayer de résoudre ce problème :Please complete the following steps to try and fix this issue:

  • Si vous exécutez la commande d’activation de la fonctionnalité WSL à partir de PowerShell, essayez d’utiliser l’interface GUI au lieu d’ouvrir le menu Démarrer, recherchez « Activer ou désactiver les fonctionnalités Windows », puis dans la liste, sélectionnez « Sous-système Windows pour Linux » qui installera le composant facultatif.If you are running the enable WSL feature command from PowerShell, try using the GUI instead by opening the start menu, searching for 'Turn Windows features on or off' and then in the list select 'Windows Subsystem for Linux' which will install the optional component.
  • Mettez à jour votre version de Windows en accédant à Paramètres, Mises à jour, puis en cliquant sur « Rechercher les mises à jour ».Update your version of Windows by going to Settings, Updates, and clicking 'Check for Updates'
  • Si les deux échouent et que vous devez accéder à WSL, procédez à une mise à niveau sur place en réinstallant Windows 10 avec un support d’installation et en sélectionnant « Tout conserver » pour vous assurer que vos applications et vos fichiers sont conservés.If both of those fail and you need to access WSL please consider upgrading in place by reinstalling Windows 10 using installation media and selecting 'Keep Everything' to ensure your apps and files are preserved. Vous trouverez des instructions pour ce faire dans la page Réinstaller Windows 10.You can find instructions on how to do so at the Reinstall Windows 10 page.