首页 > 代码库 > ubuntu启动失败,出现missing modules

ubuntu启动失败,出现missing modules

参考这两篇文章解决了问题:

Ubuntu启动时停止的问题(http://www.linuxidc.com/Linux/2011-06/37950.htm)

PowerEdge T410安装ubuntu14.04/14.10错误一则(http://blog.cnrainbird.com/index.php/2015/01/08/poweredge_t410_an_zhuang_ubuntu14_04_14_10_cuo_wu_yi_ze/)

现象

当时用的操作系统是ubuntu14, 在一台dell服务器上出现了问题。

在启动系统启动界面,出现如下信息,并停止启动。(注意,这是在安装好系统后,系统的启动过程出现的问题,而非安装过程。)

Gave up waiting for root device. Common problems:
– Boot args (cat /proc/cdmline)
– Check rootdelay= (did the system wait long enough?)
– Check root= (did the system wait for the right device?)
– Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk.by-uuid/9d77fcd2-5fc1-419d-939c-af16be94fd34  does not exist. Dropping to a shell!

BusyBox v1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) built-in (ash)
Enter ‘help’ for a list of builtin commands.

(initramfs)
 

原因

 按参考的文章:grub引导参数中rootdelay设置的时间太短,导致系统还没有正常加载完设备驱动就已经开始寻找root分区,而导致找不到/root分区。

解决

当系统启动停止在这个界面时,输入“exit”并回车,系统将继续引导,能够成功进入系统。对于ubuntu系统,可以按如下方法修复。

1. 编辑/etc/default/grub文件
在GRUB_CMDLINE_LINUX这个配置项中加上rootdelay=90
例:GRUB_CMDLINE_LINUX=”rootdelay=90″
说明:90表示延时的时间,可根据自己的实际情况改,比如我自己的服务器我将90改成60也可以,说不定再改短一点也行,只是没去尝试。

2.执行命令:update-grub
用来更新引导菜单

到此已完全解决,下次启动就不会出现这个问题了。

上面的修复方法实质上就是修改grub的引导参数,对于其他linux发行版本,想办法修改grub对应的引导参数就可以了。

举个例子:grub引导菜单某一菜单项有一条如下命令

linux   /boot/vmlinuz-4.4.0-31-generic root=UUID=8cfd2963-4616-4c18-bb1f-c6f6e8eaa9ed ro hugepagesz=2M hugepages=1024 net.ifnames=0 biosdevname=0

只需要在此项后面加上rootdelay=xx就可以了,xx是自己设定的延迟时间。(注意rootdelay参数与前面的参数间有空格)

linux   /boot/vmlinuz-4.4.0-31-generic root=UUID=8cfd2963-4616-4c18-bb1f-c6f6e8eaa9ed ro hugepagesz=2M hugepages=1024 net.ifnames=0 biosdevname=0 rootdelay=90

 

ubuntu启动失败,出现missing modules