WSL Der Vorgang wird von dem Objekttyp nicht unterstützt auf den Bezug genommen wurde

Um WSL2 installieren zu können, benötigen wir unbedingt Version 2004 von Windows 10. Normalerweise sollte es keine Schwierigkeiten beim Wechsel auf Version 2 geben. Die Betonung liegt auf "normalerweise" ^^. Dazu mehr unter dem Punkt Fehlerbehebung.

Programmierung

23.05.2020

Allgemeines

Um WSL2 installieren zu können, benötigen wir unbedingt Version 2004 von Windows 10. Normalerweise sollte es keine Schwierigkeiten beim Wechsel auf Version 2 geben. Die Betonung liegt auf "normalerweise" ^^. Dazu mehr unter dem Punkt Fehlerbehebung.

Einrichtung

  • Auf Windows 10 Version 2004 updaten
  • cmd.exe mit Administratorenrechte öffnen und folgenden Befehl ausführen
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • Im Anschluss noch die WSL-Version auf Version 2 setzen
wsl --set-default-version 2
  • Im nächsten Schritt im Store z.B. Ubuntu 20.04 LTS installieren -> thats it!
  • Wenn mehrere Distributionen installiert sind, kann auch das frisch installierte Linux auf Default setzen
wsl -s Ubuntu-20.04

Fehlerbehebung

WSL 2 erfordert ein Update der Kernelkomponente. Weitere Informationen finden Sie unter https://aka.ms/wsl2kernel

Sich auf https://docs.microsoft.com/de-de/windows/wsl/wsl2-kernel begeben und die Datei wsl_update_x64.msi downloaden und installieren

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80070032
Error: 0x80070032 Die Anforderung wird nicht unterstützt.

Press any key to continue...

Ubuntu 20.04 LTS vorher über Apps deinstallieren!
Die Powershell mit Adminstratorenrechte öffnen und folgenden Befehl eingeben

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

Mit Neustart abschließen. Danach Ubuntu 20.04 LTS installieren. Das installierte Linux sollte jetzt die WSL-Version 2 besitzen:

wsl --list --verbose // C:\WINDOWS\system32>wsl --list --verbose NAME STATE VERSION * Ubuntu-18.04 Stopped 1 Ubuntu-20.04 Running 2

Quellen

  • https://www.thewindowsclub.com/wslregisterdistribution-failed-with-error-0x8007019e-0x8000000d/
  • https://docs.microsoft.com/de-de/windows/wsl/install-win10#update-to-wsl-2

Anstelle einer API-Übersetzung wird Microsoft in der zweiten Version seines Windows Subsystem for Linux (WSL 2) einen echten Linux-Kernel auf Basis einer "leichtgewichtigen" VM integrieren, was die Nutzung von Linux-Treibern und den direkten Betrieb von Linux-Docker-Containern in Windows ermöglicht.

Das Windows Subsystem for Linux (WSL) gibt es in Windows 10 seit Anniversary Update (Build1607) und im Windows Server seit Version 1709. Der bisherige Ansatz, die Linux-Systemaufrufe in die Windows API in einen "Translation Layer" zu übersetzen, sorgte aber für Einschränkungen im Bereich der Kompatibilität und eine schlechte Verarbeitungsgeschwindigkeit bei Dateisystemoperationen. Da die Translation Layer von Microsoft geschrieben wurde, hinkten sie der Entwicklung des Linux-Kernels hinterher.

In WSL 2 wird Microsoft nun einen echten Linux-Kernel ausliefern. Derzeit verwendet Microsoft dabei den Linux-Kernel 4.19 mit Long-Term Support (LTS). Die Kernel-Version wird Microsoft zukünftig zusammen mit den Windows-Updates aktualisieren.

Leichtgewichtige VM für WSL 2

Der Linux-Kernel in WSL 2 läuft auf einer speziellen virtuellen Maschine (VM), die Windows automatisch verwendet..

Architektur von WSL 2

Craig Loewen (Program Manager für WSL) und Ben Hillis (WSL-Entwickler) gingen in ihrem Build-Vortrag nicht ins Detail, wie diese VM implementiert ist, sondern benannten nur die Eigenschaften der "Lightweight utility VM".

Eigenschaften der VM, die die Basis für WSL ist

Vergleich traditioneller VM mit der, die WSL verwendet

Trotz VM soll die Leistung von WSL 2 schneller als bei dem bisherigen Ansatz ohne VM sein. Microsoft hat dazu den Linux-Kernel angepasst. Diesen modifizierten Kernel will der Softwarekonzern als Open Source mit GPL bereitstellen.

Linux-Distributionen aus dem Microsoft Store

Auf Basis des Kernels können Windows-Benutzer dann aus dem Windows Store Linux-Distributionen installieren. Loewen und Hillis zeigten auf einer Präsentationsfolie die Logos der bisher im Windows Store verfügbaren Distributionen Ubuntu, openSUSE, Debian und Kali sowie zusätzlich Alpine. In einer Demonstration listeten sie mit dem Kommandozeilenbefehl wsl -l auch noch Fedora und Pengwin auf:

Liste der installierten Distributionen, zwei für WSL 2, die übrigen noch für WSL 1.

Weitere Distributionen können Entwickler mit dem WSL-Distro Launcher in den Microsoft Store bringen.

Loewen und Hillis demonstrierten, dass Windows zukünftig sowohl für WSL 1 auf der alten Architektur als auch für die WSL-2-Architektur erstellte Distributionen ausführen kann. Ein Nutzer kann eine Distribution auf einfache Weise mit dem Befehl wsl --set-version alpine 2 nameDerDistribution konvertieren.

Eine bisher nicht unter WSL 1 lauffähige Linux-Anwendung läuft unter Alpine, nachdem die Distribution in WSL 2 konvertiert wurde

Docker-Container ohne virtuelle Maschine

Der Vorteil der WSL-2-Architektur gegenüber dem bisherigen WSL ist, dass nun volle Linux-Systemaufrufkompatibilität inklusive der Unterstützung für cgroups existiert. Linux-basierte Docker-Container können direkt in WSL 2 zur Ausführung kommen. Für bisher in Windows ausgeführte Linux-Container muss im Hintergrund eine virtuelle Maschine laufen.

Start eines Docker-Containers in WSL 2

Die beiden Microsoft-Angestellten bewarben in ihrem Vortrag eine deutlich bessere Performance von Dateisystemoperationen. So soll ein git clone 2,5-mal, ein cmake 3,1-mal und ein npm install 4,7-mal schneller sein. Die Sprecher belegten das an einem direkten Vergleich von WSL 1 und WSL 2 in zwei nebeneinanderliegenden Windows-Fenstern:

WSL 2 bietet deutlich schnellere Dateisystemoperationen, hier am Beispiel npm install

Bereits in Windows 10, Version 1903, können Benutzer Dateien von Linux-WSL-Installationen auch von Windows-Programmen aus lesen und bearbeiten. Diese Funktion basiert in WSL 1 auf dem Protokoll 9P, das auch in WSL 2 zum Einsatz kommt

Architektur für die Dateisystemoperationen in WSL 2

WSL 2 soll auch alle übrigen Integrationsfunktionen von WSL 1 (z. B. Umgebungsvariablen mit $WSLENV, Hintergrundprozesse) anbieten. "Alles, was Sie mit WSL 1 tun konnten, werden Sie auch mit WSL 2 tun können", sagte Hills.

WSL 2 soll ab Mitte Juni 2019 in einer Vorschauversion im Windows-Insider-Programm im FastRing verfügbar werden. (ane)

Wie installiert man WSL?

Wenn Sie zusätzliche Verteilungen über eine Linux-/Bash-Befehlszeile (statt mit PowerShell oder über eine Eingabeaufforderung) installieren möchten, müssen Sie „.exe“ im Befehl wsl.exe --install -d <Distribution Name> verwenden oder wsl.exe -l -o , um verfügbare Verteilungen aufzulisten.

Ist WSL eine VM?

Zwar verwendet WSL 2 eine VM, diese wird jedoch hinter den Kulissen verwaltet und ausgeführt, und Ihnen bleibt die Benutzererfahrung von WSL 1 erhalten.

Wo speichert WSL Daten?

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.

Wie startet man WSL?

Windows 10: WSL starten Um auf WSL zuzugreifen, haben Sie mehrere Möglichkeiten: a) Sie suchen im Windows-Store nach "Ubuntu", klicken auf den Treffer und wählen "Starten". Das ist nach der Installation praktikabel, danach zu umständlich. b) Sie klicken im Startmenü auf den neuen Eintrag oben links: "Ubuntu 20.04 LTS".