在 Ubuntu 22.04 中按照此答案启用 Systemd 后,sudo systemctl status
显示State: degraded
.
此外:
$ sudo systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
● systemd-sysusers.service loaded failed failed Create System Users
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
1 loaded units listed.
我怎样才能从过渡degraded
到running
?
这是由于当前在 WSL 中使用了从
/dev/shm
到的符号链接。/run/shm
有几个相关的 Github 问题:除其他外,这将导致任何使用的 Systemd 服务
LoadCredentials=
失败。这会影响其他发行版上的其他几个服务,但至少是 Ubuntu 22.10 下systemd-sysusers
唯一使用它的默认服务。如#8996 中所述,解决方法是创建一个新的 Systemd 服务,在任何其他 Systemd 单元使用该共享内存设备之前纠正问题。
添加以下内容:
退出 Ubuntu,
wsl --terminate <distro_name>
(或wsl --shutdown
),然后重新启动。确认
sudo systemctl status
现在显示running
。如果不:sudo systemctl status fix_wsl2_shm.service
显示服务已加载。findmnt /dev/shm
显示它已安装,或者是否ls -ld /dev/shm
显示它是一个符号链接。