Bash unter Windows 10 tut nichts und kehrt zur Eingabeaufforderung zurück

Bash unter Windows 10 tut nichts und kehrt zur Eingabeaufforderung zurück

Gerade heute bashhat mein Windows 10-Rechner komplett aufgehört zu funktionieren. Wenn ich es bashaus der Eingabeaufforderung heraus ausführe, entsteht eine Pause von etwa einer Sekunde und dann kehrt man sofort wieder zur Eingabeaufforderung zurück.

Bildbeschreibung hier eingeben

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):

Bildbeschreibung hier eingeben

Was könnte ich sonst noch tun, um bashwieder zum Laufen zu kommen?

--- Mit zusätzlichen Informationen bearbeiten ---

Ausgabe der wsl.exe -l -vauf meinem lokalen Computer installierten Distributionen und Versionen:

Bildbeschreibung hier eingeben

Für weiteren Kontext wurden die Ubuntuund Bilder installiertDebiannachBei mir traten die Probleme mit dem bashBefehl schon vor heute auf.

Antwort1

Es scheint einige gelöschte Kommentare zu geben, aber der Klarheit halber nennt Microsoft bash.exeauf 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.exewurdeErsetzt mit wsl.exe" (Betonung hinzugefügt).

Wie auch immer, dieempfohlenDer beste Weg zum Starten ist (derzeit) sicherlich der wsl.exeBefehl, da dieser viel mehr Optionen bietet und robuster ist. Es ist auch möglich, dass Distributionen wie Alpine nicht einmal eine bashShell enthalten, daher ist die Bezeichnung ohnehin ein wenig irreführend.

Das ist wahrscheinlich nicht bash.exedas Problem an sich. Sie benötigen wahrscheinlich nur die Funktionen von wsl.exezur 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-desktopInstanzIststartbar, 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.exeIhr 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 yourusernamezu 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).

verwandte Informationen