WSL

¿Es la combinación de Windows y Linux una panacea o se trata de otro dolor de cabeza?


Índice

  1. Introducción
  2. WSL 1
  3. WSL 2
  4. Uso
  5. Troubleshooting
  6. Referencias

Introducción

Pese a lo que diga o haya dicho Microsoft, hablar de un sistema operativo robusto no es hablar de Windows. Sí, como producto comercial puede ser empleado y basar en éste la operación de todo un negocio pero de ahí a que se pueda considerar «robusto», es otra cosa. La experiencia señala que si tienes algo que requiere tener a un equipo de soporte técnico atendiendo los problemas que se generan día tras día, no es algo *robusto*. Para mí, robusto es algo que te permite olvidarte de ello un tiempo.

Bueno, como sea, yo sí considero que un unix es un sistema operativo robusto y por lo mismo, dada la popularidad de los linux, Microsoft ha «dado su brazo a torcer» y, tratando de recuperar parte del terreno perdido, ha incorporado desde Windows 10 lo que ha denominado «Windows Subsystem for Linux» (WSL). Una especie de virtualización que permite tener un entorno unix interactuando con Windows.

Éstas son algunas notas en el uso de esta extraña combinación que busca hacerse de lo mejor de dos mundos (si es que hay algo bueno en Windows).


WSL 1

Estas notas iniciaron con la habilitación con lo que hoy se conoce como WSL 1. Son notas sin mucho orden, pues sólo se buscaba registrar algunas cosas que seguramente necesitaría después.

Instalación

La instalación (o quizás activación sea un mejor término) de WSL 1 se lleva a cabo desde los Settings o Control Panel de Windows, haciendo uso de la opción de «Programas y Características de Windows«. El procedimiento en Windows versiones 10 y 11 (incluso Windows 11 version ARM dentro de Parallels es el mismo).

y posteriormente buscando el Windows Subsystem for Linux.

Aunque la activación del WSL no solicite el reinicio del equipo, es recomendable hacerlo.

Pantalla

Elementos de configuración de pantalla o características de la terminal o consola.

Scroll

Para poder conservar y posteriormente consultar lo que se muestra en pantalla es necesario  ajustar el scroll. Mediante  Properties → Layout → Screen Buffer Size → Height se permite a la emulación el asignar recursos de memoria para conservar la salida a stout y stderr.

Sin embargo, lo anterior no es suficiente, ya que como se mencionó, eso es para el subsistema linux. La aplicación de Windows debe también estar configurada para que haga uso de los recursos asignados para el subsistema linux. En este caso  activando la opción QuickEditMode.

En lo que se refiere al tamaño del cursor, este se controla desde las opciones de la aplicación en Windows.

Desinstalación

Para desinstalar, desactivar (como se muestra en la activación pero a la inversa) la característica de Windows.

Para desinstalar las distribuciones de linux descargadas, activar Settings y buscar Apps. Buscar la distribución escribiendo parcial o totalmente el nombre, por ejemplo «ubu» para Ubuntu.


WSL 2

Dependiendo de la versión de Windows, WSL 2 puede venir ya activado o al menos instalado. Si ya está instalado, la activación de realiza de la misma forma que WSL 1.

Actualización por instalador

De requerir instalarlo, se puede proceder de varias formas. Una de ellas es por sugerencia del mismo Windows que debe dar el enlace, o desde alguna página de soporte de Microsoft, buscar la actualización a WSL 2.

Descargado el MSI se procede con su apertura y se deja que el asistente se encargue del resto, reiniciando al equipo al final.

Actualización desde la línea de comando

Otra opción es desde la línea de comando, para lo que se siguen los siguientes pasos2:

  1. Se abre una sesión Open PowerShell as Administrator y se ejecuta:
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  2. Se revisa que se cumpla con el criterio para hacer el update2.
  3. Se habilita el componente «Virtual Machine Platform«.
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 
  4. Y se procede a colocar el WSL 2 como versión por defecto.
    wsl --set-default-version 2

Uso

Por el momento, esto es un compendio de diversas experiencias.

Algunas particularidades y consideraciones

La interacción con Windows puede traer algunas complicaciones. Manejar archivos del subsistema linux usando el explorador de Windows es posible pero los archivos pueden no mostrarse inmediatamente en el File Explorer (por ejemplo, al copiar o mover un archivo del entorno Windows al de linux). Hasta donde se ha visto, para el caso del WSL 1 lo mejor es cerrar la sesión de Ubuntu y volver a abrirla. En ocasiones los archivos en el entorno de Ubuntu quedarán en modo 000 y deberán ajustarse los permisos para poder hacer uso de ellos. Borrar archivos desde el File Explorer hará que el explorador no actualice el contenido del file system.

Similarmente, en el entorno Ubuntu podrán manipularse archivos pero no se verán estas acciones en el File Explorer. Debe cerrarse la sesión en Ubuntu y volver a abrirla para que se actualice el contenido.

Borrar directorios con contenido hará que el File Explorer indique que se requiere de permisos de administración aunque esto sea infructuoso. Recordemos que en unix un directorio no puede borrarse mientras tenga archivos en éste (a menos que se force la acción rm -rf o rm -f). Eliminando el contenido del directorio hará que éste pueda ser borrado sin problemas con el File Explorer de Windows.

Desempeño

Para monitoreo del desempeño, la utilería sar puede ser instalada con

$ sudo apt install sysstat

y requiere que la recolección de estadísticas del sistema estén habilitadas (ver sección Troubleshooting).


Troubleshooting

Las anotaciones de esta sección notas parten de un mensaje de error o problema experimentado. En general, si el texto está en inglés se trata de un mensaje de error.

«Please check if data collecting is enabled»

Al tratar de usar la utilería sar, el mensaje de error «Please check if data collecting is enabled» aparece.

$ sar
Cannot open /var/log/sysstat/sa09: No such file or directory
Please check if data collecting is enabled
...
The sysstat service and associated timers need to be started. Check [1].

«System has not been booted with systemd as init system (PID 1). Can’t operate»

Este es un mensaje propio del subsistema linux (unix). Su resolución depende de la distribución o de algún otro factor. Dada la amplitud de las respuestas es mejor copiar el mensaje y hacer una búsqueda en la Internet (sorry).

«Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS«

El mensaje de error aparece al tratar de activar WSL 2 y completo se lee:

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
Press any key to continue…

Si aparece en una ventana que se abrió al tratar de hacer uso de WSL o alguna de las distribuciones de linux instaladas, al presionar una tecla, la ventana se cierra. WSL 2 requiere soporte de hardware que puede no estar presente en todos los equipos o puede no estar activado por defecto. La activación puede hacerse de muchas formas, desde el BIOS, desde la configuración del mismo Windows o desde la línea de comando (¿de qué depende? No está muy claro, puede ser por el hardware o por el tipo de licencia de Windows).

Una forma de activarlo desde la línea de comando es:

PS C:\Windows\system32> DISM /Online /Enable-Fe ature /All /FeatureName:Microsoft-Hyper-V

Deployment Image Servicing and Management tool
Version: 10.0.19041.572

Image Version: 10.0.19041.685

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.
Restart Windows to complete this operation.
Do you want to restart the computer now? (Y/N) Y

«Error: 0x1bc For information on key differences with WSL 2

please visit https://aka.ms/wsl2″

Si al tratar de hacer uso de WSL 2:

PS C:\Windows\system32>wsl --set-default-version 2

se muestra el mensaje de error:

Error: 0x1bc For information on key differences with WSL 2 
please visit https://aka.ms/wsl2

se debe a que ya que WSL no está habilitado, debe hacerse manualmente3. Además de lo ya indicado al inicio de esta página, esto puede hacerse:

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

Adicionalmente, esto que puede requerir actualizar el kernel4,5.


Referencias

  1. Tom Halle, «sar: enable data collecting«, StackExchange, ServerFault forum, web. Asked 2018.05.18; answered 2018.05.18; consulted: 2019.07.10. URL: https://serverfault.com/questions/913087/sar-enable-data-collecting.
  2. «Windows Subsystem for Linux Installation Guide for Windows 10Microsoft, web. Published: 2020.05.12; visited: 2020.08.13. URL: https://docs.microsoft.com/en-us/windows/wsl/install-win10.
  3. «‘wsl’ command not recognized after enabling WSL2«, GitHub, web. Opened: 2019.06.13; consulted: 2020.08.13. URL: https://github.com/MicrosoftDocs/WSL/issues/405.
  4. «Error 0x1bc when setting wsl default version», GitHub, web. Opened: 2020.07.25; visited: 2020.08.13. URL: https://github.com/microsoft/WSL/issues/5651.
  5. «Updating the WSL 2 Linux kernel», Microsoft, web. Published: , visited: 2020.08.13. URL: https://docs.microsoft.com/nl-nl/windows/wsl/wsl2-kernel.

Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Ávila
Creación: 2019.05.16
Última actualización: 2023.05.13
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.