Beim Installieren einer WSL-Distributiondraußendes Microsoft Store (z. B. in einem eingeschränkten Netzwerk, siehe Link), sind viele der Standardmethoden zur Interaktion mit dieser Distribution nicht verfügbar. In meinem Beispiel wird die Distribution nicht in der Liste angezeigt, wenn ich über Einstellungen > Apps und Features gehe, und die Verwaltungsfunktionen sind nicht verfügbar. Wenn ich meine manuell installierte Linux-Instanz in einen schlechten Zustand bringe, wie kann ich sie dann richtig zurücksetzen und auf eine Neuinstallation zurückführen?
Bearbeiten: Beispiele für einen bisher aufgetretenen „schlechten Zustand“ sind ein BSOD während eines „apt-get update“, der zu einem nicht wiederherstellbaren Zustand führt. Auch das Durchführen mehrerer Konfigurationsänderungen zur Behebung eines Problems, das Entfernen oder Deaktivieren von Diensten und das Installieren anderer Pakete, ohne genau zu verfolgen, was geändert wurde, mit dem Wunsch, „von vorne zu beginnen“, um zu testen, ob die gefundene Lösung tatsächlich von selbst funktioniert.
Antwort1
Wenn meine manuell installierte Linux-Instanz in einen fehlerhaften Zustand gerate, wie kann ich sie dann richtig zurücksetzen und in einen Neuinstallationszustand zurückversetzen?
Wenn Sie Windows 10 Version 1903 verwenden:
wsl --unregister <DistributionName>
Wenn Sie Windows 10 Version 1709, 1803 oder 1809 ausführen:
wslconfig /unregister <DistributionName>
Verwalten und Konfigurieren des Windows-Subsystems für Linux
Antwort2
Sie könnenSchokoladig(zum Beispiel mit einem privaten NuGet-Repository) und wählen Sie das Debian-Image mit:
choco install wsl-debiangnulinux
Aber dann
- Es sind nur Verknüpfungen wie „WSL Terminal“ und „Debian Terminal“ verfügbar.
- Sie werden nicht aufgefordert, einen Benutzer zu erstellen. Es wird nur eine Root-Shell gestartet.
- Sie finden Ihre Linux-Distribution für WSL nicht unter "Einstellungen / Apps und Features" und daher auch keine "Erweiterten Optionen" oder "Zurücksetzen"
Übrigens ist die WSL-Befehlszeile verfügbar, aber dann müssen Sie Ihr Benutzerkonto manuell erstellen (useradd oder adduser je nach Distribution), sudo erteilen (sudo group oder sudoers) und /etc/wsl.conf
mit [user]
Abschnitt und erstellen default=yourlogin
- siehewsl-konfigurationDokumentation. In meinem Fall <distribution> config --default-user yourlogin
hatte es keine Wirkung.
Im Falle eines endgültigen Ausfalls besteht die einzige Möglichkeit darin, die folgende Abfolge auszuführen:
wsl --export <distribution> wsl-backup-<distribution>.tar
wsl --unregister <distribution>
choco install wsl-<distribution>
wsl --import <distribution> wsl-backup-<distribution>.tar
Ich hoffe, dass Sie bei importierten Dateien keine Probleme haben.
Antwort3
Warnung:Die folgenden Informationen sind nicht vollständig offiziell dokumentiert, da es sich bei der Frage um die „manuelle Installation“ der Distribution in WSL handelt. Daher kann das Verfahrenetwas andersin zukünftigen Windows 10-Versionen.
Um das zu verstehen, müssen wir zunächst wissen, was der Unterschied zwischen der Installation einer Distribution über den Windows Store und der manuellen Installation ist. Stellen Sie sich den Windows Store als Paketmanager in Windows vor. Er überwacht alle installierten, deinstallierten, aktualisierten usw. Pakete. Im Menü „Einstellungen“ gibt es also eine Liste der installierten Apps. Wenn die Distribution installiert ist, wird sie als Appx-Paket (ZIP-Archiv) geliefert. Dieses Paket enthält ein Rootfs-Tarball (GZIP-Tar-Datei) dieser Distribution (Beispiel install.tar.gz
), eine ausführbare Launcher-Datei (Beispiel ubuntu.exe
) und einige andere Dinge.
Wenn dieser Launcher zum ersten Mal ausgeführt wird, extrahiert er das Tarball (wie tar -xf
ein Befehl) und erstellt einen Registrierungseintrag im HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{GUID}
Registrierungsschlüssel. Dieser Registrierungsschlüssel ist wichtig, da er angibt, wo die Distribution installiert ist, wer der Standardbenutzer ist usw.
Wenn die Distribution installiert istmanuellDerselbe Registrierungsschlüssel wird erstellt, jedoch mit einem anderen Basispfad und anderen. Da dieses manuelle Verfahren nicht über den Windows Store erfolgt, wird es nicht in der App „Einstellungen“ aufgeführt. wsl.exe --list --all
Der Befehl kann jedoch alle installierten Distributionen in WSL anzeigen. Auf diese Weise erhalten wir zwar nicht die ausführbare Launcher-Datei, können aber alle Dinge damit erledigen wsl.exe
.
Wie können wir einen „schlechten Zustand“ wiederherstellen? Wenn Sie mit der UNIX-Welt vertraut sind, gehen Sie von Verteilungen in WSL wie inchroot-Umgebung. StetsSichern einer WSL-Distribution. Wie bei echten Debian-basierten Distributionen üblich, führen wir im Allgemeinen diese Befehle aus, um Pakete zu reparieren:
sudo dpkg –configure -a
sudo apt update –fix-missing
sudo apt install -f
/home
Wenn das Problem dadurch nicht behoben werden kann, kann es durch Deinstallieren und Neuinstallieren behoben werden. Sie können den Ordner mit sichern, tar -czf
da die meisten benutzerspezifischen Konfigurationen dort gespeichert sind. Als nächstes deinstallieren Sie die Distribution mit wsl.exe --unregister <Distribution Name>
dem Befehl. Die Sicherung kann für Benutzer wichtig sein, da der vorherige Befehl den gesamten Stammordner entfernt, d. h. /
. Jetzt können Sie eine neue Distribution installieren und den vorherigen /home
Sicherungsordner tar -xf
wie gewohnt mit extrahieren.
Antwort4
Versuche dies:
wsl --set-default-version 2
Sie können die WSL-Version auch auf jede installierte Distribution einstellen:
wsl --set-version Ubuntu-20.04 1