Subsystem für Linux unter Windows 10 LTSC und Server 2019 installieren

    Ubuntu WSL screenfetchDas in Windows 10 1609 einge­führte Sub­system für Linux brachte in Windows 10 1809 einige Fort­schritte. Neu ist aber auch, dass es mit der Version 2019 erstmals am Server ver­füg­bar ist. Die Instal­lation verläuft mangels Store App dort aber über die Kom­mando­zeile. Das gilt auch für Windows 10 im Long Term Service Channel.

    Das Windows Subsystem für Linux (WSL) ist für die Verwendung auf PCs von Entwicklern und für Test­umgebungen gedacht. Es eignet sich aber nicht, um Linux-Anwendungen für den produktiven Einsatz bereit­zustellen. Das gilt auch dann, wenn man WSL auf dem Server installiert.

    Engere Integration von WSL mit Windows

    Der besondere Vorteil des Subsystems für Linux besteht in der engen Verzahnung mit Windows. So lassen sich native Linux-Programme unmodifiziert im ELF-Format aus der Linux-Shell starten. Sie können dann auf das Datei­system von Windows und das Netzwerk zugreifen.

    Wegen der Unterschiede zwischen den Systemen und der Architektur von WSL sind Ein­schränkungen und Inkon­sistenzen jedoch nicht ganz zu vermeiden. Das gilt etwa für den Zugriff auf die Hardware in der Linux-Umgebung, wo der Inhalt von /dev recht überschaubar ist.

    Im WSL-Ubuntu finden sich unter /dev fast nur tty-Geräte

    Beim Datei­system unterscheidet Linux im Gegensatz zu Windows zwischen Groß- und Klein­schreibung, außerdem verwendet es als Zeilen­umbruch nur \n, Windows dagegen \r\n. Darüber hinaus verfügt Linux über eine eigene Benutzer- und Rechte­verwaltung (siehe dazu: Windows-Subsystem für Linux: Installation, Verzeichnis­struktur, Dateirechte, Benutzerkonten).

    Das letzte Update brachte hier einige Verbesserungen. So kann Notepad nun den Zeilen­umbruch in Dateien, die mit Linux-Programmen erstellen wurden, korrekt darstellen.

    Notepad behält die Art der Zeilenumbrüche nun bei und kann Web-Suchen in Bing starten.

    Zudem ist es nun möglich, nicht nur Volumes als case (in)sensitive zu mounten, sondern auch einzelne Verzeichnisse entsprechend zu markieren.

    Dies ist sowohl von innerhalb des WSL als auch von der Windows her auf Volumes möglich, die mit drvfs gemountet wurden (also etwa das Windows-Laufwerk c: unter /mnt/c). Von der Linux-Seite sind hier die Befehle getfattr (zum Anzeigen) und setfattr (zum Ändern) zuständig. Unter Windows dienen

    fsutil.exe file queryCaseSensitiveInfo <Pfad>

    und

    fsutil.exe file setCaseSensitiveInfo <Pfad> [enable | disable]

    diesem Zweck.

    Abfragen, ob ein Verzeichnis als case-sensitive markiert wurde

    Als weitere Integration des WSL kam hinzu, dass sich die Linux-Shell nun direkt aus dem Datei-Explorer starten lässt, wenn man bei gedrückter Umschalt­taste mit der Maus rechts auf ein Verzeichnis klickt.

    Linux-Shell aus dem Datei-Explorer starten

    Seit dem Build 18342 von Windows 10 1903 kann man nun auch mit dem Explorer durch den Verzeichnisbaum der Linux-Distribution navigieren. Dieses wird unterhalb des UNC-Pfads \\wsl$ gemount.

    Dateien in den Linux-Verzeichnissen lassen sich ab Windows 10 1903 im Explorer anzeigen.

    Entsprechend kann man auch in PowerShell mit

    cd \\wsl$\Ubuntu

    zu einer Ubuntu-Installation wechseln, nachdem man eine solche eingerichtet hat.

    Und schließlich stehen dem Anwender nun mehrere Linux-Distributionen zur Auswahl, nachdem anfangs nur Ubuntu verfügbar war. Da die einzelnen Distros als Appx-Package installiert werden, kann man etwa Ubuntu, Debian und SuSE parallel laufen lassen.

    Verfügbare Linux-Distributionen für WSL im Microsoft Store

    Nach wie vor ist WSL auf Programme für die Kommando­zeile beschränkt, ein X-Server gehört nicht zum Lieferumfang. Als reine Konsolen­umgebung lässt sich das Subsystem auch unter Server Core nutzen. Man kann einen der frei verfügbaren X-Server zwar selbst installieren, unterstützt wird das aber nicht. Muss man grafische Linux-Anwendungen ausführen, dann empfiehlt sich deshalb der Einsatz einer virtuellen Maschine.

    Installation von WSL

    Unter Windows 10 ist das Hinzufügen einer Linux-Umgebung recht einfach: Man aktiviert das Feature in der System­steuerung, startet den Rechner neu und holt sich dann die gewünschte Distribution über den Microsoft Store.

    Aktivierung des Subsystems für Linux in der Systemsteuerung

    Steht das WSL-Feature nicht zu Auswahl, dann nutzt man wahr­scheinlich statt der erfor­derlichen 64- nur eine 32-Bit-Version des OS.

    Unter Windows 10 LTSC und Windows Server funktioniert dieses Vorgehen aber nicht, weil dort die Store App fehlt. Daher muss man das Appx-Paket herunter­laden und selbst installieren.

    Unter Server Core steht dafür kein Web-Browser zur Verfügung, außerdem lässt sich das Feature nur über die Kommando­zeile aktivieren. Daher greift man dort zu einer reinen PowerShell-Lösung, die natürlich auch sonst überall funktioniert.

    Um das Subsystem hinzuzufügen, gibt man in einer PowerShell-Sitzung mit administrativen Privilegien den Befehl

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

    ein.

    Windows Subsystem for Linux mit Enable-WindowsOptionalFeature aktivieren

    Unter Windows Server 2019 funktioniert alternativ auch

    Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux

    Herunterladen einer Distribution

    Nach dem obligatorischen Neustart lädt man dann die gewünschte Distribution herunter. Für ihre Installation benötigt man keine administrativen Privilegien, weil diese ja in das Profil des Benutzers erfolgt. Die Links dafür sind:

    Für den Download kann man curl.exe oder das Cmdlet Invoke-WebRequest verwenden. Um zum Beispiel Ubuntu 18.04 abzurufen, würde man diesen Befehl eingeben:

    Invoke-WebRequest https://aka.ms/wsl-ubuntu-1804 -out ubuntu.zip -UseBasicParsing

    Das Appx-Paket wird damit gleich als ZIP-Archiv gespeichert, das spart das nach­trägliche Umbenennen. Der Schalter UseBasicParsing bewirkt, dass PowerShell für die HTTP-Verbindung nicht den Internet Explorer verwendet.

    Ubuntu 18.04 für WSL herunterladen und entpacken in PowerShell

    Die ZIP-Datei entpackt man dann im nächsten Schritt durch Eingabe von

    Expand-Archive .\ubuntu.zip

    in das gewünschte Installations­verzeichnis.

    Ubuntu 18.04 für WSL installieren

    Nun wechselt man in den Ordner ubuntu und führt dort ubuntu1804.exe aus. Der folgende Vorgang dauert ein paar Minuten und endet damit, dass man nach dem Anlegen eines Users und der Eingabe eines Passworts auf dem Prompt der Linux-Shell landet.

    Keine Kommentare