Как включить Systemd в подсистеме Windows для Linux (WSL)
Подсистема Windows для Linux (WSL) — это уровень совместимости для запуска двоичных исполняемых файлов Linux изначально на клиентских компьютерах с Windows 11/10, а также на компьютерах с Windows Server 2019 и более поздних версий. С выпуском WSL 2 были внесены важные изменения, такие как реальное ядро Linux, с помощью подмножества функций Hyper-V. В этом посте мы расскажем вам, как включить Systemd в WSL.
Что такое системд?
Systemd — это набор основных строительных блоков для системы Linux. Он предоставляет диспетчер системы и служб, который работает как PID 1 и запускает остальную часть системы. Systemd установлен по умолчанию в нескольких известных дистрибутивах, включая Ubuntu, Debian и другие. С этим изменением WSL станет еще более сравнимым с запуском предпочитаемых вами дистрибутивов Linux на компьютерах с «голым железом» и позволит использовать приложения, требующие поддержки systemd. Вот несколько примеров приложений Linux, зависящих от systemd: щелчок, микрок8са также systemctl.
Согласно Майкрософт:
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Поддержка systemd потребовала изменений в архитектуре WSL. Поскольку для systemd требуется PID 1, процесс инициализации WSL, запущенный в дистрибутиве Linux, становится дочерним процессом systemd. Поскольку процесс инициализации WSL отвечает за обеспечение инфраструктуры для связи между компонентами Linux и Windows, изменение этой иерархии потребовало переосмысления некоторых предположений, сделанных в процессе инициализации WSL. Потребовалось внести дополнительные изменения, чтобы обеспечить чистое завершение работы (поскольку это завершение теперь контролируется systemd) и обеспечить совместимость с WSLg. Также важно отметить, что с этими изменениями службы systemd НЕ будут поддерживать ваш экземпляр WSL в рабочем состоянии.
Учитывая, что это изменяет поведение WSL при загрузке, мы хотели быть осторожными, применяя это к уже существующим дистрибутивам WSL пользователя. Так что в настоящее время вам нужно зарегистрироваться, чтобы включить systemd для определенного дистрибутива WSL, и мы будем следить за отзывами и исследовать, как сделать это поведение по умолчанию в будущем.
Читайте: как получить доступ к файлам подсистемы Windows для Linux в Windows
Как включить Systemd в подсистеме Windows для Linux (WSL)
До сих пор, на момент написания этой статьи, сообщество Windows Subsystem for Linux (WSL) искало способы реализации systemd. Но, следуя партнерству с Canonical, Microsoft официально внедрила systemd в WSL. Благодаря поддержке systemd, доступной в WSL, теперь вы можете запускать systemd внутри своих дистрибутивов WSL, что позволяет вам делать больше с вашими рабочими процессами Linux на вашем компьютере с Windows.
Чтобы установить systemd на свой компьютер, вам нужно будет сделать следующее:
Убедитесь, что вы используете WSL версии 0.67.6 и выше.
Если вы включили WSL через PowerShell и не загрузили его из Microsoft Store на свое устройство, изначально у вас не будет systemd. Он будет доступен только пользователям, использующим инсайдерскую сборку Windows 11 или использующим WSL, загруженный из Microsoft Store. Если вы используете Ubuntu Preview на WSL, systemd добавляется автоматически. Итак, чтобы проверить, есть ли у вас поддерживаемая версия WSL, просто откройте Windows Terminal и в консоли PowerShell выполните следующую команду:
wsl-версия
Из вывода, если версия WSL 0.67.6 или более ранняя, вы можете перейти в Microsoft Store и скачать WSL. Кроме того, пользователи ПК, особенно если вы не являетесь участником программы предварительной оценки Windows, могут скачать последний выпуск из репозитория WSL GitHub. В будущем всем пользователям будет добавлена поддержка systemd. Чтобы проверить наличие обновлений для WSL, выполните приведенную ниже команду в PowerShell:
wsl-обновление
Читать: исправить подсистему Windows для ошибок, проблем и проблем Linux
Установите флаг systemd в настройках дистрибутива WSL.
После того, как вы убедились, что используете поддерживаемую версию WSL, необходимую для systemd, вам нужно будет отредактировать wsl.conf файл (файл конфигурации, который можно найти в любом дистрибутиве WSL Linux и позволяет настраивать для каждого дистрибутива, а не изменять общие параметры WSL), чтобы обеспечить запуск systemd при загрузке. Для выполнения этой задачи выполните следующие действия:
- Запустите редактор с правами sudo и добавьте следующие строки:
[boot]
системад = истина
- После этого сохраните файл и выйдите.
- Теперь вы можете закрыть свой дистрибутив WSL Windows и выполнить следующую команду в PowerShell, чтобы перезапустить экземпляры WSL.
wsl.exe —shutdown
- После запуска у вас должен быть запущен systemd. Чтобы проверить и показать статус ваших служб, выполните команду ниже:
systemctl list-unit-files —type=service
Читайте: Как установить версию дистрибутива Linux на WSL1 или WSL2 в Windows
Вот как вы можете включить Systemd в подсистеме Windows для Linux (WSL)!
Как мне загрузиться в systemd как init?
Чтобы загрузиться под systemd, выберите пункт меню загрузки, который вы создали для этой цели. Если вы не создали запись в меню загрузки, просто выберите запись для вашего исправленного ядра, отредактируйте командную строку ядра непосредственно в grub и добавьте следующую строку: init=/lib/системд/системд.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)