/sbin/init:没有此文件或目录|无法启动 ubuntu 桌面

/sbin/init:没有此文件或目录|无法启动 ubuntu 桌面

我已经使用 Ubuntu 桌面一段时间了,但今天不知为何无法启动它。以下是我所看到的。

在此处输入图片描述

以下是我已经尝试过的方法:

  1. 尝试在恢复模式下启动
  2. 从可启动 USB 执行 fsck。

以下是我从 USB 启动后所做的事情:

  1. 创建可启动 USB
  2. 看到 4 个选项:
    • 无需安装即可试用 Ubuntu
    • 安装 Ubuntu
    • OEM 安装
    • 检查光盘是否有缺陷

我选择了第一个选项。打开终端 -->sudo fdisk -l

这给了我我的实际设备名称 -->/dev/sda1

然后我执行了-->sudo fsck /dev/sda1正如这里提到的-目标文件系统没有请求的 /sbin/init

输出如下:

$ sudo fsck /dev/sda1
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
/dev/sda1: clean, 682451/29483008 files, 26039796/117925888 blocks

尝试重新启动并从 HDD 启动,但问题依然存在

  1. 再次从 USB 启动并选择尝试 Ubuntu 而不安装。执行 -sudo fsck -f /dev/sda1

输出结果如下 -https://pastebin.com/Yi4PqRU4

还尝试了选项 4。check disk defects结果是No defects found

帮助?

答案1

可能是 initrd 已损坏或丢失。在这种情况下,它将无法找到 initrd 需要和使用的 init 进程。请按照以下步骤重建 initrd:

  1. 从媒体 (USB/DVD) 启动并以 root 身份启动终端会话。(“救援模式”)
  2. 将具有根文件系统的磁盘挂载到 /mnt

mount /path/to/disk /mnt

  1. 将虚拟文件系统挂载并绑定到磁盘上

mount --rbind /proc /mnt/proc mount --rbind /sys /mnt/sys mount --rbind /dev /mnt/dev

  1. chroot 到你的磁盘

chroot /mnt

  1. 装载其他所有东西(如果有)

mount -a

  1. 进入启动目录

cd /boot

  1. 重建 initrd

在 RedHat 中,只需运行此命令即可:

mkinitrd

在 Ubuntu 中,他们似乎使用了不同的工具。首先,您需要查看您正在使用的内核版本:

# ls /lib/modules/
3.11.0-12-generic

然后使用它提供的版本运行必要的命令:

# update-initramfs -c -k 3.11.0-12-generic
update-initramfs: Generating /boot/initrd.img-3.11.0-12-generic


此后,您可以exitchroot 并再次尝试正常启动,看看问题是否已解决。

相关内容