Come abilitare Systemd sul sottosistema Windows per Linux (WSL)

Come abilitare Systemd sul sottosistema Windows per Linux (WSL)

Il sottosistema Windows per Linux (WSL) è un livello di compatibilità per l’esecuzione nativa di eseguibili binari Linux su computer client Windows 11/10 e computer Windows Server 2019 e versioni successive. Con il rilascio di WSL 2 sono state apportate importanti modifiche, come l’attuale kernel Linux, attraverso un sottoinsieme di funzionalità Hyper-V. In questo post, ti guideremo su come abilitare Systemd in WSL .

Cos’è systemd?

Systemd è un insieme di elementi costitutivi di base per un sistema Linux. Fornisce un gestore di sistema e servizio che viene eseguito come PID 1 e avvia il resto del sistema. Systemd è installato per impostazione predefinita su diverse distribuzioni note, tra cui Ubuntu, Debian e altre. Con questa modifica, WSL diventerà ancora più paragonabile all’esecuzione delle tue distribuzioni Linux preferite su macchine bare-metal e ti consentirà di utilizzare applicazioni che richiedono il supporto systemd. Alcuni esempi di applicazioni Linux che dipendono da systemd sono snap, microk8s e systemctl.

Secondo Microsoft:

Il supporto Systemd richiedeva modifiche all’architettura WSL. Poiché systemd richiede PID 1, il processo di inizializzazione WSL in esecuzione su una distribuzione Linux diventa un processo figlio di systemd. Poiché il processo di provisioning WSL è responsabile della fornitura dell’infrastruttura per la comunicazione tra i componenti Linux e Windows, la modifica di questa gerarchia ha richiesto il ripensamento di alcuni dei presupposti fatti durante il processo di provisioning WSL. Sono state necessarie ulteriori modifiche per garantire uno spegnimento pulito (poiché lo spegnimento è ora controllato da systemd) e per garantire la compatibilità con WSLg. È anche importante notare che con queste modifiche, i servizi systemd NON manterranno attiva e funzionante l’istanza WSL.

Dato che questo cambia il comportamento di avvio di WSL, volevamo fare attenzione quando lo si applica alle distribuzioni WSL già esistenti di un utente. Quindi attualmente è necessario registrarsi per abilitare systemd per una specifica distribuzione WSL e monitoreremo il feedback e indagheremo su come rendere questo comportamento predefinito in futuro.

Come abilitare Systemd sul sottosistema Windows per Linux (WSL)

Finora, al momento della stesura di questo articolo, la comunità del sottosistema Windows per Linux (WSL) ha cercato modi per implementare systemd. Ma a seguito di una partnership con Canonical, Microsoft ha ufficialmente implementato systemd in WSL. Con il supporto systemd disponibile in WSL, ora puoi eseguire systemd all’interno delle tue distribuzioni WSL, permettendoti di fare di più con i tuoi processi di lavoro Linux sul tuo computer Windows.

Per installare systemd sulla tua macchina, dovrai fare quanto segue:

Assicurati di utilizzare la versione WSL 0.67.6 o successiva.

Se hai abilitato WSL tramite PowerShell e non l’hai scaricato da Microsoft Store sul tuo dispositivo, inizialmente non avrai systemd. Sarà disponibile solo per gli utenti che eseguono Windows 11 Insider Build o che utilizzano WSL scaricato da Microsoft Store. Se stai eseguendo Ubuntu Preview su WSL, systemd viene aggiunto automaticamente. Quindi, per verificare se disponi di una versione supportata di WSL, apri Terminale di Windows ed esegui il seguente comando nella console di PowerShell:

wsl –version

In base all’output, se WSL è 0.67.6 o precedente, puoi accedere a Microsoft Store e scaricare WSL. Inoltre, gli utenti di PC, soprattutto se non sei un Windows Insider, possono scaricare l’ultima versione dal repository GitHub di WSL. Il supporto Systemd verrà aggiunto a tutti gli utenti in futuro. Per verificare la disponibilità di aggiornamenti per WSL, eseguire il comando seguente in PowerShell:

wsl –update

Imposta il flag systemd nelle impostazioni di distribuzione WSL.

Mostra lo stato dei servizi systemd

Dopo esserti assicurato di eseguire la versione supportata di WSL richiesta da systemd, dovrai modificare il file wsl.conf (un file di configurazione che si trova su qualsiasi distribuzione WSL Linux che consente la personalizzazione per distribuzione anziché impostazioni generali WSL) per garantire che systemd sia avviato all’avvio. Per completare questa attività, attenersi alla seguente procedura:

  • Esegui l’editor con i diritti sudo e aggiungi le seguenti righe:

[boot]systemd=true

  • Successivamente, salva il file ed esci.
  • È ora possibile chiudere la distribuzione Windows WSL ed eseguire il comando seguente in PowerShell per riavviare le istanze WSL.

wsl.exe --shutdown

  • Una volta avviato, dovresti avere systemd in esecuzione. Per controllare e mostrare lo stato dei tuoi servizi, esegui il comando seguente:

systemctl list-unit-files --type=service

Ecco come abilitare Systemd nel sottosistema Windows per Linux (WSL)!

Come faccio ad avviare systemd come init?

Per eseguire l’avvio da systemd, seleziona la voce del menu di avvio che hai creato a tale scopo. Se non hai creato una voce del menu di avvio, seleziona semplicemente la voce per il tuo kernel patchato, modifica la riga di comando del kernel direttamente in grub e aggiungi la seguente riga: init=/lib/systemd/systemd.

Fonte: The Windows Club

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *