我已经使用 Ubuntu 桌面一段时间了,但今天不知为何无法启动它。以下是我所看到的。
以下是我已经尝试过的方法:
- 尝试在恢复模式下启动
- 从可启动 USB 执行 fsck。
以下是我从 USB 启动后所做的事情:
- 创建可启动 USB
- 看到 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 启动,但问题依然存在
- 再次从 USB 启动并选择尝试 Ubuntu 而不安装。执行 -
sudo fsck -f /dev/sda1
输出结果如下 -https://pastebin.com/Yi4PqRU4
还尝试了选项 4。check disk defects
结果是No defects found
帮助?
答案1
可能是 initrd 已损坏或丢失。在这种情况下,它将无法找到 initrd 需要和使用的 init 进程。请按照以下步骤重建 initrd:
- 从媒体 (USB/DVD) 启动并以 root 身份启动终端会话。(“救援模式”)
- 将具有根文件系统的磁盘挂载到 /mnt
mount /path/to/disk /mnt
- 将虚拟文件系统挂载并绑定到磁盘上
mount --rbind /proc /mnt/proc mount --rbind /sys /mnt/sys mount --rbind /dev /mnt/dev
- chroot 到你的磁盘
chroot /mnt
- 装载其他所有东西(如果有)
mount -a
- 进入启动目录
cd /boot
- 重建 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 并再次尝试正常启动,看看问题是否已解决。