Solucionar problemas del subsistema de Windows para LinuxTroubleshooting Windows Subsystem for Linux

Bash pierde la conectividad de red una vez que se conecta a una VPNBash loses network connectivity once connected to a VPN

Si después de conectarte a una VPN en Windows, Bash pierde la conectividad de red, prueba esta solución desde dentro de Bash.If after connecting to a VPN on Windows, bash loses network connectivity, try this workaround from within bash. Esta solución alternativa te permitirá invalidar manualmente la resolución de DNS a través de /etc/resolv.conf.This workaround will allow you to manually override the DNS resolution through /etc/resolv.conf.

  1. Toma nota del servidor DNS de la VPN con ipconfig.exe /allTake a note of the DNS server of the VPN from doing ipconfig.exe /all
  2. Haz una copia del resolv.conf existente sudo cp /etc/resolv.conf /etc/resolv.conf.newMake a copy of the existing resolv.conf sudo cp /etc/resolv.conf /etc/resolv.conf.new
  3. Desvincula el resolv.com actual sudo unlink /etc/resolv.confUnlink the current resolv.con sudo unlink /etc/resolv.conf
  4. sudo mv /etc/resolv.conf.new /etc/resolv.conf
  5. Abre /etc/resolv.conf yOpen /etc/resolv.conf and
    a.a. Elimina la primera línea del archivo, que indica "# This file was automatically generated by WSL.Delete the first line from the file, which says "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line" (WSL generó este archivo automáticamente. Para detener la generación automática de este archivo, quita esta línea).To stop automatic generation of this file, remove this line.".
    b.b. Agrega la entrada de DNS de (1) anterior como primera entrada de la lista de servidores DNS.Add the DNS entry from (1) above as the very first entry in the list of DNS servers.
    c.c. Cierra el archivo.Close the file.

Una vez que hayas desconectado la VPN, tendrás que revertir los cambios a /etc/resolv.conf.Once you have disconnected the VPN, you will have to revert the changes to /etc/resolv.conf. Para ello, haz lo siguiente:To do this, do:

  1. cd /etc
  2. sudo mv resolv.conf resolv.conf.new
  3. sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

Iniciar WSL o instalar una distribución devuelve un código de errorStarting WSL or installing a distribution returns an error code

Sigue estas instrucciones para recopilar registros detallados y registrar un problema en GitHub.Follow these instructions to collect detailed logs and file an issue on our GitHub.

Actualizar Bash en Ubuntu en WindowsUpdating Bash on Ubuntu on Windows

Hay dos componentes de Bash en Ubuntu en Windows que pueden requerir actualización.There are two components of Bash on Ubuntu on Windows that can require updating.

  1. El subsistema de Windows para LinuxThe Windows Subsystem for Linux

    La actualización de esta parte de Bash en Ubuntu en Windows habilitará las nuevas correcciones en las notas de la versión.Upgrading this portion of Bash on Ubuntu on Windows will enable any new fixes outlines in the release notes. Asegúrate de estar suscrito al Programa Windows Insider y de que la compilación esté actualizada.Ensure that you are subscribed to the Windows Insider Program and that your build is up to date. Para un control más preciso, incluido el restablecimiento de la instancia de Ubuntu, consulte la página de referencia de comandos.For finer grain control including resetting your Ubuntu instance check out the command reference page.

  2. Los archivos binarios de usuario de UbuntuThe Ubuntu user binaries

    Al actualizar esta parte de Bash en Ubuntu en Windows, se instalarán las actualizaciones de los archivos binarios de usuario de Ubuntu, incluidas las aplicaciones que se hayan instalado a través de apt-get.Upgrading this portion of Bash on Ubuntu on Windows will install any updates to the Ubuntu user binaries including applications that you have installed via apt-get. Para actualizar, ejecuta los comandos siguientes en Bash:To update run the following commands in Bash:

    1. apt-get update
    2. apt-get upgrade

Errores de actualización de apt-getApt-get upgrade errors

Algunos paquetes usan características que aún no se han implementado.Some packages use features that we haven't implemented yet. udev, por ejemplo, todavía no se admite y produce varios errores de tipo apt-get upgrade.udev, for example, isn't supported yet and causes several apt-get upgrade errors.

Para corregir los problemas relacionados con udev, sigue estos pasos:To fix issues related to udev, follow the following steps:

  1. Escribe lo siguiente en /usr/sbin/policy-rc.d y guarda los cambios.Write the following to /usr/sbin/policy-rc.d and save your changes.

    #!/bin/sh
    exit 101
    
  2. Agrega los permisos de ejecución en /usr/sbin/policy-rc.d.Add execute permissions to /usr/sbin/policy-rc.d

    chmod +x /usr/sbin/policy-rc.d
    
  3. Ejecuta los siguientes comandosRun the following commands

    dpkg-divert --local --rename --add /sbin/initctl
    ln -s /bin/true /sbin/initctl
    

"Error: 0x80040306" en la instalación"Error: 0x80040306" on installation

Esto se relaciona con el hecho de que no se admite la consola heredada.This has to do with the fact that we do not support legacy console. Para desactivar la consola heredada:To turn off legacy console:

  1. Abre cmd.exe.Open cmd.exe
  2. Haz clic con el botón derecho en barra de título -> Propiedades-> desactiva Usar consola heredada.Right click title bar -> Properties -> Uncheck Use legacy console
  3. Haga clic en AceptarClick OK

"Error: 0x80040154" después de una actualización de Windows"Error: 0x80040154" after Windows update

La característica Subsistema de Windows para Linux puede deshabilitarse durante una actualización de Windows.The Windows Subsystem for Linux feature may be disabled during a Windows update. Si esto ocurre, debes volver a habilitar la característica de Windows.If this happens the Windows feature must be re-enabled. Las instrucciones para habilitar el subsistema de Windows para Linux se pueden encontrar en la guía de instalación.Instructions for enabling the Windows Subsystem for Linux can be found in the Installation Guide.

Cambiar el idioma de visualizaciónChanging the display language

La instalación de WSL intentará cambiar automáticamente la configuración regional de Ubuntu para que coincida con la configuración regional de la instalación de Windows.WSL install will try to automatically change the Ubuntu locale to match the locale of your Windows install. Si no quieres que esto pase, puedes ejecutar este comando para cambiar la configuración regional de Ubuntu una vez finalizada la instalación.If you do not want this behavior you can run this command to change the Ubuntu locale after install completes. Ten en cuenta que tendrás que reiniciar bash.exe para que este cambio surta efecto.You will have to relaunch bash.exe for this change to take effect.

En el ejemplo siguiente se cambia la configuración regional a en-US:The below example changes to locale to en-US:

sudo update-locale LANG=en_US.UTF8

Problemas de instalación después de una restauración del sistema de WindowsInstallation issues after Windows system restore

  1. Elimina la carpeta %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux.Delete the %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux folder.
    Nota: No lo hagas si tu característica opcional está completamente instalada y en funcionamiento.Note: Do not do this if your optional feature is fully installed and working.
  2. Habilitar la característica opcional WSL (si aún no lo está)Enable the WSL optional feature (if not already)
  3. ReiniciarReboot
  4. lxrun /uninstall /fulllxrun /uninstall /full
  5. Instala bash.Install bash

Sin acceso a Internet en WSLNo internet access in WSL

Algunos usuarios han informado de problemas con aplicaciones de firewall específicas que bloquean el acceso a Internet en WSL.Some users have reported issues with specific firewall applications blocking internet access in WSL. Los firewalls que dan error son:The firewalls reported are:

  1. KasperskyKaspersky
  2. AVGAVG
  3. AvastAvast

En algunos casos, si desactivas el firewall podrás acceder.In some cases turning off the firewall allows for access. En otros casos, simplemente tener instalado el firewall parece bloquear el acceso a Internet.In some cases simply having the firewall installed looks to block access.

Error de permiso denegado al usar pingPermission Denied error when using ping

Actualización de aniversarioAnniversary Update

Se requieren privilegios de administrador en Windows para ejecutar ping en WSL.Administrator privileges in Windows are required to run ping in WSL. Para ejecutar ping, ejecuta Bash en Ubuntu en Windows como administrador o ejecuta bash.exe desde un símbolo del sistema de CMD/PowerShell con privilegios de administrador.To run ping, run Bash on Ubuntu on Windows as an administrator, or run bash.exe from a CMD/PowerShell prompt with administrator privileges.

Compilación 14926+Build 14926+

Ya no se necesitan privilegios de administrador.Administrator privileges no longer required.

Bash se bloqueaBash is hung

Si mientras trabajas con Bash, ves que Bash se bloquea (o interbloquea) y no responde a las entradas, ayúdanos a diagnosticar el problema mediante la recopilación y la generación de informes de un volcado de memoria.If while working with bash, you find that bash is hung (or deadlocked) and not responding to inputs, help us diagnose the issue by collecting and reporting a memory dump. Ten en cuenta que con estos pasos se bloqueará tu sistema.Note that these steps will crash your system. No lo hagas si no te sientes cómodo al hacerlo o guarda el trabajo antes de hacerlo.Do not do this if you are not comfortable with that or save your work prior to doing this.
Para recopilar un volcado de memoria:To collect a memory dump:

  1. Cambia el tipo de volcado de memoria a "volcado de memoria completa".Change the memory dump type to "complete memory dump". Al cambiar el tipo de volcado, toma nota del tipo actual.While changing the dump type, take a note of your current type.
  2. Sigue los pasos para configurar el bloqueo mediante el control de teclado.Use the steps to configure crash using keyboard control.
  3. Reproduce el bloqueo o interbloqueo.Repro the hang or deadlock.
  4. Bloquea el sistema con la secuencia de claves de (2).Crash the system using the key sequence from (2).
  5. El sistema se bloqueará y recopilará el volcado de memoria.The system will crash and collect the memory dump.
  6. Una vez que se reinicie el sistema, informa memory.dmp a secure@microsoft.com.Once the system reboots, report the memory.dmp to secure@microsoft.com. La ubicación predeterminada del archivo de volcado es %SystemRoot%\memory.dmp o C:\Windows\memory.dmp si C: es la unidad del sistema.The default location of the dump file is %SystemRoot%\memory.dmp or C:\Windows\memory.dmp if C: is the system drive. En el correo electrónico, indica que el volcado de memoria es para el equipo de WSL o de Bash en Windows.In the email, note that the dump is for the WSL or Bash on Windows team.
  7. Restaura el tipo de volcado de memoria a la configuración original.Restore the memory dump type to the original setting.

Comprobar el número de compilaciónCheck your build number

Para encontrar la arquitectura de tu PC y el número de compilación de Windows, abre:To find your PC's architecture and Windows build number, open
Configuración > Sistema > Acerca deSettings > System > About

Busca los campos Compilación del SO y Tipo de sistema.Look for the OS Build and System Type fields.
Captura de pantalla de los campos Compilación del SO y Tipo de sistemaScreenshot of Build and System Type fields

Para encontrar el número de compilación de Windows Server, ejecuta lo siguiente en PowerShell:To find your Windows Server build number, run the following in PowerShell:

systeminfo | Select-String "^OS Name","^OS Version"

Confirmar que WSL está habilitadoConfirm WSL is enabled

Puedes confirmar que el subsistema de Windows para Linux está habilitado mediante la ejecución de lo siguiente en PowerShell:You can confirm that the Windows Subsystem for Linux is enabled by running the following in PowerShell:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Problemas de conexión del servidor de OpenSSHOpenSSH-Server connection issues

Al intentar conectarte al servidor SSH se produce el error siguiente: "Connection closed by 127.0.0.1 port 22" (Conexión cerrada por 127.0.0.1 puerto 22).Trying to connect your SSH server is failed with the following error: "Connection closed by 127.0.0.1 port 22".

  1. Asegúrate de que el servidor OpenSSH esté en ejecución:Make sure your OpenSSH Server is running:
    sudo service ssh status
    
    y que has seguido este tutorial: https://help.ubuntu.com/lts/serverguide/openssh-server.html.enand you've followed this tutorial: https://help.ubuntu.com/lts/serverguide/openssh-server.html.en
  2. Detén el servicio sshd e inicia sshd en modo de depuración:Stop the sshd service and start sshd in debug mode:
    sudo service ssh stop
    sudo /usr/sbin/sshd -d
    
  3. Comprueba los registros de inicio y asegúrate de que HostKeys estén disponibles y de no ver mensajes de registro como:Check the startup logs and make sure HostKeys are available and you don't see log messages such as:
    debug1: sshd version OpenSSH_7.2, OpenSSL 1.0.2g  1 Mar 2016
    debug1: key_load_private: incorrect passphrase supplied to decrypt private key
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_rsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_dsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ed25519_key
    

Si ves estos mensajes y faltan las claves en /etc/ssh/, tendrás que volver a generar las claves o simplemente purgar e instalar el servidor OpenSSH:If you do see such messages and the keys are missing under /etc/ssh/, you will have to regenerate the keys or just purge&install openssh-server:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

"No se pudo encontrar el ensamblado al que se hace referencia"."The referenced assembly could not be found." al habilitar la característica opcional WSLwhen enabling the WSL optional feature

Este error está relacionado con un estado de instalación incorrecta.This error is related to being in a bad install state. Complete los pasos siguientes para intentar corregir este problema:Please complete the following steps to try and fix this issue:

  • Si estás ejecutando el comando para habilitar la característica WSL desde PowerShell, intenta usar la GUI en su lugar desde el menú Inicio: busca "activar o desactivar las características de Windows" y, a continuación, en la lista, selecciona "Subsistema de Windows para Linux", lo que instalará el componente opcional.If you are running the enable WSL feature command from PowerShell, try using the GUI instead by opening the start menu, searching for 'Turn Windows features on or off' and then in the list select 'Windows Subsystem for Linux' which will install the optional component.
  • Actualiza la versión de Windows. Para ello, ve a Configuración, Actualizaciones y haz clic en "Buscar actualizaciones".Update your version of Windows by going to Settings, Updates, and clicking 'Check for Updates'
  • Si se produce un error en ambos casos y necesitas acceder a WSL, considera la posibilidad de realizar una actualización local. Para ello, vuelve a instalar Windows 10 con los medios de instalación y selecciona "Conservar todo" para asegurarte de que las aplicaciones y los archivos se conservan.If both of those fail and you need to access WSL please consider upgrading in place by reinstalling Windows 10 using installation media and selecting 'Keep Everything' to ensure your apps and files are preserved. Puedes encontrar instrucciones sobre cómo hacerlo en la página Reinstalar Windows 10.You can find instructions on how to do so at the Reinstall Windows 10 page.