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

Fai*_*mon 5 boot init boot-repair initrd

我已经使用 Ubuntu Desktop 一段时间了,但是今天由于某种原因我无法启动它。这是我所看到的。

在此输入图像描述

这是我已经尝试过的:

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

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

  1. 创建了可启动 USB
  2. 看到4个选项:
    • 无需安装即可尝试 Ubuntu
    • 安装Ubuntu
    • 原始设备制造商安装
    • 检查光盘是否有缺陷

我选择了第一个选项。打开终端-->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
Run Code Online (Sandbox Code Playgroud)

尝试重新启动并从 HDD 启动,但同样的问题

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

这就是输出的样子 - https://pastebin.com/Yi4PqRU4

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

帮助?

Top*_*Hat 2

可能是 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
Run Code Online (Sandbox Code Playgroud)

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

# update-initramfs -c -k 3.11.0-12-generic
update-initramfs: Generating /boot/initrd.img-3.11.0-12-generic
Run Code Online (Sandbox Code Playgroud)


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