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

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

在此处输入图像描述

这是我已经尝试过的:

  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 

试过重启和从硬盘启动,但同样的问题

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

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

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

救命?

可能是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 

之后,您可以exit chroot并尝试再次正常启动以查看问题是否已解决。