如何解决“系统尚未使用 systemd 作为初始化系统 (PID 1) 启动。”?我无法重启 Ubuntu

如何解决“系统尚未使用 systemd 作为初始化系统 (PID 1) 启动。”?我无法重启 Ubuntu

我在设置 Apache 时遇到了问题。我使用的是 Ubuntu 版本 18.04。我不知道是什么导致了这个问题的出现...

我将仅列出我的所有命令。

apt-get update
apt-get upgrade

我尝试升级后看到一个错误:

E: Sub-process /usr/bin/dpkg returned an error code (1) 

为了解决该问题或解决方案,我使用了以下一些命令:

vi usr/sbin/policy-rc.d

内容:

#!bin/sh
exit 101

chmod +x /usr/sbin/policy-rc.d
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

这些来自本文档

apt-get install apache2
apt-get install php
apt-get install libapache2-mod-php
apt-get install php-mbstring
apt-get install php-gd
apt-get install php-curl php-xml
apt-get install mariadb-server
/usr/bin/mysql_secure_installation

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
apt-get install php-mysql

adduser

a2ensite

我下载了 phpmyadmin。

执行完这些命令后,我想重新启动 Ubuntu,但没有成功。执行完命令后,reboot我看到了如下消息:

System has not been booted with systemd as init system (PID 1). Can't 
operate. Failed to talk to init daemon.

并且对于reboot -f

Rebooting.
Failed to reboot: Invalid argument

我完全是新手...我不知道我应该做什么

我刚刚重新安装了 Ubuntu,并且收到了上面提到的相同消息,尽管我什么也没做,只是reboot在重新安装后尝试了一下。

答案1

我在尝试使用 Docker 的说明在 Linux 上安装 Docker 时遇到过类似的问题(https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04) 或者 (https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1)。

解决方案是使用 Windows 安装过程安装 Docker,然后将 Windows Subsystem for Linux 链接到 Windows Docker。据我了解,失败的原因是 Windows 子系统无法访问 Docker 所需的文件,而这些文件最终位于 Windows 上。该解决方案可以解决这个问题。希望对您有所帮助!

https://blog.jayway.com/2017/04/19/running-docker-on-bash-on-windows/

答案2

如果您正在使用 Docker,您可以尝试使用以下命令使用已激活 System D 的 Ubuntu 映像:

docker run -d --name systemd-ubuntu --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu

然后你只需要运行:

docker exec -it systemd-ubuntu /bin/bash

您可以在那里安装、启动和重新启动您需要的任何服务。

答案3

我遇到了同样的问题,不小心删除了 /bin/bash 文件。之后我的服务器无法启动。

我挂载了一个旧备份,并从挂载的驱动器复制了 bash 文件。卸载后,一切都正常,只是运行时仍显示挂载的驱动器df

我强制卸载了之前安装的备份,但仍然遇到同样的问题。

尝试执行以下操作:

bash --login
exec bash 
bash --login; exit

这是我的消息来源:

https://superuser.com/questions/353723/how-do-i-reload-the-terminal-in-ubuntu

此外,我还安装aptitude 并运行了aptitude reinstall bash

我无法确切地说出是什么解决了它,但问题已解决,我可以像往常一样 ssh。

相关内容