Forum aux questions sur le sous-système Windows pour Linux

Général

Qu’est-ce que le sous-système Windows pour Linux (WSL) ?

le Sous-système Windows pour Linux (WSL) est une fonctionnalité du système d’exploitation Windows qui vous permet d’exécuter un système de fichiers linux, ainsi que des outils en ligne de commande linux et des applications d’interface utilisateur graphique, directement sur Windows, en parallèle de vos applications et de votre Windows de bureau traditionnels.

Pour plus d’informations, consultez la page À propos de.

À qui WSL s’adresse-t-il ?

Il s’agit principalement d’un outil destiné aux développeurs, en particulier aux développeurs Web, à ceux qui travaillent sur des projets open source ou au déploiement dans des environnements de serveur Linux. WSL est destiné aux personnes qui aiment utiliser Bash, les outils linux courants ( sed , awk , etc.) et les infrastructures linux (Ruby, Python, etc.), mais qui utilisent également des outils de productivité Windows

Qu’est-ce que WSL me permet de faire ?

WSL vous permet d’exécuter Linux dans un interpréteur de commandes bash avec votre choix de distribution (Ubuntu, Debian, OpenSUSE, Kali, Alpine, etc.). Bash vous permet d’exécuter des applications et des outils Linux en ligne de commande. Par exemple, tapez lsb_release -a et appuyez sur Entrée ; vous verrez les détails de la distribution Linux en cours d’exécution :

Capture d’écran des détails de distribution

Vous pouvez également accéder au système de fichiers de votre ordinateur local à partir de l’interpréteur de commandes bash Linux : vous trouverez vos lecteurs locaux montés sous le /mnt dossier. Par exemple, votre lecteur C: est monté sous /mnt/c :

Capture d’écran du lecteur C monté

Pouvez-vous décrire un workflow de développement typique qui incorpore WSL ?

WSL cible une audience de développeur avec l’intention d’être utilisé dans le cadre d’une boucle de développement interne. Supposons que Sam crée un pipeline CI/CD (intégration continue et livraison continue) et qu’il souhaite le tester d’abord sur un ordinateur local (portable) avant de le déployer dans le cloud. Sam peut activer WSL (et WSL 2 pour améliorer la vitesse et les performances), puis utiliser une vraie instance Linux Ubuntu en local (sur l’ordinateur portable) avec les commandes et les outils Bash qu’ils préfèrent. Une fois le pipeline de développement vérifié localement, Sam peut alors envoyer (push) ce pipeline CI/CD vers le cloud (par ex. Azure) en le plaçant dans un conteneur Docker et en envoyant le conteneur à une instance cloud où il s’exécutera sur une machine virtuelle Ubuntu prête pour la production.

Qu’est-ce que Bash ?

Bash est un interpréteur de commandes texte et un langage de commandes connues. Il s’agit de l’interpréteur de commandes par défaut inclus dans Ubuntu et d’autres distributions Linux ainsi que dans macOS. Les utilisateurs tapent des commandes dans un interpréteur de commandes pour exécuter des scripts et/ou des commandes et des outils pour accomplir de nombreuses tâches.

Comment cela fonctionne ?

consultez cet article sur le Windows blog de la ligne de commande : une présentation approfondie de la façon dont WSL permet à Windows d’accéder à des fichiers Linux qui sont en détails sur la technologie sous-jacente.

Pourquoi utiliser WSL plutôt que Linux dans une machine virtuelle ?

WSL demande moins de ressources (processeur, mémoire et stockage) qu’une machine virtuelle complète. WSL vous permet également d’exécuter des applications et des outils en ligne de commande Linux avec vos applications Windows en ligne de commande, de bureau et du Store, et d’accéder à vos fichiers Windows à partir de Linux. Cela vous permet d’utiliser des applications Windows et des outils en ligne de commande Linux sur le même ensemble de fichiers si vous le souhaitez.

Pourquoi utiliser, par exemple, Ruby sur Linux plutôt que sur Windows ?

Certains outils multiplateformes ont été créés en supposant que l’environnement dans lequel ils s’exécutent se comporte comme Linux. Par exemple, certains outils partent du principe qu’ils sont en mesure d’accéder à des chemins de fichiers très longs ou que des fichiers/dossiers spécifiques existent. Cela provoque parfois des problèmes sur Windows qui se comporte souvent différemment de Linux.

De nombreux langages, tels que Ruby et Node.js, sont souvent portés sur Windows. Toutefois, les propriétaires de bibliothèques Ruby Gem ou Node/NPM ne portent pas tous leurs bibliothèques pour la prise en charge de Windows, et beaucoup ont des dépendances spécifiques à Linux. Cela peut souvent aboutir à des systèmes créés à l’aide de ces outils et bibliothèques qui font l’objet d’erreurs de build et parfois d’exécution ou de comportements indésirables sur Windows.

Il s’agit là de quelques-uns des problèmes qui ont conduit de nombreuses personnes à demander à Microsoft d’améliorer les outils en ligne de commande Windows et ce qui nous a amené à collaborer avec Canonical pour permettre aux outils en ligne de commande Linux et Bash natifs de s’exécuter sur Windows.

Qu’est-ce que cela signifie pour PowerShell ?

Lors de l’utilisation de projets OSS, il existe de nombreux scénarios dans lesquels il est très utile de passer à Bash à partir d’une invite PowerShell. La prise en charge de Bash est complémentaire et valorise davantage la ligne de commande sur Windows, ce qui permet à PowerShell et à la communauté PowerShell de tirer parti d’autres technologies répandues.

Pour en savoir plus, accédez au blog de l’équipe PowerShell : Bash for Windows: Why it’s awesome and what it means for PowerShell

Quels sont les processeurs pris en charge par WSL ?

WSL prend en charge les processeurs x64 et ARM.

Comment accéder à mon lecteur C: ?

les points de montage pour les disques durs sur l’ordinateur local sont créés automatiquement et offrent un accès facile au système de fichiers Windows.

/mnt/<drive letter>/

Un exemple d’utilisation serait cd /mnt/c pour accéder à c:\

Comment configurer Git Credential Manager ? (Comment utiliser mes autorisations Windows Git dans WSL ?)

consultez le didacticiel prise en main de git sur Sous-système Windows pour Linux, qui contient une section sur la configuration du gestionnaire d’informations d’identification git et le stockage des jetons d’authentification dans Windows gestionnaire d’informations d’identification.

Comment utiliser un fichier Windows avec une application Linux ?

L’un des avantages de WSL est la possibilité d’accéder à vos fichiers via des applications ou des outils Windows et Linux.

WSL monte les lecteurs fixes de votre ordinateur sous le dossier /mnt/<drive> de vos distributions Linux. Par exemple, votre lecteur C: est monté sous /mnt/c/

À l’aide de vos lecteurs montés, vous pouvez modifier le code dans, par exemple, C:\dev\myproj\ à l’aide de Visual Studio /ou VS Code et générer/tester ce code dans Linux en accédant aux mêmes fichiers via /mnt/c/dev/myproj.

en savoir plus sur l' utilisation des Windows et des systèmes de fichiers Linux .

Les fichiers du lecteur Linux sont-ils différents du lecteur Windows monté ?

  1. Les fichiers sous la racine Linux (c.-à-d. / ) sont contrôlés par WSL, ce qui s’aligne sur le comportement de Linux, y compris mais sans s’y limiter :

    • Fichiers qui contiennent des caractères de nom de fichier Windows non valides
    • Liens symboliques créés pour les utilisateurs non-administrateurs
    • Changement des attributs de fichier via chmod et chown
    • Respect de la casse des fichiers/dossiers
  2. Les fichiers des lecteurs montés sont contrôlés par Windows et présentent les comportements suivants :

    • Prise en charge du respect de la casse
    • Toutes les autorisations sont définies pour mieux refléter les autorisations Windows

Comment désinstaller une distribution WSL ?

Pour supprimer une distribution de WSL et supprimer toutes les données associées à cette distribution Linux, exécutez wsl --unregister <distroName><distroName> est le nom de votre distribution Linux, qui peut être affiché dans la liste de la wsl -l commande.

En outre, vous pouvez désinstaller l’application distribution Linux sur votre ordinateur comme n’importe quelle autre application du Windows Store.

Pour en savoir plus sur les commandes WSL, consultez l’article commandes de base pour WSL.

Comment exécuter un serveur OpenSSH ?

OpenSSH est fourni avec Windows en tant que fonctionnalité facultative. Consultez le document installation de OpenSSH . des privilèges d’administrateur dans Windows sont requis pour exécuter OpenSSH dans WSL. pour exécuter un serveur OpenSSH, exécutez votre distribution WSL (ie Ubuntu) ou Terminal Windows en tant qu’administrateur. Il existe plusieurs ressources qui couvrent les scénarios SSH avec WSL. consultez les articles de blog de Scott Hanselman : comment utiliser ssh sur un ordinateur Windows 10 à partir de Linux ou Windows ou n’importe où, comment se connecter à WSL2 sur Windows 10 à partir d’une machine externe, le moyen le plus simple de se connecter à Bash et à WSL2 sur Windows 10 à partir d’une machine externe, et comment utiliser le le de Windows 10 lt-dans OpenSSH pour automatiquement SSH sur une machine Linux distante.

Comment changer la langue d’affichage de WSL ?

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. 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. Vous devrez relancer votre distribution WSL pour que cette modification prenne effet.

L’exemple ci-dessous applique les paramètres régionaux en-US :

sudo update-locale LANG=en_US.UTF8

Pourquoi est-ce que je n’ai pas d’accès Internet à partir de WSL ?

Des utilisateurs ont signalé des problèmes posés par certaines applications de pare-feu, qui bloquent l’accès Internet dans WSL. Les pare-feux signalés sont :

  1. Kaspersky
  2. AVG
  3. Avast
  4. Symantec Endpoint Protection
  5. F-sécurisé

Dans certains cas, la désactivation du pare-feu permet d’obtenir l’accès. Parfois, il semble que la simple installation du pare-feu bloque l’accès.

Comment accéder à un port à partir de WSL dans Windows ?

WSL partage l’adresse IP de Windows, car il s’exécute sur Windows. Par conséquent, vous pouvez accéder à n’importe quel port sur localhost ; par exemple, si vous avez du contenu web sur le port 1234, vous pouvez utiliser https://localhost:1234 dans votre navigateur Windows. Pour plus d’informations, consultez accès aux applications réseau.

Comment puis-je sauvegarder mes distributions WSL ou les déplacer d’un lecteur à un autre ?

la meilleure façon de sauvegarder ou de déplacer vos distributions consiste à utiliser les commandes d’exportation/importation disponibles dans Windows Version 1809 et versions ultérieures. Vous pouvez exporter l’intégralité de votre distribution vers un tarball à l’aide de la commande wsl --export. Vous pouvez ensuite importer cette distribution dans WSL à l’aide de la wsl --import commande, qui peut nommer un nouvel emplacement de lecteur pour l’importation, ce qui vous permet de sauvegarder et d’enregistrer les États de vos distributions WSL.

notez que les services de sauvegarde traditionnels qui sauvegardent les fichiers de vos dossiers AppData (comme Sauvegarde Windows) n’altéreront pas vos fichiers Linux.

WSL 2

WSL 2 utilise-t-il Hyper-V ? Sera-t-il disponible sur Windows 10 Famille ?

WSL 2 est disponible sur toutes les références de bureau où WSL est disponible, y compris Windows 10 Famille.

La dernière version de WSL utilise l’architecture Hyper-V pour activer sa virtualisation. Cette architecture sera disponible dans le composant facultatif « Plateforme de machine virtuelle ». Ce composant facultatif sera disponible sur toutes les références SKU. Vous pouvez vous attendre à obtenir plus de détails sur cette expérience quand nous approcherons de la version WSL 2.

Qu’arrivera-t-il à WSL 1 ? Sera-t-il abandonné ?

Nous n’avons actuellement aucun projet de dépréciation de WSL 1. Vous pouvez exécuter les distributions WSL 1 et WSL 2 côte à côte, et vous pouvez mettre à niveau et rétrograder n’importe quelle distribution à tout moment. L’ajout de WSL 2 comme nouvelle architecture offre une meilleure plateforme permettant à l’équipe WSL de fournir des fonctionnalités qui font de WSL un outil optimal pour exécuter un environnement Linux dans Windows.

Est-il possible d’exécuter WSL 2 et d’autres outils de virtualisation tiers tels que VMware ou VirtualBox ?

Certaines applications tierces ne fonctionnent pas quand Hyper-V est en cours d’utilisation, ce qui signifie qu’elles ne pourront pas s’exécuter quand WSL 2 est activé, comme VMware et VirtualBox. Toutefois, récemment, VirtualBox et VMware ont publié des versions qui prennent en charge Hyper-V et WSL2. Apprenez-en davantage sur les changements de VirtualBox ici et sur les changements de VMware ici. Pour la résolution des problèmes, consultez les discussions sur les problèmes de VirtualBox dans le dépôt WSL sur GitHub.

Nous travaillons régulièrement sur des solutions pour prendre en charge l’intégration tierce d’Hyper-V. Par exemple, nous exposons un ensemble d’API appelé Plateforme hyperviseur que les fournisseurs de virtualisation tiers pourront utiliser pour rendre leurs logiciels compatibles avec Hyper-V. Cela permet aux applications d’utiliser l’architecture Hyper-V pour leur émulation, comme l’émulateur Google Android et VirtualBox 6 et ultérieur, qui sont désormais compatibles avec Hyper-V.

Pour plus d’informations sur les problèmes de WSL 2 avec VirtualBox 6,1, voir WSL Problems référentiel.

Puis-je accéder au GPU dans WSL 2 ? Existe-t-il des plans pour améliorer la prise en charge du matériel ?

Nous avons publié la prise en charge de l’accès au GPU à l’intérieur des distributions WSL 2. Cela signifie que vous pouvez maintenant utiliser WSL pour des scénarios de machine learning, d’intelligence artificielle et de science des données plus facilement quand des jeux de Big Data sont impliqués. Consultez le tutoriel de prise en main du support GPU. Pour l’heure, WSL 2 ne comprend pas de prise en charge de port série ni de prise en charge de périphérique USB. Nous étudions actuellement la meilleure façon d’ajouter ces fonctionnalités.

WSL 2 pourra-t-il utiliser des applications réseau ?

Oui, en général, les applications réseau sont plus rapides et plus performantes, car la compatibilité des appels système est complète. Toutefois, la nouvelle architecture utilise des composants de réseau virtualisés. Cela signifie que dans les versions d’évaluation initiales, WSL 2 se comportera d’une façon plus similaire à une machine virtuelle, par exemple : WSL 2 aura une adresse IP différente de celle de l’ordinateur hôte. Nous nous efforçons de vous fournir avec WSL 2 une expérience similaire à celle que vous aviez avec WSL 1, et cela implique l’amélioration de notre histoire de réseau.

Puis-je exécuter WSL 2 sur une machine virtuelle ?

Oui. Vous devez vous assurer que la virtualisation imbriquée est activée sur la machine virtuelle. Vous pouvez l’activer dans votre hôte Hyper-V parent en exécutant la commande suivante dans une fenêtre PowerShell avec des privilèges d’administrateur :

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Veillez à remplacer « <VMName> » par le nom de votre machine virtuelle.

Puis-je utiliser wsl.conf dans WSL 2 ?

WSL 2 prend en charge le même fichier wsl.conf que WSL 1 utilise. Cela signifie que toutes les options de configuration que vous aviez définies dans une distribution WSL 1, telles que le montage automatique de lecteurs Windows, l’activation ou la désactivation de l’interopérabilité, le changement du répertoire où les lecteurs Windows sont montés, etc., fonctionneront aussi dans WSL 2. Vous pouvez en savoir plus sur les options de configuration dans WSL dans la page gestion de la distribution . En savoir plus sur la prise en charge du montage de lecteurs, de disques, de périphériques ou de disques durs virtuels (VHD) dans l’article monter un disque Linux dans WSL 2 .

Où puis-je envoyer des commentaires ?

Les problèmes WSL Product référentiel vous permettent d’effectuer les opérations suivantes :

  • Recherchez les problèmes existants pour voir s’ils sont associés à un problème que vous rencontrez. Notez que dans la barre de recherche, vous pouvez supprimer « est : ouvrir » pour inclure les problèmes qui ont déjà été résolus dans votre recherche. N’hésitez pas à vous préoccuper des commentaires ou à donner un pouce aux problèmes ouverts que vous aimeriez exprimer en priorité.
  • Envoyez un nouveau problème. Si vous avez rencontré un problème avec WSL et qu’il ne semble pas être un problème existant, vous pouvez sélectionner le bouton vert nouveau problème , puis choisir le rapport de WSL-bogue. vous devrez inclure un titre pour le problème, votre numéro de build Windows (exécutez cmd.exe /c ver pour voir votre numéro de build actuel), que vous exécutiez WSL 1 ou 2, votre version de noyau Linux actuelle # (exécuter wsl.exe --status ou cat /proc/version ), la version # de votre distribution (exécution lsb_release -r ), les autres versions de logiciel impliquées, les étapes de reproduction, le comportement attendu, le comportement réel et les journaux de diagnostic, s’ils sont disponibles et appropriés. Pour plus d’informations, consultez contribution à WSL.
  • Envoyez une demande de fonctionnalité en sélectionnant le bouton vert nouveau problème , puis sélectionnez demande de fonctionnalité. Vous devrez répondre à quelques questions qui décrivent votre demande.

Vous pouvez également :

Si vous voulez rester informé des dernières informations sur WSL, vous pouvez le faire sur :