Compartir a través de


Preguntas más frecuentes sobre el subsistema de Windows para Linux

General

¿Qué es el Subsistema de Windows para Linux (WSL)?

El Subsistema de Windows para Linux (WSL) es una característica del sistema operativo Windows que permite ejecutar un sistema de archivos Linux, junto con herramientas de línea de comandos y aplicaciones de GUI de Linux, directamente en Windows, junto con el escritorio y las aplicaciones tradicionales de Windows.

Consulte la página acerca de para obtener más detalles.

¿Quién es WSL para?

Se trata principalmente de una herramienta para desarrolladores, especialmente desarrolladores web, aquellos que trabajan en proyectos de código abierto o se implementan en entornos de servidor Linux. WSL es para cualquier persona que quiera usar Bash, herramientas comunes de Linux (sed, awk, etc.) y marcos de trabajo primero de Linux (Ruby, Python, etc.), pero también disfruta del uso de herramientas de productividad de Windows.

¿Qué puedo hacer con WSL?

WSL le permite ejecutar Linux en un shell de Bash con su elección de distribución (Ubuntu, Debian, OpenSUSE, Kali, Alpine, etc.). Con Bash, puede ejecutar aplicaciones y herramientas de Linux de línea de comandos. Por ejemplo, escriba lsb_release -a y presione entrar; verá los detalles de la distribución de Linux que se está ejecutando actualmente:

Captura de pantalla de detalles de distribución

También puede acceder al sistema de archivos del equipo local desde el shell de Bash de Linux; encontrará las unidades locales montadas en la /mnt carpeta . Por ejemplo, la C: unidad se monta en /mnt/c:

Captura de pantalla de la unidad C montada

¿Podría describir un flujo de trabajo de desarrollo típico que incorpora WSL?

WSL tiene como destino una audiencia de desarrollador con la intención de usarse como parte de un bucle de desarrollo interno. Supongamos que Sam está creando una canalización de CI/CD (Integración continua y entrega continua) y quiere probarla primero en una máquina local (portátil) antes de implementarla en la nube. Sam puede habilitar WSL (& WSL 2 para mejorar la velocidad y el rendimiento) y, a continuación, usar una instancia original de Ubuntu de Linux localmente (en el portátil) con los comandos y herramientas de Bash que prefieran. Una vez que la canalización de desarrollo se comprueba localmente, Sam puede insertar esa canalización de CI/CD en la nube (es decir, Azure) convirtiéndola en un contenedor de Docker e insertando el contenedor en una instancia de nube donde se ejecuta en una máquina virtual Ubuntu lista para producción.

¿Qué es Bash?

Bash es un conocido shell basado en texto y lenguaje de comandos. Es el shell predeterminado incluido en Ubuntu y otras distribuciones de Linux. Los usuarios escriben comandos en un shell para ejecutar scripts o ejecutar comandos y herramientas para realizar muchas tareas.

¿Cómo funciona esto?

Consulte este artículo en el blog de la línea de comandos de Windows: Una profundización en cómo WSL permite que Windows acceda a archivos de Linux , que se detallan en detalle sobre la tecnología subyacente.

¿Por qué usaría WSL en lugar de Linux en una máquina virtual?

WSL requiere menos recursos (CPU, memoria y almacenamiento) que una máquina virtual completa. WSL también permite ejecutar aplicaciones y herramientas de línea de comandos de Linux junto con la línea de comandos de Windows, el escritorio y las aplicaciones de la tienda, y acceder a los archivos de Windows desde Linux. Esto le permite usar aplicaciones de Windows y herramientas de línea de comandos de Linux en el mismo conjunto de archivos si lo desea.

¿Por qué usaría, por ejemplo, Ruby en Linux en lugar de en Windows?

Algunas herramientas multiplataforma se crearon suponiendo que el entorno en el que se ejecutan se comporta como Linux. Por ejemplo, algunas herramientas asumen que pueden acceder a rutas de acceso a archivos muy largas o que existen archivos o carpetas específicos. Esto suele provocar problemas en Windows que a menudo se comportan de forma diferente de Linux.

Muchos lenguajes como Ruby y Node.js a menudo se trasladan a y ejecutan excelentes en Windows. Sin embargo, no todos los propietarios de bibliotecas de Ruby Gem o node/NPM portan sus bibliotecas para admitir Windows y muchos tienen dependencias específicas de Linux. Esto a menudo puede dar lugar a sistemas creados mediante estas herramientas y bibliotecas que sufren errores de compilación y, a veces, errores en tiempo de ejecución o comportamientos no deseados en Windows.

Estos son solo algunos de los problemas que han provocado que muchas personas pidan a Microsoft que mejore las herramientas de línea de comandos de Windows y lo que nos llevó a asociarnos con Canonical para permitir que las herramientas nativas de línea de comandos de Bash y Linux se ejecuten en Windows.

¿Qué significa esto para PowerShell?

Al trabajar con proyectos de sistema operativo, hay numerosos escenarios en los que resulta inmensamente útil colocarse en Bash desde un símbolo del sistema de PowerShell. El soporte técnico de Bash es complementario y refuerza el valor de la línea de comandos en Windows, lo que permite que PowerShell y la comunidad de PowerShell aprovechen otras tecnologías populares.

Obtenga más información en el blog del equipo de PowerShell: Bash para Windows: ¿Por qué es increíble y qué significa para PowerShell?

¿Qué procesadores admite WSL?

WSL admite CPU x64 y Arm64.

¿Cómo puedo acceder a mi unidad C: ?

Los puntos de montaje de unidades de disco duro en la máquina local se crean automáticamente y proporcionan acceso sencillo al sistema de archivos de Windows.

/mnt/<letra> de unidad/

El uso de ejemplo sería cd /mnt/c acceder a c:\

¿Cómo configuro el Administrador de credenciales de Git? (¿Cómo uso mis permisos de Git de Windows en WSL?)

Consulte el tutorial Introducción al uso de Git en subsistema de Windows para Linux, que incluye una sección sobre cómo configurar el Administrador de credenciales de Git y almacenar tokens de autenticación en el Administrador de credenciales de Windows.

¿Cómo uso un archivo de Windows con una aplicación Linux?

Una de las ventajas de WSL es poder acceder a los archivos a través de aplicaciones o herramientas de Windows y Linux.

WSL monta las unidades fijas de la máquina en la carpeta de las /mnt/<drive> distribuciones de Linux. Por ejemplo, la C: unidad se monta en /mnt/c/.

Con las unidades montadas, puede editar código en, por ejemplo, C:\dev\myproj\ mediante Visual Studio o VS Code, y compilar o probar ese código en Linux accediendo a los mismos archivos a través /mnt/c/dev/myprojde .

Obtenga más información en el artículo Trabajar en sistemas de archivos Windows y Linux .

¿Los archivos de la unidad Linux son diferentes de la unidad de Windows montada?

  1. WSL controla los archivos de la raíz de Linux (es decir, /) que se alinean con el comportamiento de Linux, incluidos, entre otros:

    • Archivos que contienen caracteres de nombre de archivo de Windows no válidos
    • Vínculos simbólicos creados para usuarios que no son administradores
    • Cambio de atributos de archivo a través chmod de y chown
    • Distinción entre mayúsculas y minúsculas de archivo/carpeta
  2. Los archivos de las unidades montadas se controlan mediante Windows y tienen los siguientes comportamientos:

    • Compatibilidad con la distinción de mayúsculas y minúsculas
    • Todos los permisos se establecen para reflejar mejor los permisos de Windows.

¿Cómo se desinstala una distribución de WSL?

Para quitar una distribución de WSL y eliminar todos los datos asociados a esa distribución de Linux, ejecute wsl --unregister <Distro> donde <Distro> es el nombre de la distribución de Linux, que se puede ver de la lista en el wsl -l comando .

Además, puede desinstalar la aplicación de distribución de Linux en la máquina igual que cualquier otra aplicación de la tienda.

Para más información sobre los comandos wsl, consulte el artículo Comandos básicos para WSL.

¿Cómo se ejecuta un servidor OpenSSH?

OpenSSH se incluye con Windows como una característica opcional. Consulte el documento Instalación de OpenSSH . Los privilegios de administrador en Windows son necesarios para ejecutar OpenSSH en WSL. Para ejecutar un servidor OpenSSH, ejecute la distribución de WSL (es decir, Ubuntu) o Terminal Windows como administrador. Hay varios recursos que abarcan escenarios ssh con WSL. Consulte los artículos de blog de Scott Hanselman: How to SSH into a Windows 10 Machine from Linux OR Windows OR anywhere ( Cómo usar SSH en WSL2 en Windows 10 desde una máquina externa), THE EASY WAY how to SSH into Bash and WSL2 on Windows 10 from an external machine ( Cómo usar OpenSSH integrado de Windows 10 para SSH en una máquina Linux remota).

¿Cómo cambio el idioma para mostrar de WSL?

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. Si no desea este comportamiento, puede ejecutar este comando para cambiar la configuración regional de Ubuntu una vez completada la instalación. Tendrá que volver a iniciar la distribución de WSL para que este cambio surta efecto.

En el ejemplo siguiente se cambia la configuración regional a en-US:

sudo update-locale LANG=en_US.UTF8

¿Por qué no tengo acceso a Internet desde WSL?

Algunos usuarios han notificado problemas con aplicaciones de firewall específicas que bloquean el acceso a Internet en WSL. Los firewalls notificados son:

  1. Kaspersky
  2. AVG
  3. Avast
  4. Symantec Endpoint Protection
  5. F-Secure

En algunos casos, desactivar el firewall permite el acceso. En algunos casos, simplemente tener instalado el firewall busca bloquear el acceso.

¿Cómo puedo acceder a un puerto desde WSL en Windows?

WSL comparte la dirección IP de Windows, ya que se ejecuta en Windows. Por lo tanto, puede acceder a cualquier puerto en localhost, por ejemplo, si tenía contenido web en el puerto 1234, podría https://localhost:1234 acceder al explorador Windows. Para obtener más información, consulte Acceso a aplicaciones de red.

¿Cómo puedo realizar una copia de seguridad de mis distribuciones de WSL?

La mejor manera de realizar copias de seguridad o mover las distribuciones es a través de los comandosde importación de / disponibles en windows versión 1809 y posteriores. Puede exportar toda la distribución a tarball mediante el wsl --export comando . A continuación, puede volver a importar esta distribución en WSL mediante el wsl --import comando , que puede asignar un nombre a una nueva ubicación de unidad para la importación, lo que le permite realizar copias de seguridad y guardar los estados de (o mover) las distribuciones de WSL. Para obtener más información sobre cómo mover las distribuciones de WSL, consulte ¿Cómo puedo transferir mis archivos WSL de una máquina a otra?.

Los servicios de copia de seguridad tradicionales que copian copia de seguridad de archivos en las carpetas appData (como Copias de seguridad de Windows) no dañarán los archivos de Linux.

¿Puedo usar WSL para escenarios de producción?

Sí, sin embargo, WSL se ha diseñado y creado para su uso con flujos de trabajo de desarrollo de bucles internos. Hay características de diseño en WSL que hacen que sea excelente para este propósito, pero puede hacer que sea difícil para escenarios relacionados con la producción en comparación con otros productos. Nuestro objetivo es aclarar cómo WSL difiere de un entorno de máquina virtual normal, por lo que puede tomar la decisión sobre si se ajusta a sus necesidades empresariales.

Las principales diferencias entre WSL y un entorno de producción tradicional son:

  • WSL tiene una máquina virtual de utilidad ligera que se inicia, detiene y administra automáticamente los recursos.
  • Si no tiene identificadores de archivo abiertos para los procesos de Windows, la máquina virtual WSL se apagará automáticamente. Esto significa que si lo usa como servidor web, ssh en él para ejecutar el servidor y, a continuación, salir, la máquina virtual podría apagarse porque detecta que los usuarios han terminado de usarlos y limpiarán sus recursos.
  • Los usuarios de WSL tienen acceso total a sus instancias de Linux. La duración de la máquina virtual, las distribuciones de WSL registradas, etc., son accesibles por el usuario y el usuario puede modificarla.
  • WSL proporciona automáticamente acceso a archivos de Windows.
  • Las rutas de acceso de Windows se anexan a la ruta de acceso de forma predeterminada, lo que podría provocar un comportamiento inesperado para determinadas aplicaciones Linux en comparación con un entorno de Linux tradicional.
  • WSL puede ejecutar ejecutables de Windows desde Linux, lo que también podría provocar un entorno diferente al de una máquina virtual Linux tradicional.
  • El kernel de Linux usado por WSL se actualiza automáticamente.
  • El acceso de GPU en WSL se produce a través de un /dev/dxg dispositivo, que enruta las llamadas de GPU a la GPU de Windows. Esta configuración es diferente de una configuración tradicional de Linux.
  • Hay otras diferencias más pequeñas en comparación con Linux sin sistema operativo y se espera que surjan más diferencias en el futuro, ya que el flujo de trabajo de desarrollo de bucles internos tiene prioridad.

¿Cómo puedo transferir mis archivos WSL de una máquina a otra?

Hay varias maneras de realizar esta tarea:

  • La manera más sencilla es usar el comando para exportar la wsl --export <Distro> <FileName> --format vhd distribución de WSL a un archivo VHD. A continuación, puede copiar este archivo en otra máquina e importarlo mediante wsl --import <Distro> <InstallLocation> <FileName> --vhd. Consulte los comandos de importación y exportación en el documento de comandos básicos de WSL para obtener más información.
  • La implementación anterior requiere mucho espacio en disco. Si no tiene mucho espacio en disco, puede usar técnicas de Linux para mover los archivos:
    • Use tar -czf <tarballName> <directory> para crear una tarball de los archivos. A continuación, puede copiar estos archivos específicos en la nueva máquina y ejecutarlos tar -xzf <tarballName> para extraerlos.
    • También puede exportar una lista de paquetes instalados mediante apt un comando similar al siguiente: y, a continuación, dpkg --get-selections | grep -v deinstall | awk '{print $1}' > package_list.txt volver a instalar esos mismos paquetes en otra máquina con un comando como sudo apt install -y $(cat package_list.txt) después de transferir el archivo.

¿Cómo puedo mover mi distribución de WSL a otra unidad o ubicación?

Puede hacerlo mediante PowerShell. A continuación se muestran los comandos y explicaciones necesarios para cada paso. Abra una ventana de PowerShell y ajuste los valores entre las <> etiquetas para ajustarse a su caso de uso específico:

# Export your distro to that folder as a VHD
wsl --export <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx> --format vhd

# Unregister your old distro
# Please note this will erase your existing distro's file contents, please ensure the backup file you created in the 2nd step is present at the location and that the export operation completed successfully.
# Please exercise caution when using this command, as it is destructive and could cause data loss.
wsl --unregister <Distro, e.g: Ubuntu>

# Import your VHD backup
wsl --import-in-place <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx>

Establecimiento de la cuenta de usuario predeterminada

Puede configurar la cuenta de usuario predeterminada estableciendo un wsl.conf valor de user.default=<name>

WSL 2

¿WSL 2 está disponible en Windows 10 Home y Windows 11 Home?

Sí. WSL 2 está disponible en todas las SKU de escritorio donde WSL está disponible, incluido Windows 10 Home y Windows 11 Home.

En concreto, WSL2 requiere que se habiliten dos características:

  1. "Plataforma de máquina virtual" (un subconjunto de Hyper-V)
  2. "Subsistema de Windows para Linux"

¿WSL 2 usa Hyper-V?

La versión más reciente de WSL usa un subconjunto de Hyper-V arquitectura para habilitar su virtualización. Este subconjunto se proporciona como un componente opcional denominado "Plataforma de máquina virtual", disponible en todas las SKU de escritorio.

¿Qué ocurrirá con WSL 1? ¿Se abandonará?

Actualmente no tenemos planes para dejar de usar WSL 1. Puede ejecutar distribuciones de WSL 1 y WSL 2 en paralelo, y puede actualizar y degradar cualquier distribución en cualquier momento. La adición de WSL 2 como una nueva arquitectura presenta una mejor plataforma para que el equipo de WSL ofrezca características que hacen de WSL una manera increíble de ejecutar un entorno de Linux en Windows.

¿Puedo ejecutar WSL 2 y otras herramientas de virtualización de terceros, como VMware o VirtualBox?

Algunas aplicaciones de terceros no pueden funcionar cuando Hyper-V está en uso, lo que significa que no podrán ejecutarse cuando WSL 2 esté habilitado, como VMware y VirtualBox. Sin embargo, recientemente VirtualBox y VMware han publicado versiones que admiten Hyper-V y WSL2. Obtenga más información sobre los cambios de VirtualBox aquí y los cambios de VMware aquí. Para solucionar problemas, eche un vistazo a los debates sobre problemas de VirtualBox en el repositorio de WSL en GitHub. StackOverflow también ofrece una sugerencia útil: Cómo hacer que VirtualBox 6.0 y WSL funcionen al mismo tiempo.

Estamos trabajando constantemente en soluciones para admitir la integración de terceros de Hyper-V. Por ejemplo, exponemos un conjunto de API denominadas Plataforma de hipervisor que los proveedores de virtualización de terceros pueden usar para hacer que su software sea compatible con Hyper-V. Esto permite a las aplicaciones usar la arquitectura de Hyper-V para su emulación, como Google Android Emulator, y VirtualBox 6 y versiones posteriores, que ahora son compatibles con Hyper-V.

Consulte el repositorio de problemas de WSL para obtener más información sobre los problemas de WSL 2 con VirtualBox 6.1.

*Si busca una máquina virtual Windows, VMWare, Hyper-V, VirtualBox y Parallels vm downloads están disponibles en el Centro de desarrollo de Windows.

¿Puedo acceder a la GPU en WSL 2? ¿Hay planes para aumentar la compatibilidad con hardware?

Hemos publicado compatibilidad para acceder a la GPU dentro de las distribuciones de WSL 2. Esto significa que ahora puede usar WSL para escenarios de aprendizaje automático, inteligencia artificial y ciencia de datos más fácilmente cuando intervienen conjuntos de macrodatos. Consulte el tutorial introducción a la compatibilidad con GPU . A partir de ahora WSL 2 no incluye compatibilidad en serie ni compatibilidad con dispositivos USB. Estamos investigando la mejor manera de agregar estas características. Sin embargo, la compatibilidad con USB ya está disponible a través del proyecto de USBIPD-WIN. Consulte Conexión de dispositivos USB para conocer los pasos para configurar la compatibilidad con dispositivos USB.

¿Puede WSL 2 usar aplicaciones de red?

Sí, en general las aplicaciones de red funcionarán mejor y serán más rápidas con WSL 2, ya que ofrece compatibilidad completa de llamadas del sistema. Sin embargo, la arquitectura de WSL 2 usa componentes de red virtualizados, lo que significa que WSL 2 se comportará de forma similar a una máquina virtual: las distribuciones de WSL 2 tendrán una dirección IP diferente a la máquina host (sistema operativo Windows). Para obtener más información, consulte Acceso a aplicaciones de red con WSL.

¿Puedo ejecutar WSL 2 en una máquina virtual?

¡Sí! Debe asegurarse de que la máquina virtual tiene habilitada la virtualización anidada. Esto se puede habilitar en el host primario Hyper-V ejecutando el siguiente comando en una ventana de PowerShell con privilegios de administrador:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Asegúrese de reemplazar "<VMName>" por el nombre de la máquina virtual.

¿Puedo usar wsl.conf en WSL 2?

WSL 2 admite el mismo archivo wsl.conf que usa WSL 1. Esto significa que cualquier opción de configuración que haya establecido en una distribución de WSL 1, como el montaje automático de unidades de Windows, la habilitación o deshabilitación de la interoperabilidad, el cambio del directorio donde se montarán las unidades de Windows, etc. funcionarán dentro de WSL 2. Puede obtener más información sobre las opciones de configuración de WSL en la página Administración de distribución . Obtenga más información sobre la compatibilidad con el montaje de unidades, discos, dispositivos o discos duros virtuales (VHD) en el artículo Montaje de un disco Linux en WSL 2 .

1: Registro de cambios para VirtualBox 6.02: Hyper-V API3: Hyper-V compatibilidad con android emulator4: VMware Workstation Tech Preview 20H1 : compatibilidad con VBS de Hyper-V/Host

¿Dónde puedo proporcionar comentarios?

Los problemas del repositorio de productos de WSL le permiten:

  • Buscar problemas existentes para ver si alguno está asociado con el problema que tenga. Tenga en cuenta que en la barra de búsqueda, puede quitar "is:open" para incluir problemas que ya se han resuelto en su búsqueda. Considere la posibilidad de comentar o dar un me gusta a cualquier cuestión abierta en la que le gustaría expresar su interés para avanzar como prioridad.
  • Presentar una nueva incidencia. Si ha encontrado un problema con WSL y no parece que haya un problema existente, puede seleccionar el botón verde Nuevo problema y, a continuación, elegir WSL - Informe de errores. Tendrá que incluir un título para el problema, el número de compilación de Windows (ejecutar cmd.exe /c ver para ver la compilación actual #), tanto si está ejecutando WSL 1 como 2, la versión actual del kernel de Linux (ejecute wsl.exe --status o cat /proc/version), la versión # de la distribución (ejecute lsb_release -r), cualquier otra versión de software implicada, los pasos de reproducción, el comportamiento esperado, el comportamiento real, y los registros de diagnóstico si están disponibles y adecuados. Para más información, consulte Contribución a WSL.
  • Para presentar una solicitud de característica, seleccione el botón verde Nuevo problema y, a continuación, seleccione Solicitud de característica. Tendrá que abordar algunas preguntas que describen la solicitud.

También puede:

  • Presentar un problema de documentación mediante el repositorio de documentos de WSL. Para contribuir a los documentos de WSL, consulte la guía de colaborador de Microsoft Docs .
  • Registre un problema de Terminal Windows con el repositorio de productos de Terminal Windows si el problema está relacionado con el terminal windows, la consola de Windows o la interfaz de usuario de la línea de comandos.

Si quieres mantenerte al día con las últimas noticias de WSL puedes hacerlo con:

Cómo resolver 'Error: 0x800704ec Esta directiva de grupo bloquea este programa. Para obtener más información, póngase en contacto con el administrador del sistema.'?

Este error se debe a que una directiva de grupo bloquea WSL. Para resolverlo, ejecute primero el comando wsl --update para actualizar a la versión más reciente de store. Si esto no resuelve el problema, póngase en contacto con el administrador. Obtenga más información sobre la diferencia entre el WSL de la bandeja de entrada y la versión de Store de WSL: WSL en Microsoft Store.

¿Fue LxssManager reemplazado por WSLService?

Sí, LxssManager se reemplazó por WSLService cuando WSL pasó de un componente de bandeja de entrada a, en su lugar, al servicio de Microsoft Store.