Häufig gestellte Fragen zum Windows-Subsystem für Linux

Allgemein

Was ist das Windows-Subsystem für Linux (WSL)?

Das Windows-Subsystem für Linux (WSL) ist ein Feature des Windows-Betriebssystems, mit dem Sie ein Linux-Dateisystem zusammen mit Linux-Befehlszeilentools und GUI-Apps direkt unter Windows ausführen können.

Ausführlichere Informationen finden Sie auf der Seite Informationen.

Für wen ist WSL geeignet?

Dies ist in erster Linie ein Tool für Entwickler, insbesondere Webentwickler, die an Open Source Projekten arbeiten oder in Linux-Serverumgebungen bereitstellen. WSL ist für alle, die Bash, allgemeine Linux-Tools (, awketc.) und Linux-first-Frameworks (sedRuby, Python usw.) verwenden, aber auch windows-Produktivitätstools verwenden

Welche Aufgaben kann ich mit WSL erledigen?

WSL ermöglicht es Ihnen, Linux in einer Bash-Shell mit Ihrer Wahl der Verteilung (Ubuntu, Debian, OpenSUSE, Kali, Alpine usw.) auszuführen. Mithilfe von Bash können Sie Linux-Befehlszeilentools und -Apps ausführen. Geben Sie z.B. lsb_release -a ein, und drücken Sie die EINGABETASTE. Es werden Details zu der derzeit ausgeführten Linux-Distribution angezeigt:

Screenshot der Details der Distribution

Sie können auch über die Linux Bash-Shell auf das Dateisystem Ihres lokalen Computers zugreifen– Sie finden Ihre lokalen Laufwerke, die unter dem /mnt Ordner bereitgestellt werden. Das Laufwerk C: wird beispielsweise unter /mnt/c eingebunden:

Screenshot des eingebundenen Laufwerks „C:“

Könnten Sie einen typischen Entwicklungsworkflow beschreiben, der WSL einbezieht?

Die WSL richtet sich an ein Entwicklerpublikum mit der Absicht, als Teil einer inneren Entwicklungsschleife verwendet zu werden. Nehmen wir an, Sam erstellt eine CI/CD-Pipeline (Continuous Integration & Continuous Delivery) und möchte diese zunächst auf einem lokalen Computer (Laptop) testen, bevor er sie in der Cloud bereitstellt. Sam kann WSL (& WSL 2 zur Verbesserung von Geschwindigkeit und Leistung) aktivieren und dann lokal (auf dem Laptop) eine Linux-Ubuntu-Originalinstanz mit den von jeweiligen bevorzugten Bash-Befehlen und Tools verwenden. Sobald die Entwicklungspipeline lokal überprüft wurde, kann Sam diese CI/CD-Pipeline in die Cloud pushen, indem er sie in einen Dockercontainer umwandelt, und den Container in eine Cloudinstanz pushen, wo er auf einer produktionsbereiten Ubuntu-VM ausgeführt wird.

Was ist Bash?

Bash ist eine beliebte, textbasierte Shell und Befehlssprache. Dabei handelt es sich um die Standardshell, die in Ubuntu und anderen Linux-Distributionen sowie in macOS enthalten ist. Benutzer geben Befehle in eine Shell ein, um Skripts und/oder Befehle und Tools auszuführen, um zahlreiche Aufgaben zu erledigen.

Wie funktioniert das?

Schauen Sie sich diesen Artikel im Windows-Befehlszeilenblog an: Ein tiefer Einblick in die Vorgehensweise, wie WSL Windows auf Linux-Dateien zugreifen kann , die ausführliche Informationen zur zugrunde liegenden Technologie erhalten.

Warum sollte ich WSL anstelle von Linux auf einem virtuellen Computer verwenden?

WSL erfordert weniger Ressourcen (CPU, Arbeitsspeicher und Speicher) als ein vollständiger virtueller Computer. WSL ermöglicht es Ihnen auch, Linux-Befehlszeilentools und -Apps neben Ihren Windows Befehlszeilen-, Desktop- und Store-Apps auszuführen und von Linux aus auf Ihre Windows-Dateien zuzugreifen. Auf diese Weise können Sie Windows-Apps und Linux-Befehlszeilentools für denselben Satz von Dateien verwenden, wenn Sie möchten.

Warum sollte ich beispielsweise Ruby unter Linux anstatt unter Windows verwenden?

Einige plattformübergreifende Tools wurden unter der Annahme erstellt, dass sich die Umgebung, in der sie ausgeführt werden, wie Linux verhält. Einige Tools gehen beispielsweise davon aus, dass auf sehr lange Dateipfade zugegriffen werden kann oder dass bestimmte Dateien/Ordner vorhanden sind. Dies verursacht unter Windows häufig Probleme, da sich dieses Betriebssystem meistens anders als Linux verhält.

Viele Sprachen wie Ruby und Node.js werden häufig portiert und auf Windows hervorragend ausgeführt. Allerdings portieren nicht alle Besitzer von Ruby Gem- oder node/NPM-Bibliotheken ihre Bibliotheken, um Windows zu unterstützen, und viele von ihnen verfügen über Linux-spezifische Abhängigkeiten. Dies kann häufig dazu führen, dass Systeme, die mit solchen Tools und Bibliotheken erstellt wurden, unter Windows unter Build- und manchmal unter Laufzeitfehlern leiden oder unerwünschtes Verhalten aufweisen.

Dies sind nur einige der Probleme, die viele Benutzer veranlasst haben, Microsoft zu bitten, die Befehlszeilentools von Windows zu verbessern. Dies hat uns auch dazu veranlasst, eine Partnerschaft mit Canonical einzugehen, damit native Bash- und Linux-Befehlszeilentools unter Windows ausgeführt werden können.

Was bedeutet das für PowerShell?

Während der Arbeit mit OSS-Projekten gibt es zahlreiche Szenarien, in denen es äußerst nützlich ist, aus einer PowerShell-Eingabeaufforderung zu Bash zu wechseln. Die Bash-Unterstützung ist ergänzend und stärkt den Wert der Befehlszeile unter Windows, sodass PowerShell und die PowerShell-Community andere gängige Technologien nutzen können.

Weitere Informationen finden Sie im Blog des PowerShell-Teams: Bash for Windows: Why it’s awesome and what it means for PowerShell.

Welche Prozessoren werden von WSL unterstützt?

WSL unterstützt x64- und Arm-CPUs.

Wie greife ich auf mein Laufwerk „C:“ zu?

Mount Points für Festplatten auf dem lokalen Computer werden automatisch erstellt und bieten einfachen Zugriff auf das Windows-Dateisystem.

/mnt/<drive letter>/

Beispielsyntax für den Zugriff auf „C:\“: cd /mnt/c

Wie richte ich die Git-Anmeldeinformationsverwaltung ein? (Wie verwende ich meine Windows Git-Berechtigungen in WSL?)

Sehen Sie sich das Lernprogramm "Erste Schritte" mit Git auf Windows-Subsystem für Linux an, das einen Abschnitt zum Einrichten von Git Credential Manager und zum Speichern von Authentifizierungstoken in Windows Credential Manager bietet.

Wie verwende ich eine Windows-Datei mit einer Linux-App?

Einer der Vorteile von WSL besteht darin, dass Sie über Windows- und Linux-Apps oder -Tools auf Ihre Dateien zugreifen können.

WSL bindet die Festplattenlaufwerke Ihres Computers unter dem Ordner /mnt/<drive> in Ihre Linux-Distributionen ein. Das Laufwerk C: wird beispielsweise unter /mnt/c/ eingebunden.

Mit den eingebundenen Laufwerken können Sie beispielsweise Code in C:\dev\myproj\ mit Visual Studio oder VS Code bearbeiten und diesen Code in Linux erstellen und testen, indem Sie über /mnt/c/dev/myproj auf die gleichen Dateien zugreifen.

Weitere Informationen finden Sie im Artikel "Arbeiten in Windows- und Linux-Dateisystemen ".

Unterscheiden sich die Dateien im Linux-Laufwerk vom eingebundenen Windows-Laufwerk?

  1. Dateien unter dem Linux-Stamm (d. h. /) werden von WSL gesteuert, die das Linux-Verhalten ausrichten, einschließlich, aber nicht beschränkt auf:

    • Dateien, die ungültige Zeichen für Windows-Dateinamen enthalten
    • Für Benutzer ohne Administratorrechte erstellte symbolische Verknüpfungen
    • Ändern von Dateiattributen über chmod und chown
    • Unterscheidung von Groß-/Kleinschreibung für Dateien/Ordner
  2. Dateien in eingebundenen Laufwerken werden von Windows gesteuert und weisen das folgende Verhalten auf:

    • Unterstützung von Unterscheidung zwischen Groß-/Kleinschreibung
    • Alle Berechtigungen sind so festgelegt, dass Sie die Windows-Berechtigungen bestmöglich widerspiegeln

Wie deinstalliere ich eine WSL-Distribution?

Um eine Verteilung von WSL zu entfernen und alle Daten zu löschen, die dieser Linux-Verteilung zugeordnet sind, führen Sie wsl --unregister <distroName> aus, wo <distroName> der Name Ihrer Linux-Verteilerliste angezeigt wird, die aus der Liste im wsl -l Befehl angezeigt werden kann.

Darüber hinaus können Sie die Linux-Distro-App auf Ihrem Computer genauso wie jede andere Store-Anwendung deinstallieren.

Weitere Informationen zu wsl-Befehlen finden Sie im Artikel " Grundlegende Befehle für WSL.

Wie führe ich einen OpenSSH-Server aus?

OpenSSH wird mit Windows als optionales Feature ausgeliefert. Weitere Informationen finden Sie im Dokument "OpenSSH installieren ". Administratorrechte in Windows sind erforderlich, um OpenSSH in WSL auszuführen. Um einen OpenSSH-Server auszuführen, führen Sie Ihre WSL-Verteilung (ie Ubuntu) oder Windows-Terminal als Administrator aus. Es gibt mehrere Ressourcen, die SSH-Szenarien mit WSL abdecken. Schauen Sie sich Scott Hanselmans Blogartikel an: So wird's gemacht: Ssh in einem Windows 10 Computer von Linux ODER Windows ODER überall, 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, andHow to use Windows 10 Es ist integrierte OpenSSH, um automatisch SSH in einem Remote-Linux-Computer zu verwenden.

Wie ändere ich die Anzeigesprache von WSL?

Die WSL-Installation versucht, das Ubuntu-Gebietsschema automatisch so zu ändern, dass es dem Gebietsschema Ihrer Windows-Installation entspricht. Wenn Sie dieses Verhalten nicht wünschen, können Sie diesen Befehl ausführen, um das Ubuntu-Gebietsschema zu ändern, nachdem die Installation abgeschlossen wurde. Sie müssen Ihre WSL-Verteilung neu starten, damit diese Änderung wirksam wird.

Im folgenden Beispiel wird das Gebietsschema in „en-US“ geändert:

sudo update-locale LANG=en_US.UTF8

Warum habe ich aus WSL keinen Internetzugriff?

Einige Benutzer haben Probleme mit bestimmten Firewallanwendungen gemeldet, die den Internetzugriff in WSL blockieren. Die gemeldeten Firewalls sind:

  1. Kaspersky
  2. AVG
  3. Avast
  4. Symantec Endpoint Protection
  5. F-Secure

In einigen Fällen ermöglicht das Deaktivieren der Firewall den Zugriff. In einigen Fällen sieht es so aus, als ob bereits die Installation der Firewall den Zugriff blockiert.

Wie greife ich aus WSL unter Windows auf einen Port zu?

WSL nutzt die IP-Adresse von Windows, da es unter Windows ausgeführt wird. Daher können Sie auf alle Ports auf localhost zugreifen. Wenn Sie z.B. Webinhalte an Port 1234 verwenden, können Sie https://localhost:1234 in Ihren Windows-Browser eingeben. Weitere Informationen finden Sie unter "Zugreifen auf Netzwerkanwendungen".

Wie kann ich meine WSL-Verteilungen sichern oder von einem Laufwerk zu einem anderen verschieben?

Die beste Möglichkeit zum Sichern oder Verschieben Ihrer Verteilungen erfolgt über die in Windows Version 1809 und höher verfügbaren Export-/Importbefehle . Sie können die gesamte Distribution mithilfe des Befehls wsl --export in einen Tarball exportieren. Sie können diese Verteilung dann mithilfe des wsl --import Befehls zurück in WSL importieren, der einen neuen Laufwerkspeicherort für den Import benennen kann, sodass Sie Die WSL-Verteilungen sichern und speichern können.

Beachten Sie, dass herkömmliche Sicherungsdienste, die Dateien in Ihren AppData-Ordnern (z. B. Windows-Sicherung) sichern, Ihre Linux-Dateien nicht beschädigt.

Kann ich WSL für Produktionsszenarien verwenden?

WSL wurde entwickelt und entwickelt, um mit inneren Schleifenentwicklungsworkflows zu verwenden. Es gibt Designfeatures in WSL, die es für diesen Zweck hervorragend machen, aber kann es schwierig machen, produktionsbezogene Szenarien im Vergleich zu anderen Produkten zu erschweren. Unser Ziel ist es, klar zu machen, wie sich WSL von einer regulären VM-Umgebung unterscheidet, damit Sie entscheiden können, ob sie Ihren Geschäftlichen Anforderungen entspricht.

Die wichtigsten Unterschiede zwischen WSL und einer herkömmlichen Produktionsumgebung sind:

  • WSL verfügt über eine einfache Hilfsprogramm-VM, die Ressourcen automatisch startet, stoppt und verwaltet.
  • Wenn Sie keine geöffneten Dateihandles für Windows-Prozesse haben, wird die WSL-VM automatisch heruntergefahren. Dies bedeutet, dass Sie es als Webserver verwenden, SSH darin, um Ihren Server auszuführen und dann zu beenden, könnte die VM heruntergefahren werden, da erkannt wird, dass Benutzer die Verwendung abgeschlossen haben und ihre Ressourcen bereinigen.
  • WSL-Benutzer haben vollständigen Zugriff auf ihre Linux-Instanzen. Die Lebensdauer des virtuellen Computers, die registrierten WSL-Verteilungen usw. sind vom Benutzer zugänglich und können vom Benutzer geändert werden.
  • WSL bietet automatisch Zugriff auf Windows-Dateien.
  • Windows-Pfade werden standardmäßig an Ihren Pfad angefügt, was zu unerwartetem Verhalten für bestimmte Linux-Anwendungen im Vergleich zu einer herkömmlichen Linux-Umgebung führen kann.
  • WSL kann Windows-ausführbare Dateien von Linux ausführen, was auch zu einer anderen Umgebung als einer herkömmlichen Linux-VM führen könnte.
  • Der von WSL verwendete Linux-Kernel wird automatisch aktualisiert.
  • DER GPU-Zugriff in WSL erfolgt über ein /dev/dxg Gerät, das GPU-Aufrufe an die Windows-GPU leitet. Dieses Setup unterscheidet sich von einer herkömmlichen Linux-Einrichtung.
  • Es gibt weitere kleinere Unterschiede im Vergleich zu Bare Metal Linux und mehr Unterschiede werden zukünftig erwartet, da der Workflow für die innere Schleifenentwicklung priorisiert wird.

WSL 2

Verwendet WSL 2 Hyper-V? Wird es auf Windows 10 Home und Windows 11 Home verfügbar sein?

WSL 2 ist auf allen Desktop-SKUs verfügbar, in denen WSL verfügbar ist, einschließlich Windows 10 Home und Windows 11 Home.

In der neuesten Version von WSL wurde Virtualisierung auf der Grundlage der Hyper-V-Architektur ermöglicht. Diese Architektur steht in Form der optionalen Komponente ‚Virtual Machine Platform‘ zur Verfügung. Diese optionale Komponente soll für alle SKUs verfügbar sein. Weitere Details dazu stehen Ihnen in Kürze zur Verfügung, wenn wir uns der Veröffentlichung von WSL 2 nähern.

Was geschieht mit WSL 1? Wird es aufgegeben?

Es ist zurzeit nicht geplant, WSL 1 als veraltet zu kennzeichnen. Sie können WSL 1 und WSL 2-Distributionen nebeneinander ausführen und jederzeit ein Upgrade und Downgrade für jede Distribution durchführen. Das Hinzufügen von WSL 2 als neue Architektur bietet dem WSL-Team eine bessere Plattform zum Bereitstellen von Features, die aus WSL eine beeindruckende Möglichkeit zum Ausführen einer Linux-Umgebung unter Windows machen.

Kann ich WSL 2 und andere Virtualisierungstools von Drittanbietern wie VMware oder VirtualBox ausführen?

Einige Anwendungen von Drittanbietern funktionieren nicht, wenn Hyper-V verwendet wird, was bedeutet, dass sie nicht ausgeführt werden können, wenn WSL 2 aktiviert ist (z. B. VMware und VirtualBox). Vor kurzem wurden jedoch von VirtualBox und VMware Versionen veröffentlicht, die Hyper-V und WSL2 unterstützen. Hier finden Sie weitere Informationen zu VirtualBox-Änderungen und VMware-Änderungen. Zur Problembehandlung sehen Sie sich die Diskussionen über VirtualBox-Probleme im WSL-Repository auf GitHub an.

Wir arbeiten kontinuierlich an Lösungen zur Unterstützung der Integration von Hyper-V in Drittanbieterlösungen. Beispielsweise machen wir eine Reihe von APIs mit der Bezeichnung Hypervisor-Plattform verfügbar, die von Drittanbietern von Virtualisierungslösungen verwendet werden können, um ihre Software mit Hyper-V kompatibel zu machen. Dadurch können Anwendungen die Hyper-V-Architektur für ihre Emulation verwenden, wie etwa den Google Android Emulator und VirtualBox 6 und höher, die jetzt beide mit Hyper-V kompatibel sind.

Weitere Hintergrund- und Diskussionsinformationen zu WSL 2-Problemen mit VirtualBox 6.1 finden Sie im WSL-Problemrepo.

*Wenn Sie nach einem virtuellen Windows-Computer, VMWare, Hyper-V, VirtualBox und Parallels-VM-Downloads suchen, sind im Windows Dev Center verfügbar.

Kann ich in WSL 2 auf die GPU zugreifen? Gibt es Pläne, die Hardwareunterstützung auszuweiten?

Wir haben Unterstützung für den Zugriff auf die GPU innerhalb von WSL 2-Verteilungen veröffentlicht! Das bedeutet, dass Sie WSL jetzt leichter für Machine Learning-, KI- und Data Science-Szenarien mit großen Datasets verwenden können. Sehen Sie sich das Tutorial Erste Schritte mit GPU-Unterstützung an. Ab sofort umfasst WSL 2 keine serielle Unterstützung oder Unterstützung für USB-Geräte. Wir untersuchen derzeit, wie sich diese Features am besten hinzufügen lassen. Usb-Unterstützung ist jedoch jetzt über das USBIPD-WIN-Projekt verfügbar. Weitere Informationen zum Einrichten der USB-Geräteunterstützung finden Sie unter Verbinden von USB-Geräten .

Kann WSL 2 Netzwerkanwendungen verwenden?

Ja, in allgemeinen Netzwerkanwendungen funktioniert es besser und ist schneller mit WSL 2, da es vollständige Systemanrufkompatibilität bietet. Die WSL 2-Architektur verwendet jedoch virtualisierte Netzwerkkomponenten, was bedeutet, dass sich WSL 2 ähnlich verhält wie ein virtueller Computer – WSL 2-Verteilungen weisen eine andere IP-Adresse als der Hostcomputer (Windows OS) auf. Weitere Informationen finden Sie unter Zugreifen auf Netzwerkanwendungen mit WSL.

Kann ich WSL 2 auf einem virtuellen Computer ausführen?

Ja! Sie müssen sich vergewissern, dass für den virtuellen Computer verschachtelte Virtualisierung aktiviert ist. Dies kann auf Ihrem übergeordneten Hyper-V-Host aktiviert werden, indem Sie in einem PowerShell-Fenster mit Administratorberechtigungen den folgenden Befehl ausführen:

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

Ersetzen Sie ‚<VMName>‘ durch den Namen des virtuellen Computers.

Kann ich wsl.conf in WSL 2 verwenden?

WSL 2 unterstützt dieselbe wsl.conf-Datei, die von WSL 1 verwendet wird. Dies bedeutet, dass alle Konfigurationsoptionen, die Sie in einer WSL 1-Distribution festgelegt haben, z. B. das automatische Einbinden von Windows-Laufwerken, das Aktivieren oder Deaktivieren von Interop, das Ändern des Verzeichnisses, in dem Windows-Laufwerke bereitgestellt werden, auch in WSL 2 funktionieren. Weitere Informationen zu den Konfigurationsoptionen in WSL finden Sie auf der Seite "Verteilungsverwaltung ". Erfahren Sie mehr über die Unterstützung für Montagelaufwerke, Datenträger, Geräte oder virtuelle Festplatten (VHDs) im Artikel "Mount a Linux disk in WSL 2" .

Wo kann ich Feedback bereitstellen?

Die Probleme im WSL-Produkt-Repository ermöglichen Ihnen Folgendes:

  • Durchsuchen vorhandener Probleme, um zu schauen, ob ähnliche Probleme wie das bei Ihnen aufgetretene Problem beschrieben werden. Beachten Sie, dass Sie in der Suchleiste „is:open“ entfernen können, um bereits behobene Probleme in Ihre Suche einzubeziehen. Bitte kommentieren Sie offene Probleme, oder markieren Sie sie mit „Gefällt mir“, um auszudrücken, dass diese in Ihren Augen mit Priorität behandelt werden sollten.
  • Melden Sie ein neues Problem. Wenn bei Ihnen ein Problem mit WSL aufgetreten ist, das anscheinend noch nicht im Repository aufgeführt ist, wählen Sie die grüne Schaltfläche Neues Problem und dann WSL – Fehlerbericht aus. Sie müssen folgende Angaben machen: Titel für das Problem, Ihre Windows-Buildnummer (führen Sie cmd.exe /c ver aus, um die aktuelle Buildnummer anzuzeigen), ob Sie WSL 1 oder 2 ausführen, Ihre aktuelle Linux-Kernelversionsnummer (führen Sie wsl.exe --status oder cat /proc/version aus), die Versionsnummer Ihrer Verteilung (führen Sie lsb_release -r aus), alle anderen beteiligten Softwareversionen, die Reproduktionsschritte, das erwartete Verhalten, das tatsächliche Verhalten und die Diagnoseprotokolle, falls verfügbar und angemessen. Weitere Informationen finden Sie unter Mitwirken an WSL.
  • Erstellen Sie eine Featureanforderung, indem Sie die grüne Schaltfläche Neues Problem und dann Featureanforderung auswählen. Sie müssen einige Fragen beantworten, die Ihre Anforderung beschreiben.

Sie können außerdem:

Wenn Sie mit den neuesten WSL-News auf dem neuesten Stand bleiben möchten, nutzen Sie Folgendes: