Justo hoy bash
en mi máquina con Windows 10 dejó de funcionar por completo. La ejecución bash
desde el símbolo del sistema produce una pausa de aproximadamente un segundo y luego regresa inmediatamente al símbolo del sistema.
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):
¿Qué más podría hacer para bash
volver a trabajar?
--- Editar con información adicional ---
Resultado de wsl.exe -l -v
mostrar distribuciones y versiones instaladas en mi máquina local:
Para mayor contexto, se instalaron las imágenes Ubuntu
yDebian
despuésComencé a experimentar el problema con el bash
comando antes de hoy.
Respuesta1
Parece que hay algunos comentarios eliminados, pero para mayor claridad, Microsoft llama bash.exe
un "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.exe
ha sidoreemplazadas con wsl.exe
" (énfasis añadido).
De todos modos, elrecomendadoLa forma de iniciarlo es (actualmente) ciertamente a través del wsl.exe
comando, ya que proporciona muchas más opciones y es más robusto. También es posible que distribuciones como Alpine ni siquiera incluyan un bash
shell, por lo que de todos modos es un nombre poco apropiado.
No es que bash.exe
en sí mismo sea probablemente tu problema. Es sólo que probablemente necesitarás las funciones de wsl.exe
para 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-desktop
instanciaesejecutable, 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.exe
ya no se inicia su docker-desktop
contenedor 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 yourusername
cambiar 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).