¿Es la combinación de Windows y Linux una panacea o se trata de otro dolor de cabeza?
Índice
- Introducción
- WSL 1
- WSL 2
- Uso
- Troubleshooting
- 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 y activación
Previo a ser activado el Windows Subsystem for Linux, el comando wsl.exe
puede ser encontrado y responder, aunque no necesariamente entregar algo. Por ejemplo
Microsoft Windows [Versión 10.0.19045.2965] (c) Microsoft Corporation. Todos los derechos reservados. C:\Users\admin>wsl --status C:\Users\admin>
es hasta que su instalación (o quizás activación sea un mejor término) se lleva a cabo que realmente es funcional. Para su activación, desde los Settings o Control Panel de Windows, se hace 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.
Una vez que el equipo se ha reinicializado, la respuesta de wsl.exe
debe cambiar, mostrando algo que indique el sub sistema para Linux está activo o si hay algún problema más. Abajo se ilustra una posible respuesta indicando la versión de éste (aunque ello no garantiza su activación o funcionamiento).
Microsoft Windows [Versión 10.0.19045.2965] (c) Microsoft Corporation. Todos los derechos reservados. C:\Users\admini>wsl --status Versión predeterminada: 2 Habilita la característica Plataforma de máquina virtual de Windows y asegúrate de que la virtualización esté habilitada en el BIOS. Para obtener más información, consulta https://aka.ms/wsl2-install C:\Users\admin>
Los resultados mostrados aquí pueden ser distintos a los que otras personas obtengan debido a las características de su equipo y configuraciones. Como se muestra arriba, diferentes enlaces serán sugeridos de acuerdo a lo que wsl.exe
detecte. La recomendación es seguir los enlaces y leer cabalmente la documentación o instrucciones que se presenten. Dependerá de cada caso aplicar o no lo indicado y cada uno es responsable de las decisiones tomadas.
Para el caso del ejemplo dado, en lo que respecta al propósito de esta sección6, la versión uno se activa con:
wsl --set-default-version 1
Desinstalación
Para seguir un orden inverso a lo que fue la habilitación de esta funcionalidad, que se asume debe ser lo más apropiado hablando de una desinstalación, lo primero debe ser desinstalar las distribuciones de linux descargadas.
Para ello se puede proceder de varias formas. Una de ellas es activar Settings y buscar Apps. Buscar la distribución escribiendo parcial o totalmente el nombre, por ejemplo «ubu» para Ubuntu.
Otra forma es mediante las opciones contextuales:
En lo que se refiere al WSL, para desinstalar, basta desactivar la característica de Windows (como se muestra en la activación pero a la inversa).
WSL 2
Dependiendo de la versión de Windows y características del equipo, 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:
- Se abre una sesión Open PowerShell as Administrator y se ejecuta:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- Se revisa que se cumpla con el criterio para hacer el update2.
- Se habilita el componente «Virtual Machine Platform«.
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- Y se procede a colocar el WSL 2 como versión por defecto.
wsl --set-default-version 2
Adicionalmente es muy posible que se requiera activar la tecnología de virtualización por hardware. Lo que requiere interactuar con el BIOS, que varia de equipo a equipo y fabricante, y puede ser tecnología no soportada o implementada en el equipo y por tanto ser un equipo no apto para WSL 2. Para el caso de una Lenovo IdeaPad S340 además de resultar algo problemático y diferente llegar al BIOS, resultó ser un equipo no apto para WSL 2.
Parallels
Parallels requiere una mención especial, dado que es un «virtualizador» y en éste señala que WSL 2 es soportado sólo en Macs con Intel7. Activarlo no generará error alguno, pero al intentar instalar alguna distribución marcará problemas.
C:\Users\lalo>wsl --status
Versión predeterminada: 2
C:\Users\lalo>wsl --install
Ubuntu ya está instalado.
Iniciando Ubuntu...
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/enablevirtualization
Press any key to continue...
C:\Users\lalo>wsl --set-default-version 1
The operation completed successfully.
Uso
Por el momento, esto es un compendio de diversas experiencias en el uso de este subsistema y las diferentes distribuciones de Linux soportadas.
Comando
Estas son las distintas opciones y argumentos que el comando wsl.exe
soporta:
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.
--system
Launches a shell for the system distribution.
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
--no-launch, -n
Do not launch the distribution after install.
--mount <Disk>
Attaches and mounts a physical disk in all WSL2 distributions.
Options:
--bare
Attach the disk to WSL2, but don't mount it.
--type <Type>
Filesystem to use when mounting a disk, if not specified defaults to ext4.
--options <Options>
Additional mount options.
--partition <Index>
Index of the partition to mount, if not specified defaults to the whole disk.
--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.
--unmount [Disk]
Unmounts and detaches a disk from all WSL2 distributions.
Unmounts and detaches all disks if called without argument.
--update [Options]
If no options are specified, download and install WSL from the Microsoft Store.
Options:
--rollback
Revert to the previous version of the WSL 2 kernel.
--inbox
Only update the inbox WSL 2 kernel. Do not install WSL from the Microsoft Store.
--web-download
Download the most recent version of WSL from the internet instead of the Microsoft Store.
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.
Estado
Para conocer el estado del entorno de WSL y la versión activa:
C:\Users\lalo>wsl --status
Default Version: 1
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/enablevirtualization
Para conocer las distribuciones instaladas:
C:\Users\lalo>wsl --list
Windows Subsystem for Linux has no installed distributions.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore
Distribuciones linux soportadas
La instalación de una distribución linux se hace con el comando wsl --install -d <distro>
, donde <distro> es el nombre de la distribución que se busca instalar. Abajo se muestra la ayuda que wsl.exe
proporciona a este respecto.
C:\Users\lalo>wsl --install
Windows Subsystem for Linux is already installed.
The following is a list of valid distributions that can be installed.
Install using 'wsl --install -d <Distro>'.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
openSUSE-Tumbleweed openSUSE Tumbleweed
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.
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
- 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.
- Microsoft, Inc., «Windows Subsystem for Linux Installation Guide for Windows 10,» Microsoft, web. Published: 2020.05.12; visited: 2020.08.13. URL: https://docs.microsoft.com/en-us/windows/wsl/install-win10.
- Microsoft, Inc., «‘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.
- Microsoft, Inc., «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.
- Microsoft, Inc., «Updating the WSL 2 Linux kernel», Microsoft, web. Published: , visited: 2020.08.13. URL: https://docs.microsoft.com/nl-nl/windows/wsl/wsl2-kernel.
- Microsoft, Inc., «Comparing WSL Versions«, Microsoft Ignite, web. Published: 2023.03.19; visited: 2023.10.27. URL: https://learn.microsoft.com/en-us/windows/wsl/compare-versions.
- Parallels International GmbH, «WSL Support in Parallels Desktop«, Parallels Knowledge Base, web. Published: 2023.05.12; visited: 2023.10.27. URL: https://kb.parallels.com/129234.
- Microsoft, Inc., «Troubleshooting Windows Subsystem for Linux«, Microsoft Ignite, web. Published: 2023.05.10; visited: 2023.10.27. URL: https://learn.microsoft.com/en-us/windows/wsl/troubleshooting.
|
© Todos los derechos reservados. Dr. Eduardo René Rodríguez Ávila |
Creación: 2019.05.16 Última actualización: 2023.10.27 |
|||
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. |