Cómo habilitar Systemd en el subsistema de Windows para Linux (WSL)

Cómo habilitar Systemd en el subsistema de Windows para Linux (WSL)

El subsistema de Windows para Linux (WSL) es una capa de compatibilidad para ejecutar ejecutables binarios de Linux de forma nativa en equipos cliente con Windows 11/10, así como en equipos con Windows Server 2019 y versiones posteriores. Con el lanzamiento de WSL 2, se realizaron cambios importantes, como el kernel de Linux real, a través de un subconjunto de características de Hyper-V. En esta publicación, lo guiaremos sobre cómo habilitar Systemd en WSL .

¿Qué es systemd?

Systemd es un conjunto de bloques de construcción básicos para un sistema Linux. Proporciona un sistema y administrador de servicios que se ejecuta como PID 1 e inicia el resto del sistema. Systemd está instalado de forma predeterminada en varias distribuciones conocidas, incluidas Ubuntu, Debian y otras. Con este cambio, WSL será aún más comparable a ejecutar sus distribuciones de Linux preferidas en máquinas sin sistema operativo y le permitirá usar aplicaciones que requieren soporte systemd. Algunos ejemplos de aplicaciones de Linux que dependen de systemd son snap, microk8s y systemctl.

Según Microsoft:

El soporte de Systemd requería cambios en la arquitectura de WSL. Debido a que systemd requiere PID 1, el proceso de inicio de WSL que se ejecuta en una distribución de Linux se convierte en un proceso secundario de systemd. Debido a que el proceso de aprovisionamiento de WSL es responsable de proporcionar la infraestructura para la comunicación entre los componentes de Linux y Windows, cambiar esta jerarquía requirió repensar algunas de las suposiciones realizadas durante el proceso de aprovisionamiento de WSL. Se requirieron cambios adicionales para garantizar un apagado limpio (ya que systemd ahora controla ese apagado) y para garantizar la compatibilidad con WSLg. También es importante tener en cuenta que con estos cambios, los servicios de systemd NO mantendrán su instancia de WSL en funcionamiento.

Dado que esto cambia el comportamiento de arranque de WSL, queríamos tener cuidado al aplicar esto a las distribuciones de WSL ya existentes de un usuario. Por lo tanto, actualmente debe registrarse para habilitar systemd para una distribución WSL específica y estaremos monitoreando los comentarios e investigando cómo hacer que este comportamiento sea el predeterminado en el futuro.

Cómo habilitar Systemd en el subsistema de Windows para Linux (WSL)

Hasta ahora, en el momento de escribir este artículo, la comunidad del Subsistema de Windows para Linux (WSL) ha estado buscando formas de implementar systemd. Pero luego de una asociación con Canonical, Microsoft implementó oficialmente systemd en WSL. Con el soporte de systemd disponible en WSL, ahora puede ejecutar systemd dentro de sus distribuciones de WSL, lo que le permite hacer más con sus procesos de trabajo de Linux en su máquina con Windows.

Para instalar systemd en su máquina, deberá hacer lo siguiente:

Asegúrese de estar utilizando la versión 0.67.6 o superior de WSL.

Si habilitó WSL a través de PowerShell y no lo descargó de Microsoft Store en su dispositivo, inicialmente no tendrá systemd. Solo estará disponible para los usuarios que ejecuten Windows 11 Insider Build o usen WSL descargado de Microsoft Store. Si está ejecutando Ubuntu Preview en WSL, systemd se agrega automáticamente. Entonces, para verificar si tiene una versión compatible de WSL, simplemente abra Windows Terminal y ejecute el siguiente comando en la consola de PowerShell:

wsl –version

Según el resultado, si WSL es 0.67.6 o anterior, puede ir a Microsoft Store y descargar WSL. Además, los usuarios de PC, especialmente si no son usuarios de Windows Insider, pueden descargar la última versión del repositorio WSL GitHub. El soporte de Systemd se agregará a todos los usuarios en el futuro. Para buscar actualizaciones para WSL, ejecute el siguiente comando en PowerShell:

wsl –update

Establezca el indicador systemd en la configuración de distribución de WSL.

Mostrar el estado de los servicios systemd

Una vez que se haya asegurado de que está ejecutando la versión compatible de WSL requerida por systemd, deberá editar el archivo wsl.conf (un archivo de configuración que se encuentra en cualquier distribución de WSL Linux que permite la personalización por distribución en lugar de cambiar el configuración general WSL) para garantizar que systemd se inicie en el arranque. Para completar esta tarea, siga estos pasos:

  • Ejecute el editor con derechos sudo y agregue las siguientes líneas:

[boot]systemd=true

  • Después de eso, guarde el archivo y salga.
  • Ahora puede cerrar su distribución WSL de Windows y ejecutar el siguiente comando en PowerShell para reiniciar sus instancias WSL.

wsl.exe --shutdown

  • Una vez iniciado, debería tener systemd ejecutándose. Para verificar y mostrar el estado de sus servicios, ejecute el siguiente comando:

systemctl list-unit-files --type=service

¡Así es como puede habilitar Systemd en el subsistema de Windows para Linux (WSL)!

¿Cómo arranco en systemd como init?

Para iniciar bajo systemd, seleccione el elemento del menú de inicio que creó para ese propósito. Si no ha creado una entrada en el menú de inicio, simplemente seleccione la entrada para su kernel parcheado, edite la línea de comando del kernel directamente en grub y agregue la siguiente línea: init=/lib/systemd/systemd.

Fuente: El club de las ventanas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *