Ubuntu 无法启动:run-init:/sbin/init:权限被拒绝和 /bin/sh:0:无法打开启动画面

Ubuntu 无法启动:run-init:/sbin/init:权限被拒绝和 /bin/sh:0:无法打开启动画面

昨晚我的 Ubuntu 16.04 一切正常。今天我尝试打开它,但它根本无法启动,并出现以下错误:

run-init: /sbin/init: Permission denied
Target filesystem doesn't have requested /sbin/init.
run-init: /sbin/init: Permission denied
run-init: /etc/init: Permission denied
run-init: /bin/init: No such file or directory
/bin/sh: 0: Can't open splash
  • 它没有给我任何种类的 shell
  • 我尝试了 GRUB 菜单中的恢复项,但出现相同的错误
  • 我也尝试将其添加systemd.unit=rescue.target为内核参数;但它也不起作用。

我怎么解决这个问题?

答案1

从您收到的消息中我们可以看出,最可能的原因是权限问题。此外,似乎/sbin/init/etc/init存在但/bin/init实际上不存在。


删除 /bin/sh: 0: 无法打开启动画面

首先,我们应该获取一个 shell 来修复这个问题。要删除/bin/sh: 0: Can't open splash并获取一个 shell:如果您只安装了 Ubuntu(默认情况下不会显示 GRUB),则在系统启动时按住 键shift以使 GRUB 出现。然后在默认菜单上按E

您将看到一行以 开头的行Linux。在该行中删除splash参数,然后按Ctrl+ x,现在您将进入shshell。/bin/bash如果需要,请运行以获取 bash shell。我更喜欢 ,bash因为sh它具有自动完成功能。

或者,您也可以不删除splash参数,init=/bin/bash而是在该行末尾添加,然后按Ctrl+ x;这次我们将进入bash而不是sh


修复 run-init:/sbin/init:权限被拒绝

跑步:

ls -lH /sbin/init

它应该产生类似这样的结果:

-rw-r--r-- 1 root root 1577000 Feb 15 12:20 /sbin/init

我们可以看到权限混乱了。现在几乎所有的系统/sbin/init都有一个链接systemd,只是为了确保:

# ls -l /sbin/init
-rw-r--r-- 1 root root 1577000 Feb 15 12:20 /sbin/init -> /lib/systemd/systemd

当然,你的/(根)文件系统安装在ro(只读)状态,让我们将其更改为rw(读写):

# mount -o remount,rw /

然后修复权限:

# chmod u=rwx,g=rx,o=rx /lib/systemd/systemd

重新启动系统。

相关内容