Windows-Subsystem für Linux (WSL) einrichten und nutzen

GNU/Linux ist eine bewährte Alternative zu Windows und iOS als Betriebssystem auf einem Desktop-PC oder Notebook. In meinen früheren Beiträgen habe ich bereits Vor- und Nachteile diskutiert und mir Gedanken zur Einrichtung gemacht.

Auch wenn Linux [auf dem Desktop-PC] mit ca. 3% Marktanteil [1] eher die Ausnahme darzustellen scheint, ist es z.B. bei Server-Lösungen oder in wissenschaftlichen Abteilungen häufig anzutreffen. Wer sich mit Linux auf dem eigenen Rechner vertraut machen wollte, konnte in der Vergangenheit ein Live-Image auf CD, USB-Stick oder z.B. in VirtualBox ausprobieren, oder ein nicht ganz einfache geteilte Installation mit Windows einrichten. Seit Windows 10 (Version 2004) gibt es nun das nützliche Windows Linux Subsystem (WSL), welches eine vollwertige, virtuelle Linux-Umgebung in Windows bereitstellt. Auch wenn sich diese Funktionalität natürlich vor allem an Entwickler richtet, ist es eine praktische Möglichkeit sich gefahrlos mit der Funktionsweise von Linux vertraut zu machen, ohne die Gefahr, etwas aus versehen kaputt zu machen! Mehr dazu von Microsoft…

Installation

Die Installation unterscheidet sich hier allerdings etwas zwischen Windows 10 und 11. WSL gibt es in Version 1 und 2, wobei die zweite Version aktueller ist und mehr Funktionalität bietet [2]. Die Einrichtung an sich ist unkompliziert und benötigt nur wenige Schritte. Ich möchte es euch in diesem Beitrag am Beispiel von Ubuntu in einer WSL2-Umgebung vorstellen (mehrere, parallele Installationen sind möglich).

Unter Windows 11

Unter Windows 11 geht die Installation einfach und schnell. Die einfachste Option ist es, sich im Microsoft Store die entsprechende Distribution zu suchen und sich diese dort zu installieren (z.B. Ubuntu).

Alternativ könnt ihr das Windows 11 Terminal öffnen, um WSL2 dort per Kommandozeile einzurichten.

wsl --install -d ubuntu

Unter Windows 10

Unter Windows 10 sind einige zusätzliche Schritte notwendig. Zunächst prüft ihr, ob die optionalen Betriebssystemfeatures Virtual Machine Plattform und Windows Subsystem for Linux installiert sind. Um zum entsprechenden Dialog zu kommen, gebt ihr im Startmenü das Stichwort „Features“ ein. Falls dies nicht der Fall sein sollte – die entsprechenden Punkte anhaken, bestätigen und nach der Installation den Computer neu starten.

Anschließend holt ihr euch aus dem Microsoft Store das neue Windows Terminal (Link), welches die Handhabung mit WSL (und allen anderen Konsolenanwendungen) erheblich erleichtert. Dort werden wir die WSL-Integration später einrichten.

Nun öffnet ihr das neue Terminal und stellt mit dem Befehl

wsl --set-default-version 2

sicher, dass auch die aktuelle Version WSL 2 verwendet wird. Mehr dazu…

Nun könnt ihr mit der Installation z.B. von Ubuntu über den Microsoft Store oder über das Terminal wie im Abschnitt von Windows 11 beschrieben fortfahren!

Erster Start

Nach der Installation könnt ihr die Distribution über das Windows Startmenü ausführen. Ich möchte euch hier allerdings den Weg über das Terminal zeigen, da ihr die meiste Zeit damit handhaben müsst. Wie ihr Ubuntu über das Windows Terminal startet, seht ihr im nächsten Abschnitt. Danach werdet ihr ggf. dazu aufgefordert zunächst ein Benutzername und Passwort festzulegen. Folgt einfach den Anweisungen. Mehr dazu…

Grundlegende Handhabung

  • Die WSL-Umgebung bietet keine grafische Benutzeroberfläche („Desktop“), ihr seid also auf die Kommandozeile (Shell) sowie euren Datei Explorer angewiesen. Mehr zur WSL Shell und Bash findet ihr im Abschnitt „Nächste Schritte“.
  • Nach der Installation findet ihr das virtuelle Dateisystem von WSL wie ein Netzwerklaufwerk eingebettet links im Schnellzugriff des Explorer-Fensters.
  • Falls ihr Ubuntu über den Microsoft Store installiert habt, findet ihr mit dem PowerShell-Befehl (über das Terminal) Get-AppxPackage -Name „Ubuntu“ | Select PackageFamilyName oder über die Eingabe der Umgebungsvariable $env:UBUNTU_HOME den Speicherort des virtuellen Datenträgers ext4.vhdx von Ubuntu. Bei mir ist es das Verzeichnis C:\Users\cedri\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhd
  • Das Kopieren, Verschieben, Löschen etc. von größeren Dateimengen im WSL Dateisystem über den Windows Explorer ist signifikant langsamer, als dieselbe Operation „intern“ mit Bash-Befehlen auszuführen (bspw. cp, rm oder mv). Mehr dazu findet ihr unter „Nächste Schritte“.
  • Ich rate euch davon ab, Windows-Anwendungen direkt auf dem virtuellen WSL-Dateisystem auszuführen (z.B. 7-Zip Windows Dateien ins WSL entpacken), da es bei mir sehr langsam war und immer wieder zu Problemen kam.

Steuerung

Hier ein kurzer Überblick über die wichtigsten WSL-Befehle für das Windows Terminal, welche am Anfang wichtig sind:

  • Mit wsl –list –verbose seht ihr eine Liste eurer WSL Umgebungen sowie den Status und die WSL-Version
  • Die WSL Umgebung startet automatisch, wenn ihr die Betriebssystem-Shell, eine Anwendung welche WSL nutzt startet oder auf das WSL-Dateisystem über den Explorer zugreift, ihr müsst euch um Start und Stop also eigentlich gar nicht kümmern.
  • Habt ihr mehrere WSL-Distributionen installiert, könnt ihr mit wsl –set-version [Ubuntu] festlegen, welche Installation automatisch gestartet werden soll, wenn ihr es nicht mit angebt.
  • Mit wsl -d Ubuntu startet ihr Ubuntu manuell und landet direkt in der Linux-Shell. Wie es noch einfacher geht, lest ihr im Abschnitt „Terminal-Integration“. Um die Shell wieder zu verlassen und zur normalen Kommandozeile (PowerShell) zurückzukehren, gebt ihr einfach exit ein.
  • Mit wsl -d Ubuntu -e [Befehl] führt ihr einen Bash-Befehl direkt aus, ohne erst manuell in die Shell wechseln zu müssen. Beispiel: wsl -d Ubuntu -e ping keepmydekstop.blog
  • Mit wsl –shutdown erzwingt ihr ein Beenden des WSL-Dienstes und aller Linux-Umgebungen. Das kann manchmal nützlich sein, da die laufende WSL-Umgebung einiges an Systemressourcen verbraucht (ca. 1 GB RAM)

Aktualisierungen

Auch bei Ubuntu Linux fallen regelmäßig Updates an, worauf euch die früher oder später Shell aufmerksam machen wird. Ich habe dazu bereits recherchiert, hier ein paar Tipps von meiner Seite:

  • Das Aktualisieren von WSL (Ubuntu) über den Microsoft Store lädt nur die neueste „Umgebungskonfiguration“ (das rootfs package), bringt die Installation aber nicht auf den aktuellsten Stand.
  • Der Aufruf von wsl –update aktualisiert den WSL2 Linux-Kernel, nicht aber die Software-Pakete von Ubuntu selbst.
  • Die Software-Pakete sollten also gelegentlich durch den Aufruf von apt selbst aktualisiert werden. Beispiel:
wsl -d Ubuntu -e sudo apt update && sudo apt upgrade -y

Terminal-Integration

Das „neue“ Windows Terminal (siehe oben) bringt einiges an komfortablen Neuerungen mit. Neben farblichen Syntax-Hervorhebungen und Autovervollständigung (Tab) könnt ihr euch auch verschiedene Terminal-Vorlagen einrichten. Standardmäßig startet ja PowerShell, mit wenigen Klicks könnt ihr aber auch direkt die Ubuntu-Shell öffnen:

  • Bei neueren Versionen wird die WSL Installation von Ubuntu wohl automatisch erkannt und dem Windows Terminal hinzugefügt, nachdem ihr Ubuntu zum ersten Mal gestartet und eure Benutzerinformationen eingegeben habt (wenn das Windows Terminal davor installiert wurde) [3].
  • Ansonsten könnt ihr die Windows Terminal App auch zurücksetzen (Einstellungen>Apps>Installierte Apps>Terminal>…>Erweiterte Optionen>Zurücksetzen) und beim ersten Start sollte der Eintrag hinzugefügt werden,
  • oder den Eintrag manuell erstellen, indem ihr in den Terminal-Einstellungen ein Profil hinzufügt mit Verweis auf C:\WINDOWS\system32\wsl.exe -d ubuntu (siehe Bild)

Nächste Schritte

  • Falls ihr Linux noch nie benutzt habt, macht euch unbedingt mit den Grundlagen der Bash-Shell sowie der Verzeichnisstruktur von Linux vertraut, da dies unverzichtbar für viele Aufgaben ist. Ich bin bereits in einem anderen Blogbeitrag darauf eingegangen. Hier findet ihr auch einen super praktischen, einfach verständlichen Grundkurs.
  • Einige Anwendungsbeispiele für WSL sowie weitere Tipps werde ich in den nächsten Beiträgen veröffentlichen. Abonniert den Beitrag-Newsletter, um informiert zu bleiben…

Nutzt ihr WSL bereits? Wenn ja, für was? Hinterlasst mir doch einen Kommentar unter diesem Beitrag 👇