Windows 11 上的 WSL 中的 Systemd 不起作用

Windows 11 上的 WSL 中的 Systemd 不起作用

我正在运行完全升级的 Windows 11 企业版主机(版本 22H2,内部版本 22621.1702),并且已按正常方式安装启用的 WSL(https://www.windows11.dev/ce7in/how-to-install-wsl2-and-linux-distros-on-windows-11-6od

systemd 在 /etc/wsl.conf 文件中设置为在启动时启动,但它似乎不起作用:

sudo systemctl status
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

当我启动发行版时,它会在 shell 的第一行提示我以下内容:

Windows Subsystem for Linux is now available in the Microsoft Store!
You can upgrade by running 'wsl.exe --update' or by visiting https://aka.ms/wslstorepage

如果我尝试wsl.exe --update在 Windows Shell 中运行,我会得到以下信息:

wsl.exe --update
Installing: Windows Subsystem for Linux
A specified logon session does not exist. It may already have been terminated.

这里发生了什么?

注意:以上所有操作均以 Windows 管理员身份运行。

答案1

你的文章没有提到需要 开始 > 打开和关闭 Windows 功能对话框,启用“Windows Subsystem for Linux”。Windows 的“虚拟机平台”功能可能就足够了。如果还没完成,最好这样做。

您需要遵循 Microsoft 文章 Systemd 支持现已在 WSL 中提供!

以下是文章中的一些要点。

确保你使用的是正确的 WSL 版本

此更改仅适用于 Microsoft Store 版本的 WSL 0.67.6 及更高版本。您可以通过运行来检查版本号wsl --version。如果该命令失败,则表示您正在运行 Windows 版 WSL,需要升级至商店版本

在 WSL 发行版设置中设置 systemd 标志

您需要编辑该wsl.conf文件以确保 systemd 在启动时启动。

将这些行添加到/etc/wsl.conf(注意,您需要使用 sudo 权限运行编辑器,例如sudo nano /etc/wsl.conf:):

[boot]
systemd=true

相关内容