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

Allgemein

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

Die 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 auf Windows ausführen können, zusammen mit Ihren herkömmlichen Windows-Desktops und -Apps.

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 jeden geeignet, der Bash, gängige sed awk Linux-Tools ( , usw.) und Linux-First-Frameworks (Ruby, Python usw.) verwenden möchte, aber auch Windows-Produktivitätstools verwendet.

Welche Aufgaben kann ich mit WSL erledigen?

Mit WSL können Sie Linux in einer Bash-Shell mit ihrer Wahl der Distribution (Ubuntu, Debian, OpenSUSE, Kali, Alpine usw.) ausfü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. Ihre lokalen Laufwerke sind im Ordner /mnt bereitgestellt. 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?

Lesen Sie diesen Artikel im Windows-Befehlszeilenblog: A Deep Dive Into How WSL Allows Windows to Access Linux Files (WSL ermöglicht Windows Zugriff auf Linux-Dateien), in dem die zugrunde liegende Technologie ausführlich erläutert wird.

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 auf portiert und werden auf Windows. 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?

Bereitstellungspunkte für Festplatten auf dem lokalen Computer werden automatisch erstellt und ermöglichen einen einfachen Zugriff auf 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?)

Weitere Informationen finden Sie im Tutorial Erste Schritte mit Gitauf Windows-Subsystem für Linux , das einen Abschnitt zum Einrichten von Git Anmeldeinformationsverwaltung und Speichern von Authentifizierungstoken in Windows Anmeldeinformationsverwaltung.

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 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, das dem Linux-Verhalten entspricht, 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 Distribution aus WSL zu entfernen und alle Daten zu löschen, die dieser Linux-Distribution zugeordnet sind, führen Sie aus, wobei der Name Ihrer Linux-Distribution ist. Dies ist in der Liste im Befehl wsl --unregister <distroName> zu <distroName> wsl -l sehen.

Darüber hinaus können Sie die Linux-Distributions-App wie jede andere Store-Anwendung auch auf Ihrem Computer 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 optionalen Funktion. Weitere Informationen finden Sie im Dokument Installieren von OpenSSH. Zum Ausführen von OpenSSH in WSL Windows Administratorrechte in der -Datei erforderlich. Um einen OpenSSH-Server ausführen zu können, führen Sie Ihre WSL-Distribution (d. h. Ubuntu) oder Windows-Terminal Administrator aus. Es gibt mehrere Ressourcen, die SSH-Szenarien mit WSL abdecken. Sehen Sie sich die Blogartikel von Scott Hanselman an: How to SSHinto a Windows 10 Machine from Linux OR Windows OR anywhere , How to SSH into WSL2 on Windows 10 froman external machine , THE EASY WAY how to SSH into Bash and WSL2 on Windows 10from an external machine , and How to use Windows 10 es bui lt-in OpenSSH, um automatisch eine SSH-Verbindung mit einem Linux-Remotecomputer zu erstellen.

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-Distribution 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-Distributionen sichern oder von einem Laufwerk auf ein anderes verschieben?

Die beste Möglichkeit zum Sichern oder Verschieben Ihrer Distributionen sind die Export-/Importbefehle, die in Windows Version 1809 und höher verfügbar sind. Sie können die gesamte Distribution mithilfe des Befehls wsl --export in einen Tarball exportieren. Sie können diese Verteilung dann wieder in WSL importieren, indem Sie den Befehl verwenden, der wsl --import einen neuen Laufwerkspeicherort für den Import benennen kann, sodass Sie den Status Ihrer WSL-Distributionen sichern und speichern (oder verschieben) können.

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

WSL 2

Verwendet WSL 2 Hyper-V? Soll es unter Windows 10 Home verfügbar sein?

WSL 2 ist für alle Desktop-SKUs verfügbar, in denen WSL verfügbar ist, einschließlich Windows 10 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 Hintergrundinformationen und Erläuterungen zu WSL 2-Problemen mit VirtualBox 6.1finden Sie im Repository mit WSL-Problemen.

*Wenn Sie nach einem Windows 10 virtuellen Computer suchen, sind VMWare-, Hyper-V-, VirtualBox- und Parallels-VM-Downloads auf der 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-Distributionen 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.

Kann WSL 2 Netzwerkanwendungen verwenden?

Ja, in der Regel funktionieren Netzwerkanwendungen schneller und besser, da wir vollständige Kompatibilität der Systemaufrufe realisiert haben. Die neue Architektur verwendet jedoch virtualisierte Netzwerkkomponenten. Dies bedeutet, dass sich die anfänglichen Vorschaubuilds von WSL 2 eher ähnlich wie ein virtueller Computer verhalten, beispielsweise: WSL 2 weist eine andere IP-Adresse als der Hostcomputer auf. Wir arbeiten engagiert daran, dass sich WSL 2 genauso anfühlt wie WSL 1, und dazu gehören auch Verbesserungen unseres Netzwerkkonzepts.

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. Weitere Informationen zur Unterstützung für das Einbinden von Laufwerken, Datenträgern, Geräten oder virtuellen Festplatten (VHDs) finden Sie im Artikel Einbinden eines Linux-Datenträgers 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: