目标文件系统没有请求的 /sbin/init。/bin/sh: 0:无法打开启动画面 - Ubuntu 15.04

目标文件系统没有请求的 /sbin/init。/bin/sh: 0:无法打开启动画面 - Ubuntu 15.04

我有一台 Ubuntu 15.04 机器。我在这台机器上安装了 docker。安装后,我试图运行默认的 docker 测试映像。但它没有运行。然后我试图关闭机器。

但机器并没有关机。它只是挂在中间,消耗着所有的 CPU 资源。我等了 10-15 分钟,但状态没有改变,什么也没发生。所以我继续按笔记本电脑上的开机按钮关机。这样机器就关机了。

此次事件发生后,现在当我尝试启动机器时,它会在启动时抛出以下错误。

目标文件系统没有请求的 /sbin/init。

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

[4.458446] 内核崩溃 - 未同步:尝试终止 init!exitcode=0x00007f00

[4.458479] CPU:1 PID:1 通信:sh 未受污染 3.13.0-46-通用#79-Ubuntu

机器有三个操作系统:Windows,Centos,Ubuntu-15.04。

我尝试过fsck在启动设备上使用网络启动的解决方案。但是它并没有解决这个问题。

这里我不知道 docker 包是否是问题的一部分。事实上,它可能是任何包安装造成的。

fsck的输出如下:

$ fsck /dev/sda5
来自 util-linux 2.25.2 的 fsck
e2fsck 1.42.12(2014 年 8 月 29 日)
/dev/sda5:干净,885843/1313280 个文件,3569836/5242880 个块。

我也尝试过-f选项fsck,其输出为:

 
$ fsck /dev/sda5 -f
fsck /dev/sda5 -f
来自 util-linux 2.25.2 的 fsck
e2fsck 1.42.12(2014 年 8 月 29 日)
第 1 阶段:检查 inode、块和大小
第二步:检查目录结构
第三步:检查目录连通性
第四步:检查引用计数
第五步:检查组摘要信息
/dev/sda5:885843/1313280 个文件(0.1%不连续),3569836/5242880 个块

运行fdisk -l命令将打印以下消息,以及打印设备详细信息。

分区 5 未从物理扇区边界开始。

我使用mount -o ro /dev/sda5 /media/boot命令挂载了该设备。输出ls -l /media/boot如下:

共 116
drwxr-xr-x 2 root root 4096 1月26日 07:01 bin
drwxr-xr-x 3 root root 4096 十二月 26 07:10 启动
drwxr-xr-x 2 root root 4096 2015 年 1 月 4 日 cdrom
drwxr-xr-x 4 root root 4096 2014 年 4 月 17 日 dev
drwxr-xr-x 164 root root 12288 1 月 26 日 07:04 等
drwxr-xr-x 2 root root 4096 2015 年 1 月 4 日 主页
lrwxrwxrwx 1 root root 33 2015年2月27日 initrd.img -> boot/initrd.img-3.13.0-46-generic
lrwxrwxrwx 1 root root 33 2015 年 2 月 4 日 initrd.img.old -> boot/initrd.img-3.13.0-45-generic
drwxr-xr-x 25 root root 4096 1月26日 07:01 lib
drwxr-xr-x 2 root root 4096 十二月 26 06:49 lib32
drwxr-xr-x 2 root root 4096 十二月 26 06:28 lib64
drwx------ 2 root root 16384 2015 年 1 月 4 日 丢失+找到
drwxr-xr-x 3 root root 4096 2015 年 1 月 4 日 媒体
drwxr-xr-x 2 root root 4096 2014 年 4 月 10 日 mnt
drwxr-xr-x 6 root root 4096 10月2日 14:15 opt
drwxr-xr-x 2 root root 4096 2014 年 4 月 10 日 proc
drwx------ 11 root root 4096 1月26日 10:30 root
drwxr-xr-x 12 root root 4096 2014 年 4 月 17 日 运行
drwxr-xr-x 2 root root 12288 1月26日 07:03 sbin
drwxr-xr-x 2 root root 4096 2014 年 4 月 17 日 srv
drwxr-xr-x 2 root root 4096 2014 年 3 月 13 日 系统
drwxrwxrwt 6 root root 4096 1月26日 22:01 tmp
drwxr-xr-x 11 root root 4096 十月 2 14:14 usr
drwxr-xr-x 15 root root 4096 1月9日 02:05 var
lrwxrwxrwx 1 root root 30 2015年2月27日 vmlinuz -> boot/vmlinuz-3.13.0-46-generic
lrwxrwxrwx 1 root root 30 2月 4 2015 vmlinuz.old -> boot/vmlinuz-3.13.0-45-generic

用于测试 apt-get install --reinstall

为了测试apt-get install --reinstall upstart命令,我在 OpenVz 机器中创建了一个 Ubuntu 15.04 容器。在这台 Ubuntu 机器上,我执行了apt-get install --reinstall upstart命令,它打印了以下消息:

$ apt-get install --reinstall upstart
正在读取软件包列表...完成
构建依赖关系树...完成
软件包 upstart 不可用,但被另一个软件包引用。
这可能意味着包丢失、已被淘汰,或者
只能从其他来源获得
但是以下软件包可以替代它:
  systemd-sysv mountall init-system-helpers lsb-base

E:软件包‘upstart’没有安装候选项

在 Ubuntu-14.04 机器内运行相同的命令会打印以下消息:

$ apt-get install --reinstall upstart
正在读取软件包列表...完成
构建依赖关系树...完成
无法重新安装 upstart,无法下载。
升级了 0 个,新安装了 0 个,要删除 0 个,并且未升级 0 个。

笔记:问题不在于 openvz 容器,而在于前面描述的机器。

相关内容