Importieren einer beliebigen Linux-Distribution zur Verwendung mit WSL

Sie können jede Linux-Distribution innerhalb des Windows-Subsystems für Linux (WSL) verwenden, auch wenn sie nicht im Microsoft Store verfügbar ist, indem Sie sie mit einer TAR-Datei importieren.

In diesem Artikel wird gezeigt, wie Sie die Linux-Distribution CentOS zur Verwendung mit WSL importieren, indem Sie die zugehörige TAR-Datei mithilfe eines Docker-Containers abrufen. Dieser Prozess kann angewendet werden, um eine beliebige Linux-Distribution zu importieren.

Abrufen einer TAR-Datei für die Distribution

Zuerst müssen Sie eine TAR-Datei abrufen, die alle Linux-Binärdateien für die Distribution enthält.

Sie können eine TAR-Datei auf verschiedene Arten abrufen, u. a. über die folgenden beiden:

  • Laden Sie eine bereitgestellte TAR-Datei herunter. Ein Beispiel für Alpine finden Sie im Abschnitt „Mini Root Filesystem“ der Website mit Alpine Linux-Downloads.
  • Suchen Sie einen Linux-Distributionscontainer, und exportieren Sie eine Instanz als TAR-Datei. Im folgenden Beispiel wird dieser Prozess mithilfe des CentOS-Containers veranschaulicht.

Beispiel zum Abrufen einer TAR-Datei für CentOS

In diesem Beispiel verwenden wir Docker innerhalb einer WSL-Distribution, um die TAR-Datei für CentOS abzurufen.

Voraussetzungen

Exportieren der TAR-Datei aus einem Container

  1. Öffnen Sie die Befehlszeile (Bash) für eine Linux-Distribution, die Sie bereits über den Microsoft Store installiert haben (in diesem Beispiel Ubuntu).

  2. Starten Sie den Docker-Dienst:

    sudo service docker start
    
  3. Führen Sie den CentOS-Container in Docker aus:

    docker run -t centos bash ls /
    
  4. Rufen Sie die CentOS-Container-ID mithilfe von grep und awk ab:

    dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
    
  5. Exportieren Sie die Container-ID in eine TAR-Datei auf Ihrem eingebundenen Laufwerk C:

    docker export $dockerContainerID > /mnt/c/temp/centos.tar
    

Example of running the commands above

Dieser Prozess exportiert die CentOS-TAR-Datei aus dem Docker-Container, sodass wir sie jetzt zur lokalen Verwendung mit WSL importieren können.

Importieren der TAR-Datei in WSL

Sobald Sie eine TAR-Datei besitzen, können Sie sie mit dem folgenden Befehl importieren: wsl --import <Distro> <InstallLocation> <FileName>.

Beispiel zum Importieren von CentOS

So importieren Sie die TAR-Datei für die CentOS-Distribution in WSL

  1. Öffnen Sie PowerShell, und stellen Sie sicher, dass ein Ordner erstellt wurde, in dem die Distribution gespeichert werden soll.

    cd C:\temp
    mkdir E:\wslDistroStorage\CentOS
    
  2. Verwenden Sie den Befehl wsl --import <DistroName> <InstallLocation> <InstallTarFile>, um die TAR-Datei zu importieren.

    wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
    
  3. Verwenden Sie den Befehl wsl -l -v, um zu überprüfen, welche Distributionen Sie installiert haben.

    Example of the above commands running in WSL

  4. Verwenden Sie schließlich den Befehl wsl -d CentOS, um Ihre neu importierte CentOS Linux-Distribution auszuführen.

Hinzufügen von WSL-spezifischen Komponenten (etwa von einem Standardbenutzer bzw. einer Standardbenutzerin)

Bei Verwendung von „--import“ werden Sie standardmäßig immer als Stammbenutzer*in gestartet. Sie können Ihr eigenes Benutzerkonto einrichten. Beachten Sie jedoch, dass der Einrichtungsprozess je nach Linux-Distribution geringfügig variiert.

Um ein Benutzerkonto mit der CentOS-Distribution einzurichten, die wir gerade importiert haben, öffnen Sie zunächst PowerShell, und starten Sie CentOS mithilfe des folgenden Befehls:

wsl -d CentOS

Öffnen Sie als Nächstes Ihre CentOS-Befehlszeile. Verwenden Sie den unten genannten Befehl, um sudo und Kennworteinstellungstools in CentOS zu installieren, ein Benutzerkonto zu erstellen und als Standardbenutzer*in festzulegen. In diesem Beispiel lautet der Benutzername „caloewen“.

Hinweis

Sie sollten den Benutzernamen zur sudoers-Datei hinzufügen, damit der Benutzer bzw. die Benutzerin sudo verwenden kann. Der Befehl adduser -G wheel $myUsername fügt den*die Benutzer*in myUsername der Gruppe „wheel“ hinzu. Benutzer*innen in der Gruppe „wheel“ werden automatisch sudo-Berechtigungen gewährt, und sie können Aufgaben ausführen, die erhöhte Berechtigungen erfordern.

yum update -y && yum install passwd sudo -y
myUsername=caloewen
adduser -G wheel $myUsername
echo -e "[user]\ndefault=$myUsername" >> /etc/wsl.conf
passwd $myUsername

Sie müssen diese Instanz jetzt beenden und sicherstellen, dass alle WSL-Instanzen beendet wurden. Starten Sie die Distribution erneut, um den neuen Standardbenutzer bzw. die neue Standardbenutzerin anzuzeigen, indem Sie diesen Befehl in PowerShell ausführen:

wsl --terminate CentOS
wsl -d CentOS

Basierend auf diesem Beispiel wird nun [caloewen@loewen-dev]$ als Ausgabe angezeigt.

Example of the code above running in WSL

Weitere Informationen zum Konfigurieren von WSL-Einstellungen finden Sie unter Konfiguration der erweiterten Einstellungen im Windows-Subsystem für Linux (WSL).

Verwenden einer benutzerdefinierten Linux-Distribution

Sie können eine eigene benutzerdefinierte Linux-Distribution erstellen, die als UWP-App verpackt ist und sich genau wie die im Microsoft Store verfügbaren WSL-Distributionen verhält. Informationen dazu finden Sie unter Erstellen einer benutzerdefinierten Linux-Distribution für WSL.