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
- Sie müssen WSL mit einer Linux-Verteilung aktiviert haben, die WSL 2 ausführt.
- Sie müssen Docker Desktop für Windows mit aktiviertem WSL 2-Modul installiert haben und die Integration überprüft haben, finden Sie im Docker Desktop-Lizenzvertrag für Updates für die Nutzungsbedingungen.
Exportieren des Tars aus einem Container
Öffnen Sie die Befehlszeile (Bash) für eine Linux-Verteilung, die Sie bereits aus dem Microsoft Store (Ubuntu in diesem Beispiel) installiert haben.
Starten Sie den Docker-Dienst:
sudo service docker start
Führen Sie den CentOS-Container innerhalb von Docker aus:
docker run -t centos bash ls /
Nehmen Sie die CentOS-Container-ID mithilfe von Grep und awk auf:
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
Exportieren Sie die Container-ID in eine Tar-Datei auf Ihrem bereitgestellten C-Laufwerk:
docker export $dockerContainerID > /mnt/c/temp/centos.tar
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:
Ö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
Verwenden Sie den Befehl
wsl --import <DistroName> <InstallLocation> <InstallTarFile>
, um die Tardatei zu importieren.wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
Verwenden Sie den Befehl
wsl -l -v
, um zu überprüfen, welche Verteilungen Sie installiert haben.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.
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".