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 Store nicht verfügbar ist, indem Sie sie mit einer TAR-Datei importieren.

In diesem Artikel wird gezeigt, wie Sie die Linux-Distribution CentOS fü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 einen 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

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
    

Example of running the commands above

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 zum Importieren 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 Befehl wsl -l -v , um zu überprüfen, welche Distributionen Sie installiert haben.

    Example of the above commands running in WSL

  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 mithilfe des Befehls 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".

Hinweis

Sie sollten den Benutzernamen der sudoers-Datei hinzufügen, damit der Benutzer sudo verwenden kann. Der Befehl adduser -G wheel $myUsername fügt den Benutzer der myUsername Radgruppe hinzu. Benutzern in der Radgruppe werden automatisch sudo-Berechtigungen gewährt, und sie können Aufgaben ausführen, für die erhöhte Berechtigungen erforderlich sind.

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 die Verteilung 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.

Example of the code above running in WSL

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 im Microsoft Store. Informationen dazu finden Sie unter Erstellen einer benutzerdefinierten Linux-Distribution für WSL.