我正在运行完全升级的 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