Bash en Windows 10 no hace nada y vuelve al símbolo del sistema

Bash en Windows 10 no hace nada y vuelve al símbolo del sistema

Justo hoy bashen mi máquina con Windows 10 dejó de funcionar por completo. La ejecución bashdesde el símbolo del sistema produce una pausa de aproximadamente un segundo y luego regresa inmediatamente al símbolo del sistema.

ingrese la descripción de la imagen aquí

Ya intenté quitar y reinstalar "Subsistema de Windows para Linux" deActivar o desactivar las características de windows(varias veces) con reinicios asociados (ver más abajo):

ingrese la descripción de la imagen aquí

¿Qué más podría hacer para bashvolver a trabajar?

--- Editar con información adicional ---

Resultado de wsl.exe -l -vmostrar distribuciones y versiones instaladas en mi máquina local:

ingrese la descripción de la imagen aquí

Para mayor contexto, se instalaron las imágenes UbuntuyDebiandespuésComencé a experimentar el problema con el bashcomando antes de hoy.

Respuesta1

Parece que hay algunos comentarios eliminados, pero para mayor claridad, Microsoft llama bash.exeun "comando histórico" en la página a la que se vinculó. No lo considero "obsoleto" (ya que, como usted señala, enumeran explícitamente comandos obsoletos). Pero "histórico" es, en mi humilde opinión, sólo un paso antes de "obsoleto". También elDocumentación de interoperabilidad de WSL/Windows, dice " bash.exeha sidoreemplazadas con wsl.exe" (énfasis añadido).

De todos modos, elrecomendadoLa forma de iniciarlo es (actualmente) ciertamente a través del wsl.execomando, ya que proporciona muchas más opciones y es más robusto. También es posible que distribuciones como Alpine ni siquiera incluyan un bashshell, por lo que de todos modos es un nombre poco apropiado.

No es que bash.exeen sí mismo sea probablemente tu problema. Es sólo que probablemente necesitarás las funciones de wsl.exepara recuperarte.

Observa que instaló Ubuntu y Debian.despuéseste problema empezó a suceder. ¿Esto significa que estabassolo¿Ejecutando Docker Desktop antes de esto? Una instalación típica de WSL es:

  • Instale la función WSL (junto con el kernel WSL2)
  • Instalar una distribución
  • Luego instale Docker Desktop

Sin embargo, si sólo tuvieras las dos docker-desktop*instancias, parecería que nunca instalaste ninguna otra distribución. Esto realmente no es recomendable. la docker-desktopinstanciaesejecutable, pero creo que en realidad está diseñado para el uso interno de Docker Desktop (por ejemplo, configurar los sockets de Docker). Podría estar equivocado en esto...

En cuanto a por qué bash.exeya no se inicia su docker-desktopcontenedor predeterminado, no estoy seguro, pero probablemente tenga algo que ver con la configuración de inicio de bash. Cuando WSL sale sin ningún mensaje de error, normalmente se debe a un problemaadentrola instancia. WSL no parece redirigir stderr de regreso al host, o tal vez solo necesita alguna redirección, algo en lo que aún no he profundizado.

Para intentar descubrir qué está pasandoadentro, intente iniciar con cualquiera de los siguientes:

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

Si uno o más de ellos funcionan, puede comenzar a solucionar problemas de configuración de inicio desde allí. Si puede iniciar como root, puede su yourusernamecambiar a su usuario. Ya que estás lanzando desdeadentrola instancia WSL, debería poder ver cualquier mensaje de error que podría suprimirse cuando se ejecuta desde el símbolo del sistema de Windows.

Sin embargo, en última instancia, te recomiendo que establezcas una distribución diferente como predeterminada, a través de:

wsl --set-default Ubuntu

Todavía puedes volver al"docker-escritorio"distribución para copiar los archivos necesarios wsl -d docker-desktop(agregue cualquiera de las opciones discutidas anteriormente si le ayudan a iniciarlo sin errores).

información relacionada