WSL中Linux报错:System has not been booted with systemd as init system

一、问题现象

图片[1] - WSL中Linux报错:System has not been booted with systemd as init system - 正则时光

报错:System has not been booted with systemd as init system

原因:系统启动服务程序不同,命令也不同;不同的启动程序使用对应的不同命令。

二、确认“启动管理程序”类型的方法 

使用以下命令可以查询到系统当前使用的启动管理程序是什么。如下使用的是init。

pstree     # 命令1
ps -p 1 -o comm=   # 命令2
图片[2] - WSL中Linux报错:System has not been booted with systemd as init system - 正则时光
图片[3] - WSL中Linux报错:System has not been booted with systemd as init system - 正则时光

三、原因分析

  • 确保你的系统内核和引导加载程序配置正确,以便使用 systemd 作为初始化系统。
  • 检查 /sbin/init 或 /usr/sbin/init 是否指向 systemd。你可以使用 ls -l /sbin/init 来查看。
  • 如果你的系统是使用 grub 作为引导加载程序,检查 grub 配置文件(通常是 /etc/default/grub 或 /boot/grub/grub.cfg),确保它指向正确的内核和 initrd 映像。
  • 如果可能,尝试重启系统。有时候,系统更新或配置更改可能需要重启才能生效。

四、解决办法

1.安装systemd服务

# 安装服务
sudo apt-get install systemd  # 基于Debian系统
sudo yum install systemd      #  基于RPM的系统
# 设置启动目标为systemd
sudo systemctl set-default multi-user.target    # 普通终端模式
sudo systemctl set-default graphical.target    # 对于带有图形界面的系统
sudo reboot

2.检查 /sbin/init 或 /usr/sbin/init 的指向: 打开终端,使用以下命令来检查 /sbin/init 的链接:

ls -l /sbin/init
或
ls -l /usr/sbin/init
图片[4] - WSL中Linux报错:System has not been booted with systemd as init system - 正则时光
图片[5] - WSL中Linux报错:System has not been booted with systemd as init system - 正则时光

3.检查grub配置

# 查看是否安装有grub
grub-install --version    
# 未安装时使用以下命令安装 
sudo apt-get update
sudo apt-get install grub2
# 打开 /etc/default/grub 文件
sudo nano /etc/default/grub

检查 GRUB_CMDLINE_LINUX_DEFAULT 和 GRUB_CMDLINE_LINUX 变量,确保没有禁用 systemd 的选项,例如 init=/bin/bash 或 init=/sbin/init

图片[6] - WSL中Linux报错:System has not been booted with systemd as init system - 正则时光

五、放弃了~~不折腾了~~

折腾了好久,太麻烦了不搞了。。 不要用systemctl命令就好了。。

图片[7] - WSL中Linux报错:System has not been booted with systemd as init system - 正则时光
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享