WSL2 es “evolución” de WSL que nos permitía emular comandos bash desde nuestro terminal, e incluso trabajar con muchas de las aplicaciones disponibles para Linux dentro de nuestro Windows, sin necesidad de instalar ningun software de terceros.

En esta nueva versión, veremos una mejora de rendimiento de la aplicación, en esta nueva versión el Kernel ha sido preparado específicamente para este uso, WSL utilizaba una traducción de las llamadas,  pero WSL2 incluye su propio Kernel para evitar realizar la tarea de traducción, con lo que ganamos en rendimiento hata 20 veces mayor al rendimiento realizado con WSL (tareas NPM, Git, etc)

Si quieres habilitar Windows Subsystem for Linux en su versión 2, que sepas que debes contar, al menos con la versión Windows 10 Build 18917.Lo que quiere decir que ahora mismo tanto para Windows Server 2019 como en Windows 10 debes de contar con la version Insider.

Nosotros lo vamos a ejecutar directamente en Windows Server 2019,version Core. Si quieres saber que versión tienes, puedes ejecutar:

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

¿Cumples los requisitos?

Lo primero que debemos hacer es comprobar si tenemos alguna versión de WSL instalada (puede ser que ya hubieras probado con la primera)

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

Nosotros no tenemos ninguna versión instalada.

Ejecutamos desde PowerShell:

Start-Process powershell -Verb runAs #Elevamos privilegios
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 

Reiniciamos después de instalar.

Ahora vamos a habilitar el componente opcional “Plataforma de máquina virtual”.

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Volvemos a reiniciar.

Necesitamos instalar una Distro para poder usar WSL, si estamos en Windows 10, podemos buscarlo desde la propia tienda, por ejemplo, Debian:

Podemos ver las distros disponibles desde:

https://docs.microsoft.com/es-es/windows/wsl/install-manual#downloading-distros

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.zip -UseBasicParsing

Se puede descargar el fichero en appx, pero nos ahorramos un paso si directamente configuramos la salida como .zip. Si aún así lo descargamos en *.appx podemos renombrarlo fácilmente con:  {Rename-Item ubuntu-1804.appx Ubuntu-1804.zip}

Creamos la carpeta donde queremos alojar el dichero de la distro.

mkdir -p c:\WSL\Distro 

Descomprimimos el fichero:

Expand-Archive .\Ubuntu.zip c:\WSL\Distro\Ubuntu1804

Una vez termina el proceso de descompresión, podemos borrar el fichero .zip que para que no se nos olvide.

Remove-Item .\Ubuntu.zip

Ejecutamos el instalable.

C:\WSL\Distro\Ubuntu1804\ubuntu1804.exe

Nos pedirá usuario y contraseña para el usuario dentro de la Distribución y ya tenemos nuestro WSL configurado.

Ahora queremos ejecutar WSL2. Por lo que salimos del bash con “exit”

Si queremos ver las Distribuciones que tenemos podemos realizar:

wsl -l 

Si no tienes la version adecuada no te permite ejecutar este comando, puedes ver la distribución tambien dentro del registro “regedit”  {Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{claveúnica}DistributionName}

wsl --set-version Ubuntu-18.04 2

Podemos decirle que la arquitectura por defecto sea WSL2 con:

wsl --set-default-version 2

Resumen de comandos utilizados:

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

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

Start-Process powershell -Verb runAs

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

//En el caso de que no le hayamos confirmado reiniciar: Restart-Computer

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

 //En el caso de que no le hayamos confirmado reiniciar: Restart-Computer 

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.zip -UseBasicParsing

mkdir -p c:\WSL\Distro 

Expand-Archive .\Ubuntu.zip c:\WSL\Distro\Ubuntu1804

Remove-Item .\Ubuntu.zip

C:\WSL\Distro\Ubuntu1804\ubuntu1804.exe

wsl --set-version Ubuntu-18.04 2

wsl --set-default-version 2

Enlaces de referencia:

https://docs.microsoft.com/es-es/windows/wsl/wsl2-install

https://www.thomasmaurer.ch/2019/08/how-to-install-wsl-2-on-windows-server/