Importieren einer Linux-Verteilung, die mit WSL verwendet werden soll

Sie können eine beliebige Linux-Verteilung innerhalb der Windows-Subsystem für Linux (WSL) verwenden, auch wenn sie im Microsoft Store nicht verfügbar ist, indem Sie sie mit einer Tardatei importieren.

In diesem Artikel wird gezeigt, wie Sie die Linux-Verteilung, CentOS, für die Verwendung mit WSL importieren, indem Sie ihre Tardatei mithilfe eines Docker-Containers abrufen. Dieser Prozess kann angewendet werden, um jede Linux-Verteilung zu importieren.

Abrufen einer Tardatei für die Verteilung

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

Sie können eine Tardatei auf verschiedene Arten abrufen, darunter zwei:

  • Laden Sie eine bereitgestellte Tardatei herunter. Sie finden ein Beispiel für Alpine im Abschnitt "Mini Root Filesystem" der Alpine Linux-Downloads-Website .
  • Suchen Sie einen Linux-Verteilungscontainer und exportieren Sie eine Instanz als Tardatei. Im folgenden Beispiel wird dieser Prozess mithilfe des CentOS-Containers angezeigt.

Abrufen einer Tardatei für CentOS-Beispiel

In diesem Beispiel verwenden wir Docker innerhalb einer WSL-Verteilung, um die Tardatei für CentOS abzurufen.

Voraussetzungen

Exportieren des Tars aus einem Container

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

  2. Starten Sie den Docker-Dienst:

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

    docker run -t centos bash ls /
    
  4. Nehmen Sie die CentOS-Container-ID mithilfe von Grep und awk auf:

    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 oben genannten Befehle

Dieser Prozess exportiert die CentOS-Tardatei aus dem Docker-Container, sodass wir sie jetzt lokal mit WSL importieren können.

Importieren der Tardatei in WSL

Nachdem Sie eine Tardatei bereit haben, können Sie sie mithilfe des Befehls importieren: wsl --import <Distro> <InstallLocation> <FileName>

Importieren von CentOS-Beispiel

So importieren Sie die CentOS-Verteilungs tar-Datei 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 Tardatei zu importieren.

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

    Beispiel für die oben ausgeführten Befehle in WSL

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

Hinzufügen von WSL-spezifischen Komponenten wie einem Standardbenutzer

Standardmäßig werden Sie beim Verwenden von --Import immer als Stammbenutzer gestartet. Sie können Ihr eigenes Benutzerkonto einrichten, beachten Sie jedoch, dass der Einrichtungsprozess geringfügig je nach unterschiedlicher Linux-Verteilung variieren wird.

Zum Einrichten des Benutzerkontos mit der CentOS-Verteilung, die wir gerade importiert haben, öffnen Sie zuerst PowerShell, und starten Sie sie mithilfe des Befehls in CentOS:

wsl -d CentOS

Öffnen Sie als Nächstes Ihre CentOS-Befehlszeile. Verwenden Sie diesen Befehl, um Sudo- und Kennworteinstellungstools in CentOS zu installieren, ein Benutzerkonto zu erstellen und als Standardbenutzer festzulegen. In diesem Beispiel wird der Benutzername "caloewen" sein.

Hinweis

Sie möchten den Benutzernamen zur Datei "sudoers" hinzufügen, sodass der Benutzer sudo verwenden kann. Der Befehl adduser -G wheel $myUsername fügt dem Radgruppen den Benutzer myUsername hinzu. Benutzer in der Radgruppe erhalten automatisch sudo-Berechtigungen und 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 jetzt aus dieser Instanz beenden und sicherstellen, dass alle WSL-Instanzen beendet werden. Starten Sie ihre Verteilung erneut, um Ihren neuen Standardbenutzer anzuzeigen, indem Sie diesen Befehl in PowerShell ausführen:

wsl --terminate CentOS
wsl -d CentOS

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

Beispiel für den oben ausgeführten Code in WSL

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

Verwenden einer benutzerdefinierten Linux-Verteilung

Sie können ihre eigene angepasste Linux-Verteilung erstellen, die als UWP-App verpackt ist, die sich genau wie die im Microsoft Store verfügbaren WSL-Verteilungen verhält. Informationen zum Erstellen einer benutzerdefinierten Linux-Verteilung für WSL finden Sie unter "Erstellen einer benutzerdefinierten Linux-Verteilung für WSL".