Partager via


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

Généralités

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 GUI, directement sur Windows, en même temps que vos applications de bureau et applications Windows traditionnelles.

Pour plus d’informations, consultez la page à propos de celle-ci.

Pour qui est WSL ?

Il s’agit principalement d’un outil pour les développeurs, en particulier les développeurs web, ceux qui travaillent sur des projets open source ou le déploiement sur des environnements serveur Linux. WSL est destiné à toute personne qui aime utiliser Bash, des outils Linux courants (sed, awketc.) et des frameworks Linux (Ruby, Python, etc.), mais aime également utiliser des outils de productivité Windows.

Que puis-je faire avec WSL ?

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.). À l’aide de Bash, vous pouvez exécuter des outils et applications 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 C: lecteur est monté sous /mnt/c:

Capture d’écran du lecteur C monté

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

WSL cible un public de développeurs 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 souhaite tout d’abord le tester sur un ordinateur local (ordinateur portable) avant de le déployer dans le cloud. Sam peut activer WSL (& WSL 2 pour améliorer la vitesse et les performances), puis utiliser une véritable instance Ubuntu Linux localement (sur l’ordinateur portable) avec les commandes et outils Bash qu’ils préfèrent. Une fois le pipeline de développement vérifié localement, Sam peut ensuite envoyer (push) ce pipeline CI/CD vers le cloud (c’est-à-dire Azure) en le rendant dans un conteneur Docker et en envoyant le conteneur vers une instance cloud où il s’exécute sur une machine virtuelle Ubuntu prête pour la production.

Présentation de Bash

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

Comment cela fonctionne-t-il ?

Consultez cet article sur le blog sur la ligne de commande Windows : une présentation approfondie de la façon dont WSL permet à Windows d’accéder aux fichiers Linux , ce qui explique en détail la technologie sous-jacente.

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

WSL nécessite moins de ressources (processeur, mémoire et stockage) qu’une machine virtuelle complète. WSL vous permet également d’exécuter des outils et applications en ligne de commande Linux en même temps que vos applications de ligne de commande, de bureau et de magasin Windows, 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 utiliserais-je, par exemple, Ruby sur Linux au lieu de 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 supposent 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 souvent des problèmes sur Windows qui se comportent souvent différemment de Linux.

De nombreux langages comme Ruby et Node.js sont souvent portés vers, et s’exécutent très bien sur Windows. Toutefois, tous les propriétaires de bibliothèque Ruby Gem ou Node/NPM ne portent pas tous leurs bibliothèques pour prendre en charge Windows, et de nombreuses personnes ont des dépendances spécifiques à Linux. Cela peut souvent entraîner des systèmes créés à l’aide de tels outils et bibliothèques souffrant d’erreurs de génération et parfois d’erreurs d’exécution ou de comportements indésirables sur Windows.

Ce sont seulement quelques-uns des problèmes qui ont provoqué l’exécution d’outils en ligne de commande de Microsoft par Microsoft et ce qui nous a conduit à collaborer avec Canonical pour permettre aux outils en ligne de commande Bash et Linux 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 où il est extrêmement utile de passer à Bash à partir d’une invite PowerShell. La prise en charge de Bash est complémentaire et renforce la valeur de la ligne de commande sur Windows, ce qui permet à PowerShell et à la communauté PowerShell de tirer parti d’autres technologies populaires.

En savoir plus sur le blog de l’équipe PowerShell -- Bash pour Windows : Pourquoi c’est génial et ce qu’il signifie pour PowerShell

Quels processeurs WSL prend-il en charge ?

WSL prend en charge les processeurs x64 et Arm64.

Comment accéder à mon lecteur C : ?

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

Lettre< /mnt/>lecteur/

Exemple d’utilisation : cd /mnt/c 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 le sous-système Windows pour Linux, qui comprend une section sur la configuration du Gestionnaire d’informations d’identification Git et le stockage des jetons d’authentification dans Le Gestionnaire d’informations d’identification Windows.

Comment utiliser un fichier Windows avec une application Linux ?

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

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

À l’aide de vos lecteurs montés, vous pouvez modifier du code dans, par exemple, C:\dev\myproj\ en utilisant 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 de l’article sur les systèmes de fichiers Windows et Linux .

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

  1. Les fichiers sous la racine Linux (c’est-à-dire /) sont contrôlés par WSL qui s’aligne sur le comportement Linux, y compris, mais pas limité à :

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

    • Respect de la casse de prise en charge
    • Toutes les autorisations sont définies pour refléter au mieux 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 <Distro><Distro> le nom de votre distribution Linux, qui peut être visible dans la liste dans la wsl -l commande.

En outre, vous pouvez ensuite désinstaller l’application de distribution Linux sur votre ordinateur comme n’importe quelle autre application de magasin.

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 comme fonctionnalité facultative. Consultez la documentation Installer OpenSSH . Les 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 (c’est-à-dire Ubuntu) ou terminal Windows en tant qu’administrateur. Il existe plusieurs ressources qui couvrent des scénarios SSH avec WSL. Consultez les articles de blog de Scott Hanselman : How to SSH into a Windows 10 Machine from Linux OR Windows OR Anywhere, How to SSH into WSL2 on Windows 10 from an external machine, THE EASY WAY how to SSH into Bash and WSL2 on Windows 10 from an external machine, and How to use Windows 10's built-in OpenSSH to automatically SSH into a remote Linux machine.

Comment modifier 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 modifie les paramètres régionaux en en-US:

sudo update-locale LANG=en_US.UTF8

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

Certains 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-Secure

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 à tous les ports sur localhost, par exemple si vous aviez du contenu web sur le port 1234, vous pouvez https://localhost:1234 accéder à votre navigateur Windows. Pour plus d’informations, consultez Accès aux applications réseau.

Comment sauvegarder mes distributions WSL ?

La meilleure façon de sauvegarder ou de déplacer vos distributions consiste à utiliser les commandes d’importation d’exportation/ disponibles dans Windows Version 1809 et ultérieures. Vous pouvez exporter l’intégralité de votre distribution vers un tarball à l’aide de la wsl --export commande. 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 (ou de déplacer) de vos distributions WSL. Pour en savoir plus sur le déplacement de vos distributions WSL, consultez Comment transférer mes fichiers WSL d’un ordinateur à un autre ?.

Les services de sauvegarde traditionnels qui sauvegardent des fichiers dans vos dossiers AppData (comme la sauvegarde Windows) ne endommageront pas vos fichiers Linux.

Puis-je utiliser WSL pour les scénarios de production ?

Oui, toutefois, WSL a été conçu et conçu pour être utilisé avec des flux de travail de développement de boucle interne. Il existe des fonctionnalités de conception dans WSL qui le rendent idéal à cet effet, mais peuvent compliquer les scénarios liés à la production par rapport à d’autres produits. Notre objectif est d’indiquer clairement comment WSL diffère d’un environnement de machine virtuelle standard. Vous pouvez donc prendre la décision de déterminer s’il répond aux besoins de votre entreprise.

Les principales différences entre WSL et un environnement de production traditionnel sont les suivantes :

  • WSL a une machine virtuelle utilitaire légère qui démarre, arrête et gère automatiquement les ressources.
  • Si vous n’avez pas de handles de fichiers ouverts pour les processus Windows, la machine virtuelle WSL est automatiquement arrêtée. Cela signifie que si vous l’utilisez en tant que serveur web, SSH dans celui-ci pour exécuter votre serveur, puis quittez, la machine virtuelle peut s’arrêter, car elle détecte que les utilisateurs sont finis de l’utiliser et nettoie ses ressources.
  • Les utilisateurs WSL ont un accès complet à leurs instances Linux. La durée de vie de la machine virtuelle, les distributions WSL inscrites, etc., sont toutes accessibles par l’utilisateur et peuvent être modifiées par l’utilisateur.
  • WSL donne automatiquement l’accès aux fichiers Windows.
  • Les chemins Windows sont ajoutés à votre chemin par défaut, ce qui peut entraîner un comportement inattendu pour certaines applications Linux par rapport à un environnement Linux traditionnel.
  • WSL peut exécuter des exécutables Windows à partir de Linux, ce qui peut également entraîner un environnement différent d’une machine virtuelle Linux traditionnelle.
  • Le noyau Linux utilisé par WSL est mis à jour automatiquement.
  • L’accès GPU dans WSL se produit via un /dev/dxg appareil, qui route les appels GPU vers le GPU Windows. Cette configuration est différente de celle d’une configuration Linux traditionnelle.
  • Il existe d’autres différences plus petites par rapport à Linux nu et d’autres différences devraient survenir à l’avenir, car le flux de travail de développement de boucle interne est hiérarchisé.

Comment puis-je transférer mes fichiers WSL d’un ordinateur vers un autre ?

Vous pouvez accomplir cette tâche de plusieurs façons :

  • Le moyen le plus simple consiste à utiliser la wsl --export <Distro> <FileName> --format vhd commande pour exporter votre distribution WSL vers un fichier VHD. Vous pouvez ensuite copier ce fichier sur un autre ordinateur et l’importer à l’aide wsl --import <Distro> <InstallLocation> <FileName> --vhdde . Pour plus d’informations, consultez les commandes d’importation et d’exportation dans la documentation sur les commandes de base WSL .
  • L’implémentation ci-dessus nécessite beaucoup d’espace disque. Si vous n’avez pas beaucoup d’espace disque, vous pouvez utiliser des techniques Linux pour déplacer vos fichiers :
    • Permet tar -czf <tarballName> <directory> de créer un tarball de vos fichiers. Vous pouvez ensuite copier ces fichiers spécifiques sur votre nouvel ordinateur et les exécuter tar -xzf <tarballName> pour les extraire.
    • Vous pouvez également exporter une liste de packages installés via apt une commande comme suit : dpkg --get-selections | grep -v deinstall | awk '{print $1}' > package_list.txt puis réinstaller ces mêmes packages sur un autre ordinateur avec une commande comme sudo apt install -y $(cat package_list.txt) après le transfert du fichier.

Comment déplacer ma distribution WSL vers un autre lecteur ou emplacement ?

Vous pouvez le faire à l’aide de PowerShell. Vous trouverez ci-dessous les commandes et explications nécessaires pour chaque étape. Ouvrez une fenêtre PowerShell et ajustez les valeurs entre les <> balises pour qu’elles correspondent à votre cas d’usage spécifique :

# Export your distro to that folder as a VHD
wsl --export <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx> --format vhd

# Unregister your old distro
# Please note this will erase your existing distro's file contents, please ensure the backup file you created in the 2nd step is present at the location and that the export operation completed successfully.
# Please exercise caution when using this command, as it is destructive and could cause data loss.
wsl --unregister <Distro, e.g: Ubuntu>

# Import your VHD backup
wsl --import-in-place <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx>

Comment définir votre compte d’utilisateur par défaut

Vous pouvez configurer votre compte d’utilisateur par défaut en définissant une wsl.conf valeur de user.default=<name>

WSL 2

WSL 2 est-il disponible sur Windows 10 Famille et Windows 11 Famille ?

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

Plus précisément, WSL2 nécessite que deux fonctionnalités soient activées :

  1. « Plateforme de machines virtuelles » (sous-ensemble de Hyper-V)
  2. « Sous-système Windows pour Linux »

WSL 2 utilise-t-il Hyper-V ?

La dernière version de WSL utilise un sous-ensemble d’architecture Hyper-V pour permettre sa virtualisation. Ce sous-ensemble est fourni sous la forme d’un composant facultatif nommé « Virtual Machine Platform », disponible sur toutes les références SKU de bureau.

Qu’adviendra-t-il de WSL 1 ? Sera-t-il abandonné ?

Nous n’avons actuellement aucun plan de déprécier WSL 1. Vous pouvez exécuter des distributions WSL 1 et WSL 2 côte à côte, et mettre à niveau et rétrograder n’importe quelle distribution à tout moment. L’ajout de WSL 2 en tant que nouvelle architecture présente une meilleure plateforme pour l’équipe WSL afin de fournir des fonctionnalités qui permettent à WSL d’exécuter un environnement Linux dans Windows.

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

Certaines applications tierces ne peuvent pas fonctionner lorsque Hyper-V est en cours d’utilisation, ce qui signifie qu’elles ne pourront pas s’exécuter lorsque WSL 2 est activé, comme VMware et VirtualBox. Toutefois, virtualBox et VMware ont récemment publié des versions qui prennent en charge Hyper-V et WSL2. En savoir plus sur les modifications de VirtualBox ici et les modifications de VMware ici. Pour résoudre les problèmes, consultez les discussions sur les problèmes VirtualBox dans le référentiel WSL sur GitHub. StackOverflow offre également un conseil utile : Comment obtenir VirtualBox 6.0 et WSL en même temps.

Nous travaillons constamment sur des solutions pour prendre en charge l’intégration tierce d’Hyper-V. Par exemple, nous exposons un ensemble d’API appelées Plateforme Hypervisor que les fournisseurs de virtualisation tiers peuvent utiliser pour rendre leur logiciel compatible 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 versions ultérieures, qui sont désormais compatibles avec Hyper-V.

Consultez le référentiel des problèmes WSL pour plus d’informations et de discussion sur les problèmes WSL 2 avec VirtualBox 6.1.

*Si vous recherchez une machine virtuelle Windows, VMWare, Hyper-V, VirtualBox et des téléchargements de machines virtuelles Parallels sont disponibles dans le Centre de développement Windows.

Puis-je accéder au GPU dans WSL 2 ? Existe-t-il des plans pour augmenter la prise en charge matérielle ?

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 désormais utiliser WSL pour le Machine Learning, l’intelligence artificielle et les scénarios de science des données plus facilement lorsque des jeux Big Data sont impliqués. Consultez le didacticiel de prise en charge du GPU . À l’heure actuelle, WSL 2 n’inclut pas la prise en charge série ou la prise en charge des périphériques USB. Nous étudions la meilleure façon d’ajouter ces fonctionnalités. Toutefois, la prise en charge USB est désormais disponible via le projet USBIPD-WIN. Consultez Connecter des périphériques USB pour connaître les étapes de configuration de la prise en charge des périphériques USB.

WSL 2 peut-il utiliser des applications réseau ?

Oui, dans les applications réseau générales fonctionneront mieux et seront plus rapides avec WSL 2, car il offre une compatibilité complète des appels système. Toutefois, l’architecture WSL 2 utilise des composants réseau virtualisés, ce qui signifie que WSL 2 se comporte de la même façon qu’une machine virtuelle . Les distributions WSL 2 ont une adresse IP différente de celle de l’ordinateur hôte (système d’exploitation Windows). Pour plus d’informations, consultez Accès aux applications réseau avec WSL.

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

Oui! Vous devez vous assurer que la machine virtuelle a activé la virtualisation imbriquée. Cela peut être activé 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 des lecteurs Windows, l’activation ou la désactivation de l’interopérabilité, la modification du répertoire dans lequel les lecteurs Windows seront montés, etc. fonctionneront tous à l’intérieur de 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 des lecteurs de montage, des disques, des appareils ou des disques durs virtuels (VHD) dans l’article Monter un disque Linux dans WSL 2 .

1 : Journal des modifications pour VirtualBox 6.02 : Hyper-V API3 : Hyper-V prise en charge de l’émulateur Android4 : VMware Workstation Tech Preview 20H1 — Prise en charge de VBS Hyper-V/Host

Où puis-je fournir des commentaires ?

Les problèmes de référentiel de produits WSL vous permettent de :

  • Effectuer des recherches dans les problèmes existants pour voir si certains sont associés à un problème que vous rencontrez. Notez que, dans la barre de recherche, vous pouvez supprimer « is:open » pour inclure les problèmes qui ont déjà été résolus dans votre recherche. Pensez à commenter ou approuver les problèmes ouverts que vous aimeriez voir traités en priorité.
  • Signaler un nouveau problème. Si vous avez rencontré un problème avec WSL qui ne semble pas déjà exister, vous pouvez sélectionner le bouton vert Nouveau problème, puis choisir WSL - Rapport de bogue. Vous devrez inclure un titre pour le problème, votre numéro de build Windows (exécutez cmd.exe /c ver pour afficher votre numéro de build actuelle), indiquer si vous exécutez WSL 1 ou 2, votre numéro de version de noyau Linux actuelle (exécutez wsl.exe --status ou cat /proc/version), le numéro de version de votre distribution (exécutez lsb_release -r), les autres versions logicielles 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.
  • Envoyer une demande de fonctionnalité en sélectionnant le bouton vert Nouveau problème, puis Demande de fonctionnalité. Vous devrez répondre à quelques questions pour décrire votre demande.

Vous pouvez également :

Si vous souhaitez rester à jour avec les dernières nouvelles WSL, vous pouvez le faire avec :

Comment résoudre « Erreur : 0x800704ec Ce programme est bloqué par la stratégie de groupe. Pour plus d’informations, contactez votre administrateur système.

Cette erreur est due à une stratégie de groupe bloquant WSL. Pour résoudre ce problème, exécutez d’abord la commande wsl --update pour effectuer la mise à jour vers la dernière version du Windows Store. Si cela ne résout pas le problème, contactez votre administrateur. En savoir plus sur la différence entre la version WSL de la boîte de réception et la version store de WSL : WSL dans le Microsoft Store.

LxssManager a-t-il été remplacé par WSLService ?

Oui, LxssManager a été remplacé par WSLService lorsque WSL est passé d’un composant de boîte de réception à la place en cours de service par le Microsoft Store.