22

Aprende a instalar WSL 2 de la manera sencilla

WSL se ha convertido es una de las herramientas de desarrollo muy popular dentro de Windows 10, con esta herramienta no necesitas crear un dual boot en tu equipo (tener instalados dos sistemas operativos) para contar con todas las bondades del desarrollo de Linux. Pero como todo, WSL tiene sus detalles como el bajo rendimiento en la lectura de archivos.

Por fortuna Microsoft lanzó a través de la actualización de Windows 10 Release 2004 Build 19041 la nueva versión de WSL, WSL 2.

Pero, ¿por qué WSL 2?

Las características principales de WSL 2 son un mayor rendimiento (hasta 20 veces mejor que WSL 1 🤯) y un kernel de Linux 100% nativo, y otras características como:

  • Llamadas del sistema totalmente compatibles
  • Poco uso de memoria RAM
  • Acceder a los archivos de la distro a través de la Red desde el explorador de Windows

Además debemos considerar tener un ambiente de desarrollo lo más cercano a lo que tendremos a los servidores en producción. Si comparamos porque utilizar contra GitBash la razón es sencilla, tenemos una alta gama de herramientas de desarrollo disponibles en WSL, además de que GitBash está muy limitado a funcionar adecuadamente para que utilicemos Git.

¿Qué necesito para correr WSL 2?

  • Tener instalado Windows 10 Home o mejor (Windows 10 S no soporta WSL)
  • Tener instalado Windows 10 Release 2004 Build 19041 o posterior

Instalación

Primero que nada necesitamos habilitar Subsistema de Windows para Linux (Windows Subsystem for Linux) y Hyper-V, una herramienta de virtualización de Microsoft necesitado para WSL 2, pues nuestra distro se vuelve una maquina virtual dentro de nuestra sistema operativo de una forma especial que da vida a WSL 2 (aquí es donde sucede la magía del rendimiento).

Presionamos la tecla Windows y escribimos características y damos clic en: Activar o desactivas las características de Windows

Fig. 1 - Activar o desactivas las características de Windows
Fig. 1 - Activar o desactivas las características de Windows

Aparece una pequeña ventana con el listado de características disponibles para nuestor sistema, necesitamos buscar las opciones de Hyper-V y Subsistema de Windows para Linux, nos aseguramos de que esten palomeadas ambas herramientas, damos clic en Aceptar y Windows empezará a descargar los archivos necesarios y cuando termine nos pedirá reiniciar nuestra maquina por lo que aceptamos y reiniciamos Windows.

Fig. 2 - Hyper-V seleccionado
Fig. 2 - Hyper-V seleccionado

Fig. 3 - Subsistema de Windows para Linux seleccionado
Fig. 3 - Subsistema de Windows para Linux seleccionado

Una vez que tu equipo se reinició ya podemos descargar Ubuntu a través de la Microsoft Store desde este enlace. Cuando termine la descarga iniciamos la aplicación y esperamos a que termine el proceso y establecemos nuestro usuario y contraseña de nuestra distribución de Linux.

Como verás el proceso de instalación es el mismo que WSL 1, pero aquí es donde se encuentra la diferencia principal, para ello necesitamos abrir Powershell presionando la combinación de teclas Windows + r y escribimos powershell.

Fig. 4 - Ejecutar Powershell
Fig. 4 - Ejecutar Powershell

Nos abrirá una terminal donde ejecutaremos el siguente comando: wsl --list --verbose o en su versión corta wsl -l -v, al ejecutar esta linea se despliega una lista de distribuciones instalada en nuestra maquina:

NAME     STATE    VERSION
Ubuntu   Stopped  1

Como observamos aún tenemos la versión 1 seleccionada, para establecer la versión 2 corremos el siguiente comando: wsl --set-version <el-nombre-de-la-distro> 2 o en el caso del ejemplo wsl --set-version Ubuntu 2 y presionamos Enter. Aparece un mensaje indicando que el proceso de conversión está ejecutandose y que tomará unos minutos, por lo que si gustas puedes ir por un café o estirar las piernas y brazos ya que si toma unos cuandos minutos (aproximadamente de 10 a 15 minutos).

Una vez completado el proceso volvemos a correr wsl -l -v y deberá mostrar la lista así:

NAME     STATE    VERSION
Ubuntu   Stopped  2

Y listo, ya tenemos WSL 2 disponible para desarrollar! 🤘

Consideraciones especiales

Al utilizar la versión 2 debemos tener las siguientes consideraciones:

  • No utilices alguna aplicación en Windows que haga uso del puerto 53, ya que en caso de que sea así se bloqueara el puerto utilizado por Hyper-V y tu distro no podrá iniciar.
  • Procura utilizar el sistema de archivos de tu distro porque si accedes a través del formato de archivos de Windows el rendimiento puede ser peor que el de WSL 1.

Y por lo pronto es todo, si deseas aprender más sobre la línea de comandos puedes tomar el Curso de Introducción a la Terminal y Línea de Comandos

Escribe tu comentario
+ 2
Ordenar por:
11
15562Puntos

Volver utilizar Windows inicialmente me hizo estar preocupado debido a que en los últimos años estuve usado Linux y macOS para Desarrollo Web.

Por suerte, Windows 10 con la última actualización tiene mejoras en el entorno de desarrollo, me refiero al Subsistema de Windows para Linux o WSL 2.

Aún estoy en los primeros días de usarlo en mis proyectos personales, y hasta ahora la experiencia ha sido fascinante.

Pero bueno… el objetivo es contarte que desde la versión WSL 2 ya no es necesario activar el Hipervisor de Microsoft ( Hyper-V ) ahora lo que debes activar en la ventana de las características de Windows es Plataforma de máquina virtual, wsl.png Pero espera…!! También es importante que tengas Habilitada la virtualización de tu computadora.

Para saber si tu computadora tiene esta opción habilitada es sencillo, ve al administrador de tareas en la pestaña de rendimiento veras si tu PC están habilitada o deshabilitada.VIRTUALIZACIÓN.png

Para habilitarla la forma en que yo lo hice fue desde la configuración de la BIOS.

Y listo… tendrás un entorno de desarrollo fascinante sin tener que gastar tanto dinero en una Mac.

Nota: si saber de que otra manera habilitar la virtualización de una PC háznoslo saber, toda la comunidad te lo agradeceremos.

1
17668Puntos
3 años

Seguí tu consejo para obviar la selección de HYPER V y seleccionar PLATAFORMA DE MÁQUINA VIRTUAL y SUBSISTEMA DE WINDOWS PARA LINUX lo que funcionò hasta que se despaquetaron drivers de Windows y requirió reiniciar sistema pero al comprobar en ADMINISTRADOR DE TAREAS/PERFORMANCE aùn aparece como DESHABILITADO para VIRTUALIZACIÒN.

En mi caso no permite seleccionar HYPER V.

8
7789Puntos

VER VERSIÓN DE WSL:
wsl --list --verbose

ESTABLECER WSL 2:
wsl --set-default-version 2

ACTUALIZAR DESTITUTIÓN DE LUNUX A WSL2 (Ejemplo Ubuntu-20.02)
wsl --set-version <distribution name> <versionNumber>

wsl --set-version Ubuntu-20.04 2

6
17567Puntos

Habia un proceso que me consumia un monton de ram!

cree un archivo en en mi c:\Users\<user> con el nombre de .wslconfig

y le coloqué la siguiente config, para que limitara el uso a 2GB

[wsl2]memory=2048MB
swap=0localhostForwarding=true
3
17567Puntos
4 años

PD: no tengo ni la menor idea de que es lo que pasa. Esa config es un resultado de una busqueda de 4 horas en google.

0
29645Puntos
4 años

Muchas gracias Frank, voy a darle una revisada 👌

1
276Puntos

¿Alguno tuvo problemas con los permisos de accesos de windows 11 a wsl2?

1
14161Puntos

Para complementar amigos dejo los esquemas de WSL 1 Y WSL 2 WSL1 VS WSL2.png

2
17668Puntos
3 años

Ya tengo WSL 2 pero en uno paso me indicaron deshabilitar HYPER-V y no sé si deba permanecer deshabilitado. Qué debo hacer aquí?

1
17668Puntos

Mi proceso no ha sido finalizado porque al activar casilla HYPER/V no permite selecciòn total sino parcial (recuadro negro en vez de signo checked)

En ese caso salen subitems, unos permiten selección/deselecciòn; los otros aparecen como inactivados para ser modificados, concretamente HYPER V HYPERVISOR es la única casilla que al no permitir selecciòn/deselecciòn, bloquea HYPER-V para check/uncheck.

Seguí el consejo del comentario de @marius para obviar la selección de HYPER V y seleccionar PLATAFORMA DE MÁQUINA VIRTUAL y SUBSISTEMA DE WINDOWS PARA LINUX.

Se despaquetaron drivers de Windows y requirió reiniciar sistema pero al comprobar en ADMINISTRADOR DE TAREAS/PERFORMANCE aùn aparece como DESHABILITADO para VIRTUALIZACIÒN.

Cómo puedo superar este escollo? Alguna idea adicional?

1
17668Puntos
3 años

He logrado que las casillas mencionadas sean seleccionadas, dos veces se desempaquetaron archivos y ha pedido reinicio pero igual el equipo aparece como DESHABILITADO para VIRTUALIZACIÒN en ADMINISTRADOR DE TAREAS/PERFORMANCE. Sigo intentando…

1
17668Puntos
3 años

He avanzado mas en el proceso hasta llegar a la instruccion donde el resultado es

Una vez completado el proceso volvemos a correr wsl -l -v y deberá mostrar la lista así:

NAME STATE VERSION
Ubuntu Stopped 2

En cambio me sale esto:

PS C:\Users\Usuario> wsl -1 -v
Invalid command line option: -1
Copyright © Microsoft Corporation. All rights reserved.

Usage: wsl.exe [Argument] [Options…] [CommandLine]

Arguments for running Linux binaries:

If no command line is provided, wsl.exe launches the default shell.

--exec, -e <CommandLine>
    Execute the specified command without using the default Linux shell.

--
    Pass the remaining command line as is.

Options:
–cd <Directory>
Sets the specified directory as the current working directory.
If ~ is used the Linux user’s home path will be used. If the path begins
with a / character, it will be interpreted as an absolute Linux path.
Otherwise, the value must be an absolute Windows path.

--distribution, -d <Distro>
    Run the specified distribution.

--user, -u <UserName>
    Run as the specified user.

Arguments for managing Windows Subsystem for Linux:

--help
    Display usage information.

--install [Options]
    Install additional Windows Subsystem for Linux distributions.
    For a list of valid distributions, use 'wsl --list --online'.

    Options:
        --distribution, -d [Argument]
            Downloads and installs a distribution by name.

            Arguments:
                A valid distribution name (not case sensitive).

            Examples:
                wsl --install -d Ubuntu
                wsl --install --distribution Debian

--set-default-version <Version>
    Changes the default install version for new distributions.

--shutdown
    Immediately terminates all running distributions and the WSL 2
    lightweight utility virtual machine.

--status
    Show the status of Windows Subsystem for Linux.

--update [Options]
    If no options are specified, the WSL 2 kernel will be updated
    to the latest version.

    Options:
        --rollback
            Revert to the previous version of the WSL 2 kernel.

Arguments for managing distributions in Windows Subsystem for Linux:

--export <Distro> <FileName>
    Exports the distribution to a tar file.
    The filename can be - for standard output.

--import <Distro> <InstallLocation> <FileName> [Options]
    Imports the specified tar file as a new distribution.
    The filename can be - for standard input.

    Options:
        --version <Version>
            Specifies the version to use for the new distribution.

--list, -l [Options]
    Lists distributions.

    Options:
        --all
            List all distributions, including distributions that are
            currently being installed or uninstalled.

        --running
            List only distributions that are currently running.

        --quiet, -q
            Only show distribution names.

        --verbose, -v
            Show detailed information about all distributions.

        --online, -o
            Displays a list of available distributions for install with 'wsl --install'.

--set-default, -s <Distro>
    Sets the distribution as the default.

--set-version <Distro> <Version>
    Changes the version of the specified distribution.

--terminate, -t <Distro>
    Terminates the specified distribution.

--unregister <Distro>
    Unregisters the distribution and deletes the root filesystem.

PS C:\Users\Usuario>

Si me dicen qué fallò en mi proceso o cmo piedo superarlo.

1
17668Puntos
3 años

Bueno, el caso es que confundí 1 con l en ese comando y al hacerlo correctamente aparece algo que tampoco es el resultado esperado:

wsl -l -v
Ubuntu Stopped 2

En mi caso queda así:

wsl -l -v
Ubuntu Stopped 1

1
17668Puntos
3 años

Retomé el proceso. Ahora dice que WSL 2 requiere una actualización a su componente kernel:

PS C:\Users\Usuario> wsl --set-version Ubuntu 2
Conversion in progress, this may take a few minutes…
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel
PS C:\Users\Usuario>

1
17668Puntos
3 años

Esto sigue avanzando pero sigue sin cuadrar. Ya hice la actualización al componente de kernell y resulta otro paso que no recuerdo haberlo visto en el tutorial que es

PS C:\Users\Usuario> wsl --set-version Ubuntu 2
Conversion in progress, this may take a few minutes…
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/wsl2-install
PS C:\Users\Usuario>

1
17668Puntos
3 años

Logré instalar satisfactoriamente WSL 2 lo cual comprobé con comando wsl -l -v

PS C:\Users\Usuario> wsl -l -v
NAME STATE VERSION

  • Ubuntu Stopped 2
1
1008Puntos

Hola a todos ¿esto significa que no debe usar el explorador de windows? :
"Procura utilizar el sistema de archivos de tu distro porque si accedes a través del formato de archivos de Windows el rendimiento puede ser peor que el de WSL 1. "

1
22397Puntos

Muchas gracias, me ayudo mucho 😃

1
22397Puntos
4 años

Aunque, cuando intento ejecutar cualquier comando desde la consola de linux, el consumo de ram se dispara hasta 3gb ):

2
1055Puntos
4 años

esto mejoro con la actualización de wls2 y mucho, pero es recomendable tener al menos 8gb de ram para un optimo funcionamiento

1
22397Puntos
4 años

Aun me genera ese error de consumo excesivo de memoria. Tendré que formatear windows para checarlo.

1
29645Puntos
4 años

Algo que si está un poco mal es el consumo de RAM que maneja es alto, hay trucos como este que te ayuda a minimizar el consumo de la memoria

1
22397Puntos
4 años

Es el que debias usar la funcion malloc()? porque ya lo intente y se me ponia como loca la ram xdd

1
22397Puntos
4 años

Ya vi que no, lo voy a intentar hacer que me genera. Gracias 😃

0
19019Puntos
4 años

que es la distro?? estoy haciendo los pasos pero me quede en powershell