Ubuntu系统错误_run-init:/sbin/init:No such file or directory

来源:互联网 发布:mac 播放蓝光 编辑:程序博客网 时间:2024/05/07 20:53

    使用Synaptic查找破损的包,结果libc6被命中,于是就将其标志为”标记以便彻底删除“,在删除的过程中,提示还有另外一个软件包也被删除,具体是什么名字就忘了。结果导致ls、mv,synaptic等命令都不能使用了,提示说找不到这些命令!连图形界面的文件夹都打不开了。我就纳闷了,我没有删除这些命令呀,怎么都不可用了呢?

   决定重启试一下,结果发现reboot、poweroff都用不上,直接图形界面中点击”关机“也无效!没办法,唯有硬件关机了。

   GRUB界面中,选择”Ubuntu,Linux 3.2.0-34-generic-pae“,如下图所示:

                                                                                                                    图1

    结果如下图所示:

                                                                                                                    图2

   根据第一行的提示”run-init:/sbin/init:No such file or directory“,可猜测应该是缺少了/sbin/init这个文件。那么,有什么解决办法呢?试一下重启,不过这次选择”Ubuntu,Linux 3.2.0-34-generic-pae(恢复模式)“,结果如下图:


    从上图的中部还是可以找到”run-init:/sbin/init:No such file or directory“这样的提示,这说明根本恢复不了!

    将ubuntu的安装光盘插入光驱,选择光驱启动。进入光盘的系统,选择“试用”模式,如下图所示:


                          图3

    即可进入到试用模式,如下图:


                                                                           图4

    为了挂载硬盘,淡季上图中的红色圈住的图标,可弹出下图:

   

                                                                  图5

    点击上图中红色圈住的各个图标,即可将他们挂载到系统/media中,如下图所示:

                                                          图6

    注意:这样挂载是没有写权限的,要写权限,参考《Ubuntu使用笔记_mount》。

    这时候,就可以进入的各个盘中去查看文件是否有缺失。然而,经过查找发现,/sbin/init文件是存在的!那么,在上面为什么会提示”run-init:/sbin/init:No such file or directory“呢?

    通过挂载硬盘,进去查看后发现boot目录是空的!而通过硬盘启动的系统的boot目录如下图所示:


                                                         图7

    备注:这是ubuntu 12.04.1 LTS的试用系统boot目录,英文版。

    这就难怪在2图的第3行会提示”Pid:1,comm:run-init Not tainted 3.2.0-34-generic-pae #53-Ubuntu“了。

    那么可否将试用系统boot中的文件复制到原来系统的boot中呢?经过测试发现,将上述文件复制到原来系统中的boot中,还是无济于事!那么,是不是硬盘的某个分区坏掉了呢?因为进入root目录的时候,进入不了!

    后来发现,要设置超级用户才可以进入root目录,最后发现其文件完好无损!这说明root所挂载的分区没有坏掉。

    那么,是不是试用系统boot目录中的文件不适用呢?因此,在虚拟机上装了一个同样版本的ubuntu系统,然后将其boot目录复制到我的电脑上的boot目录中,如下图。结果还是不行!

    

                                               图8

    备注:这是ubuntu 12.04.3的boot目录,而我的电脑系统是ubunutu 12.04.1。

    经仔细观察发现,无论是图7还是图8,里面都没有"3.2.0-34-generic-pae"!因此,失败也在所难免! 

    下图是ubuntu12.04.1在虚拟机上安装后boot目录的截图。


                                          图9

           备注:ubuntu12.04.1英文版boot目录截图。

    将图9和图7对比可知,图9多出了initrd.img-3.2.0-29-generic-pae和vmlinuz-3.2.0-29-generic-pae这两个文件。但还是没有“3.2.0-34-generic-pae ”。我的电脑的ubuntu是中文版的,难道中英版还不同?


                                      图10

        备注:ubuntu12.04.1中文版boot目录截图。

    经过对比图9和图10,发现不论中文版还是英文版,其boot目录都是一样的。

    将以上boot目录的文件复制到我的电脑的boot中,结果还是无济于事!

    那么,将boot中的文件改名为“3.2.0-34-generic-pae”可以不可呢?经过测试,还是无效!

    经过那么多测试,只能用终极办法了:重装系统!参考《Ubuntu使用笔记_装系统》。经过测试发现,原来的文件并没有丢失!


                             图11

    图11是重装系统后boot目录的截图。由图可以发现“abi-3.2.0-34-generic-pae”、“System.map-3.2.0-34-generic-pae”和“initrd.img-3.2.0-34-generic-pae”。这就解析了”Pid:1,comm:run-init Not tainted 3.2.0-34-generic-pae #53-Ubuntu“的错误提示了!