
Gerade heute bash
hat mein Windows 10-Rechner komplett aufgehört zu funktionieren. Wenn ich es bash
aus der Eingabeaufforderung heraus ausführe, entsteht eine Pause von etwa einer Sekunde und dann kehrt man sofort wieder zur Eingabeaufforderung zurück.
Ich habe bereits versucht, " zu entfernen und neu zu installieren.Windows-Subsystem für Linux" ausSchalte Windows Funktionen ein oder aus(mehrmals) mit zugehörigen Neustarts (siehe unten):
Was könnte ich sonst noch tun, um bash
wieder zum Laufen zu kommen?
--- Mit zusätzlichen Informationen bearbeiten ---
Ausgabe der wsl.exe -l -v
auf meinem lokalen Computer installierten Distributionen und Versionen:
Für weiteren Kontext wurden die Ubuntu
und Bilder installiertDebian
nachBei mir traten die Probleme mit dem bash
Befehl schon vor heute auf.
Antwort1
Es scheint einige gelöschte Kommentare zu geben, aber der Klarheit halber nennt Microsoft bash.exe
auf der Seite, auf die Sie verlinkt haben, einen „historischen Befehl“. Ich halte ihn nicht für „veraltet“ (da sie, wie Sie anmerken, veraltete Befehle explizit auflisten). Aber „historisch“ ist meiner Meinung nach nur einen Schritt vor „veraltet“. Außerdem ist derWSL/Windows-Interop-Dokumentation, sagt " bash.exe
wurdeErsetzt mit wsl.exe
" (Betonung hinzugefügt).
Wie auch immer, dieempfohlenDer beste Weg zum Starten ist (derzeit) sicherlich der wsl.exe
Befehl, da dieser viel mehr Optionen bietet und robuster ist. Es ist auch möglich, dass Distributionen wie Alpine nicht einmal eine bash
Shell enthalten, daher ist die Bezeichnung ohnehin ein wenig irreführend.
Das ist wahrscheinlich nicht bash.exe
das Problem an sich. Sie benötigen wahrscheinlich nur die Funktionen von wsl.exe
zur Wiederherstellung.
Sie stellen fest, dass Sie Ubuntu und Debian installiert habennachdieses Problem begann aufzutreten. Bedeutet das, dass SienurDocker Desktop vorher ausführen? Eine typische Installation für WSL sieht folgendermaßen aus:
- Installieren Sie die WSL-Funktion selbst (zusammen mit dem WSL2-Kernel).
- Installieren einer Distribution
- Installieren Sie dann Docker Desktop
Wenn Sie jedoch nur die beiden docker-desktop*
Instanzen haben, sieht es so aus, als hätten Sie nie eine andere Distribution installiert. Dies ist nicht wirklich zu empfehlen. Die docker-desktop
InstanzIststartbar, aber ich glaube, es ist wirklich für die interne Verwendung von Docker Desktop konzipiert (z. B. zum Einrichten der Docker-Sockets). Ich könnte mich da irren ...
Ich bin mir nicht sicher , warum bash.exe
Ihr Standardcontainer nicht mehr gestartet wird docker-desktop
, aber es hat wahrscheinlich etwas mit Ihrer Bash-Startkonfiguration zu tun. Wenn WSL ohne Fehlermeldung beendet wird, liegt das normalerweise an einem Probleminnendie Instanz. WSL scheint stderr nicht zurück zum Host umzuleiten, oder vielleicht ist dazu einfach eine Umleitung erforderlich, mit der ich mich noch nicht befasst habe.
Um herauszufinden, was schief läuftinnen, versuchen Sie den Start mit einer der folgenden Optionen:
wsl -e bash --noprofile --norc # Launches without any startup profile
wsl -u root # Launches as root instead of the default user
wsl -e sh # Launches the dash shell instead of bash
wsl -u root -e sh # Same as above, but as root
Wenn eine oder mehrere davon funktionieren, können Sie von dort aus mit der Fehlerbehebung Ihrer Startkonfiguration beginnen. Wenn Sie als Root starten können, können Sie su yourusername
zu Ihrem Benutzer wechseln. Da Sie voninnender WSL-Instanz sollten Sie alle Fehlermeldungen sehen können, die bei der Ausführung über die Windows-Eingabeaufforderung unterdrückt werden könnten.
Letztendlich empfehle ich jedoch, eine andere Verteilung als Standard festzulegen, und zwar über:
wsl --set-default Ubuntu
Sie können immer noch zurück zum"Docker-Desktop"Verteilung, um alle benötigten Dateien über zu kopieren wsl -d docker-desktop
(fügen Sie eine der zuvor besprochenen Optionen an, wenn diese Ihnen helfen, sie ohne Fehler zu starten).