Importieren beliebiger Linux-Distributionen zur Verwendung mit WSL

Sie können eine beliebige Linux-Distribution innerhalb der Windows-Subsystem für Linux (WSL) verwenden, selbst wenn sie im Microsoft Storenicht verfügbar ist, indem Sie sie mit einer TAR-Datei importieren.

In diesem Artikel wird gezeigt, wie Sie die Linux-Distribution CentOSfür die Verwendung mit WSL importieren, indem Sie die 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 Verteilung

Zunächst 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 unterschiedliche Weise abrufen, darunter zwei:

  • Laden Sie eine bereitgestellte TAR-Datei herunter. Ein Beispiel für Alpine finden Sie auf der Alpine Linux-Downloadwebsite im Abschnitt "Mini Root Filesystem".
  • Suchen Sie nach einem Linux-Verteilungscontainer, und exportieren Sie eine Instanz als TAR-Datei. Das folgende Beispiel zeigt diesen Prozess mithilfe des CentOS-Containers.

Abrufen einer TAR-Datei für CentOS-Beispiel

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

Voraussetzungen

  • WSL muss mit einer Linux-Distribution aktiviert sein, auf der WSL 2 ausgeführt wird.
  • Sie müssen Docker Desktop für Windows mit aktivierter WSL 2-Engine installiert und die Integration für die Distribution überprüft haben, die Sie in den nächsten Schritten verwenden werden.

Exportieren des TAR aus einem Container

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

  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. Greifen Sie mithilfe von grep und awk auf die CentOS-Container-ID zu:

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

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

Beispiel für die Ausführung der obigen Befehle

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

Importieren der TAR-Datei in WSL

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

Beispiel für den Import von CentOS

So importieren Sie die TAR-Datei der CentOS-Distribution in WSL:

  1. Öffnen Sie PowerShell, und stellen Sie sicher, dass Sie einen Ordner erstellt haben, in dem die Verteilung 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 wsl -l -v Befehl , um zu überprüfen, welche Distributionen Sie installiert haben.

    Beispiel für die oben genannten Befehle, die in WSL ausgeführt werden

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

Hinzufügen von WSL-spezifischen Komponenten wie einem Standardbenutzer

Wenn Sie --import verwenden, werden Sie standardmäßig immer als Stammbenutzer gestartet. Sie können Ihr eigenes Benutzerkonto einrichten. Beachten Sie jedoch, dass der Einrichtungsprozess je nach Linux-Distribution leicht variiert.

Um ein Benutzerkonto mit der CentOS-Distribution, die wir gerade importiert haben, einrichten zu können, öffnen Sie zunächst PowerShell, und starten Sie es mit dem Befehl in CentOS:

wsl -d CentOS

Öffnen Sie als Nächstes die CentOS-Befehlszeile. Verwenden Sie diesen Befehl, um sudo- und Kennworteinstellungstools in CentOS zu installieren, ein Benutzerkonto zu erstellen und als Standardbenutzer festzusetzen. In diesem Beispiel ist der Benutzername "caloewen".

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 werden. Starten Sie ihre Distribution erneut, um den neuen Standardbenutzer zu sehen, indem Sie den folgenden Befehl in PowerShell ausführen:

wsl --terminate CentOS
wsl -d CentOS

Sie werden nun als [caloewen@loewen-dev]$ Ausgabe basierend auf diesem Beispiel sehen.

Beispiel für den obigen Code, der in WSL ausgeführt wird

Weitere Informationen zum Konfigurieren von WSL-Einstellungen finden Sie unter Konfigurieren von Einstellungen mit .wslconfig und wsl.conf.

Verwenden einer benutzerdefinierten Linux-Distribution

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