Jak włączyć Systemd w podsystemie Windows dla systemu Linux (WSL)

Jak włączyć Systemd w podsystemie Windows dla systemu Linux (WSL)

Podsystem Windows dla systemu Linux (WSL) to warstwa kompatybilności do uruchamiania binarnych plików wykonywalnych systemu Linux natywnie na komputerach klienckich z systemem Windows 11/10, a także na komputerach z systemem Windows Server 2019 i nowszych. Wraz z wydaniem WSL 2 wprowadzono ważne zmiany, takie jak rzeczywiste jądro Linuksa, poprzez podzbiór funkcji Hyper-V. W tym poście poprowadzimy Cię, jak włączyć Systemd w WSL .

Co to jest system?

Systemd to zestaw podstawowych bloków konstrukcyjnych dla systemu Linux. Zapewnia menedżera systemu i usług, który działa jako PID 1 i uruchamia resztę systemu. Systemd jest domyślnie instalowany w kilku znanych dystrybucjach, w tym Ubuntu, Debian i innych. Dzięki tej zmianie WSL stanie się jeszcze bardziej porównywalne z uruchamianiem preferowanych dystrybucji Linuksa na komputerach typu „bare-metal” i umożliwi korzystanie z aplikacji wymagających obsługi systemu. Kilka przykładów aplikacji linuksowych zależnych od systemd to snap, microk8s i systemctl.

Według Microsoftu:

Obsługa Systemd wymagała zmian w architekturze WSL. Ponieważ systemd wymaga PID 1, proces inicjowania WSL działający w dystrybucji systemu Linux staje się procesem podrzędnym systemd. Ponieważ proces udostępniania WSL jest odpowiedzialny za zapewnienie infrastruktury do komunikacji między składnikami systemu Linux i Windows, zmiana tej hierarchii wymagała ponownego przemyślenia niektórych założeń przyjętych podczas procesu udostępniania WSL. Dodatkowe zmiany były wymagane, aby zapewnić czyste zamknięcie (ponieważ zamykanie jest teraz kontrolowane przez systemd) i zapewnić zgodność z WSLg. Należy również zauważyć, że po tych zmianach usługi systemd NIE zapewnią działania i działania instancji WSL.

Biorąc pod uwagę, że zmienia to zachowanie rozruchu WSL, chcieliśmy być ostrożni przy stosowaniu tego do już istniejących dystrybucji WSL użytkownika. Dlatego obecnie musisz się zarejestrować, aby włączyć systemd dla określonej dystrybucji WSL, a my będziemy monitorować opinie i badać, jak ustawić to zachowanie jako domyślne w przyszłości.

Jak włączyć Systemd w podsystemie Windows dla systemu Linux (WSL)

Jak dotąd, w momencie pisania tego tekstu, społeczność Windows Subsystem for Linux (WSL) szukała sposobów na implementację systemd. Ale po partnerstwie z Canonical, Microsoft oficjalnie wdrożył systemd w WSL. Dzięki obsłudze systemd dostępnej w WSL, możesz teraz uruchamiać systemd w swoich dystrybucjach WSL, co pozwala zrobić więcej z procesami roboczymi systemu Linux na komputerze z systemem Windows.

Aby zainstalować systemd na swoim komputerze, musisz wykonać następujące czynności:

Upewnij się, że używasz WSL w wersji 0.67.6 lub nowszej.

Jeśli włączyłeś WSL za pośrednictwem programu PowerShell i nie pobrałeś go ze sklepu Microsoft Store na swoim urządzeniu, początkowo nie będziesz mieć systemu. Będzie dostępny tylko dla użytkowników korzystających z Windows 11 Insider Build lub korzystających z WSL pobranego ze sklepu Microsoft Store. Jeśli używasz Ubuntu Preview na WSL, systemd jest dodawany automatycznie. Aby sprawdzić, czy masz obsługiwaną wersję WSL, po prostu otwórz Terminal Windows i uruchom następujące polecenie w konsoli PowerShell:

wsl –version

Na podstawie danych wyjściowych, jeśli WSL to 0.67.6 lub wcześniejsza, możesz przejść do Microsoft Store i pobrać WSL. Ponadto użytkownicy komputerów PC, zwłaszcza jeśli nie jesteś niejawnym testerem systemu Windows, mogą pobrać najnowszą wersję z repozytorium WSL GitHub. Wsparcie Systemd zostanie dodane do wszystkich użytkowników w przyszłości. Aby sprawdzić dostępność aktualizacji dla WSL, uruchom następujące polecenie w PowerShell:

wsl –update

Ustaw flagę systemd w ustawieniach dystrybucji WSL.

Pokaż stan usług systemowych

Po upewnieniu się, że używasz obsługiwanej wersji WSL wymaganej przez systemd, musisz edytować plik wsl.conf (plik konfiguracyjny znajdujący się w dowolnej dystrybucji WSL Linux, który umożliwia dostosowywanie poszczególnych dystrybucji zamiast zmieniać ogólne ustawienia WSL), aby upewnić się, że systemd jest uruchamiany podczas rozruchu. Aby wykonać to zadanie, wykonaj następujące kroki:

  • Uruchom edytor z prawami sudo i dodaj następujące wiersze:

[boot]systemd=true

  • Następnie zapisz plik i wyjdź.
  • Możesz teraz zamknąć dystrybucję systemu Windows WSL i uruchomić następujące polecenie w programie PowerShell, aby ponownie uruchomić wystąpienia WSL.

wsl.exe --shutdown

  • Po uruchomieniu powinieneś mieć uruchomiony systemd. Aby sprawdzić i pokazać stan swoich usług, uruchom poniższe polecenie:

systemctl list-unit-files --type=service

Oto, jak włączyć Systemd w podsystemie Windows dla systemu Linux (WSL)!

Jak uruchomić systemd jako init?

Aby uruchomić system pod systememd, wybierz pozycję menu startowego, którą utworzyłeś w tym celu. Jeśli nie utworzyłeś wpisu menu startowego, po prostu wybierz wpis dla załatanego jądra, edytuj wiersz poleceń jądra bezpośrednio w grub i dodaj następujący wiersz: init=/lib/systemd/systemd.

Źródło: Klub Windows

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *