转帖:http://www.inanu.net/post/524.html



前阵子准备部署私有云平台,打算把 10 几台服务器的 OS 从 CentOS 6 换成 Ubuntu 11.10,安装 Ubuntu 的过程一路顺风,安装完毕重启,在 GRUB 菜单选择启动内核后就黑屏了,彻底黑了…… 郁闷呐!

经过查看 dmesg 信息,发现系统引导时,initrd 等待加载 SAS/SATA 控制器驱动的时间太短(这也是为啥 Ubuntu 启动速度飞快的原因之一),导致 SAS/SATA 控制器还没有成功驱动之前,系统就开始进行下一步引导,而此时,系统中连磁盘都没有加载,当然什么都找不到 – -” 真不知道作为服务器 OS,这个重要的步骤 Ubuntu 这么火急火燎的干什么呢…… 相比之下,CentOS 启动虽然慢那么一点点,但由于 initrd 有足够的时间等候加载 SAS/SATA 控制器驱动,所以从不会发生这样的窘境。

找到问题后,只需要延长 initrd 等候加载 SAS/SATA 控制器驱动程序的时间就可以了:

1. 系统启动到 GRUB 界面时,按 “ESC” -> “e” 进入 GRUB 菜单编辑,在 kernel 一行的后面添加 rootdelay=60

linux /vmlinuz* rootdelay=60

2. “CTRL + X” 启动进入系统;

3. 启动进入系统后修改 /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="rootdelay=60"

4. 执行 Shell 更新 GRUB 菜单内容:update-grub

5. 重启系统进行测试。注意,GRUB 菜单选择内核启动后仍然会有一段时间的黑屏,等待一段时间应该能过去,如仍不正常可尝试继续增大 rootdelay 的时间。

11-24 19:11