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

Para obtener ayuda para solucionar problemas relacionados con WSL, consulta nuestro repositorio de GitHub:For support with issues related to WSL, please see our GitHub repo:

Si tienes problemas técnicos, usa el repositorio de productos: https://github.com/Microsoft/wsl/issues.For technical issues, use the product repo: https://github.com/Microsoft/wsl/issues

Si tienes problemas relacionados con el contenido de esta documentación, usa el repositorio de documentos: https://github.com/MicrosoftDocs/wsl/issues.For issues related to the contents of this documentation, use the docs repo: https://github.com/MicrosoftDocs/wsl/issues

Envío de un informe de errorSubmit a bug report

Para obtener información sobre errores relacionados con las funciones o características de WSL, presenta los detalles del problema en el repositorio del producto: https://github.com/Microsoft/wsl/issues.For bugs related to WSL functions or features, file an issue in the product repo: https://github.com/Microsoft/wsl/issues

Envío de una solicitud de característicaSubmit a feature request

Para solicitar una nueva característica relacionada con la funcionalidad o compatibilidad de WSL, presenta los detalles del problema en el repositorio del producto: https://github.com/Microsoft/wsl/issues.To request a new feature related to WSL functionality or compatibility, file an issue in the product repo: https://github.com/Microsoft/wsl/issues

Contribuir a los documentosContribute to the docs

Para contribuir a la documentación de WSL, envía una solicitud de incorporación de cambios en el repositorio de documentos: https://github.com/MicrosoftDocs/wsl/issues.To contribute to the WSL documentation, submit a pull request in the docs repo: https://github.com/MicrosoftDocs/wsl/issues

Terminal o línea de comandosTerminal or Command Line

Por último, si tu problema está relacionado con el Terminal Windows, la consola de Windows o la interfaz de usuario de la línea de comandos, usa el repositorio del Terminal Windows: https://github.com/microsoft/terminal.Lastly, if your issue is related to the Windows Terminal, Windows Console, or the command-line UI, use the Windows terminal repo: https://github.com/microsoft/terminal

Problemas comunesCommon issues

No se puede acceder a los archivos WSL desde WindowsCannot access WSL files from Windows

Un servidor de archivos de protocolo 9P proporciona el servicio en el lado de Linux para permitir que Windows tenga acceso al sistema de archivos de Linux.A 9p protocol file server provides the service on the Linux side to allow Windows to access the Linux file system. Si no puede acceder a WSL con \\wsl$ en Windows, podría deberse a que 9P no se inició correctamente.If you cannot access WSL using \\wsl$ on Windows, it could be because 9P did not start correctly.

Para comprobarlo, puede consultar los registros de inicio mediante: dmesg |grep 9p, lo que le mostrará los errores.To check this, you can check the start up logs using: dmesg |grep 9p, and this will show you any errors. Una salida correcta se parece a la siguiente:A successfull output looks like the following:

[    0.363323] 9p: Installing v9fs 9p2000 file system support
[    0.363336] FS-Cache: Netfs '9p' registered for caching
[    0.398989] 9pnet: Installing 9P2000 support

Consulte este subproceso de Github para más explicaciones sobre este problema.Please see this Github thread for further discussion on this issue.

No se puede iniciar la distribución WSL 2 y solo se ve "WSL 2" en la salidaCan't start WSL 2 distro and only see 'WSL 2' in output

Si el idioma para mostrar no es el inglés, es posible que vea una versión truncada de un texto de error.If your display language is not English, then it is possible you are seeing a truncated version of an error text.

C:\Users\me>wsl
WSL 2

Para resolver este problema, visite https://aka.ms/wsl2kernel e instale el kernel manualmente siguiendo las instrucciones de esa página de documentación.To resolve this issue, please visit https://aka.ms/wsl2kernel and install the kernel manually by following the directions on that doc page.

Habilite la característica de Windows de plataforma de máquina virtual y asegúrese de que la virtualización esté habilitada en el BIOS.Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.

  1. Consulte Requisitos de sistema de Hyper-V.Check the Hyper-V system requirements
  2. Si el equipo es una máquina virtual, habilite la virtualización anidada de forma manual.If your machine is a VM, please enable nested virtualization manually. Inicie PowerShell como administrador y ejecute:Launch powershell with admin, and run:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
  1. Siga las instrucciones del fabricante del equipo sobre cómo habilitar la virtualización.Please follow guidelines from your PC's manufacturer on how to enable virtualization. En general, esto puede implicar el uso del BIOS del sistema para asegurarse de que estas características se habilitan en la CPU.In general, this can involve using the system BIOS to ensure that these features are enabled on your CPU.
  2. Reinicie el equipo después de habilitar el componente opcional Virtual Machine Platform.Restart your machine after enabling the Virtual Machine Platform optional component.

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 elemento resolv.com actual sudo unlink /etc/resolv.confUnlink the current resolv.conf 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. Ejecute los siguientes comandos:Run 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

En cuanto a la Actualización de aniversario de Windows (versión 1607), es necesario tener privilegios de administrador en Windows para ejecutar ping en WSL.For Windows Anniversary Update, version 1607, 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.

Para versiones posteriores de Windows (compilación 14926+) ya no es necesario tener privilegios de administrador.For later versions of Windows, Build 14926+, administrator privileges are 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 memoriaTo 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.

Si ves este error:If you're seeing this error:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.

Para corregirlo, anexa lo siguiente al archivo /etc/wsl.conf:To fix this, append the following to the the /etc/wsl.conf file:

[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022

Ten en cuenta que, al agregar este comando, se incluirán metadatos y se modificarán los permisos de archivo en los archivos de Windows que se muestran en WSL.Please note that adding this command will include metadata and modify the file permissions on the Windows files seen from WSL. Para obtener más información, consulta los Permisos del sistema de archivos.Please see the File System Permissions for more information.