Comment activer Systemd sur le sous-système Windows pour Linux (WSL)

Comment activer Systemd sur le sous-système Windows pour Linux (WSL)

Le sous-système Windows pour Linux (WSL) est une couche de compatibilité pour l’exécution native des exécutables binaires Linux sur les ordinateurs clients Windows 11/10 ainsi que sur les ordinateurs Windows Server 2019 et versions ultérieures. Avec la sortie de WSL 2, des modifications importantes ont été apportées, telles que le noyau Linux lui-même, via un sous-ensemble de fonctionnalités Hyper-V. Dans cet article, nous vous expliquerons comment activer Systemd dans WSL .

Qu’est-ce que systemd ?

Systemd est un ensemble de blocs de construction de base pour un système Linux. Il fournit un gestionnaire de système et de service qui s’exécute en tant que PID 1 et démarre le reste du système. Systemd est installé par défaut sur plusieurs distributions bien connues, notamment Ubuntu, Debian et autres. Avec ce changement, WSL deviendra encore plus comparable à l’exécution de vos distributions Linux préférées sur des machines sans système d’exploitation et vous permettra d’utiliser des applications nécessitant la prise en charge de systemd. Snap, microk8s et systemctl sont quelques exemples d’applications Linux qui dépendent de systemd.

Selon Microsoft :

La prise en charge de Systemd a nécessité des modifications de l’architecture WSL. Étant donné que systemd nécessite le PID 1, le processus d’initialisation WSL exécuté sur une distribution Linux devient un processus enfant systemd. Étant donné que le processus de provisionnement WSL est chargé de fournir l’infrastructure de communication entre les composants Linux et Windows, la modification de cette hiérarchie a nécessité de repenser certaines des hypothèses formulées au cours du processus de provisionnement WSL. Des modifications supplémentaires ont été nécessaires pour garantir un arrêt propre (puisque cet arrêt est désormais contrôlé par systemd) et pour assurer la compatibilité avec WSLg. Il est également important de noter qu’avec ces modifications, les services systemd ne maintiendront PAS votre instance WSL opérationnelle.

Étant donné que cela modifie le comportement de démarrage de WSL, nous voulions être prudents lors de l’application de cela aux distributions WSL déjà existantes d’un utilisateur. Donc, actuellement, vous devez vous inscrire pour activer systemd pour une distribution WSL spécifique et nous surveillerons les commentaires et étudierons comment faire de ce comportement la valeur par défaut à l’avenir.

Comment activer Systemd sur le sous-système Windows pour Linux (WSL)

Jusqu’à présent, au moment d’écrire ces lignes, la communauté Windows Subsystem for Linux (WSL) cherchait des moyens d’implémenter systemd. Mais suite à un partenariat avec Canonical, Microsoft a officiellement implémenté systemd dans WSL. Avec la prise en charge de systemd disponible dans WSL, vous pouvez désormais exécuter systemd dans vos distributions WSL, ce qui vous permet d’en faire plus avec vos processus de travail Linux sur votre machine Windows.

Pour installer systemd sur votre machine, vous devrez procéder comme suit :

Assurez-vous d’utiliser WSL version 0.67.6 ou supérieure.

Si vous avez activé WSL via PowerShell et que vous ne l’avez pas téléchargé depuis le Microsoft Store sur votre appareil, vous n’aurez pas systemd initialement. Il ne sera disponible que pour les utilisateurs exécutant Windows 11 Insider Build ou utilisant WSL téléchargé depuis le Microsoft Store. Si vous exécutez Ubuntu Preview sur WSL, systemd est ajouté automatiquement. Ainsi, pour vérifier si vous disposez d’une version prise en charge de WSL, ouvrez simplement Windows Terminal et exécutez la commande suivante dans la console PowerShell :

wsl –version

En fonction de la sortie, si WSL est 0.67.6 ou une version antérieure, vous pouvez accéder au Microsoft Store et télécharger WSL. De plus, les utilisateurs de PC, en particulier si vous n’êtes pas un initié de Windows, peuvent télécharger la dernière version à partir du référentiel WSL GitHub. La prise en charge de Systemd sera ajoutée à tous les utilisateurs à l’avenir. Pour rechercher des mises à jour pour WSL, exécutez la commande suivante dans PowerShell :

wsl –update

Définissez l’indicateur systemd dans les paramètres de distribution WSL.

Afficher l'état des services systemd

Une fois que vous vous êtes assuré que vous exécutez la version prise en charge de WSL requise par systemd, vous devrez modifier le fichier wsl.conf (un fichier de configuration trouvé sur n’importe quelle distribution WSL Linux qui permet la personnalisation par distribution plutôt que de changer le paramètres généraux WSL) pour s’assurer que systemd est démarré au démarrage. Pour terminer cette tâche, procédez comme suit :

  • Exécutez l’éditeur avec les droits sudo et ajoutez les lignes suivantes :

[boot]systemd=true

  • Après cela, enregistrez le fichier et quittez.
  • Vous pouvez maintenant fermer votre distribution Windows WSL et exécuter la commande suivante dans PowerShell pour redémarrer vos instances WSL.

wsl.exe --shutdown

  • Une fois démarré, vous devriez avoir systemd en cours d’exécution. Pour vérifier et afficher l’état de vos services, exécutez la commande ci-dessous :

systemctl list-unit-files --type=service

Voici comment vous pouvez activer Systemd sur le sous-système Windows pour Linux (WSL) !

Comment démarrer dans systemd en tant qu’init ?

Pour démarrer sous systemd, sélectionnez l’élément de menu de démarrage que vous avez créé à cet effet. Si vous n’avez pas créé d’entrée de menu de démarrage, sélectionnez simplement l’entrée correspondant à votre noyau corrigé, modifiez la ligne de commande du noyau directement dans grub et ajoutez la ligne suivante : init=/lib/systemd/systemd.

Source : Le Club Windows

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *