Windows11 WSL中Llinux报错:System has not been booted with systemd as init system (PID 1). Can't operate
Windows11 WSL中Llinux报错:System has not been booted with systemd as init system (PID 1). Can’t operate
1.序
在Windows11中安装Ubuntu,运行docker报错,安装步骤如下
Windows11 微软商店安装ubuntu子系统
Linux Ubuntu安装Docker
在Windows中使用WSL的Ubuntu时,使用systemctl命令报错:
1 |
|
2.问题分析
可能是因为这个Ubuntu系统并没有使用systemd,可能使用的是SysV init(sysvinit)初始化系统。
可以通过如下命令查看:
1 |
|
果真如此,CMD 列,显示 init,可以确定使用的是SysV init初始化系统。
SysV init:如果您的系统使用 SysVinit 作为 init 系统,您可以使用 service 命令来管理和检查服务状态。例如,要检查 Docker 服务状态,可以运行:
1 |
|
3.问题解决
还是想要使用systemd,在WSL中启用systemd
先决条件:确保运行的是来自 Microsoft Store 且版本号为0.67.6及以上版本的WSL
更新WSL到最新版
1 |
|
查看版本
1 |
|
将 WSL 2 设置为默认版本 如果是WSL1,也是默认有wls.conf文件,但是就是不支持systemtcl命令,必须设置成WLS
1 |
|
运行命令查看版本
1 |
|
在Ubuntu实例中,打开或者添加/etc/wsl.conf文件(我这里已经安装这个了,没有的话手动添加),并编辑内容如下:
1 |
|
然后使用wsl --shutdown
命令,将运行中的Linux发行版关闭。
重新运行Ubuntu。
再次查看初始化信息,可以看出已经使用了systemd,
运行查询systemctl版本,非常完美,已经可以用了
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!