Oct 4, 2012

ubuntu/linux 无法启动问题


今天开机启动linux, 又一次遇到了无法启动进入busybox的问题. 上次是在中国, 搜寻多次未果, 最后用liveCD导出了数据重新安装的linux. 这次在Sasha的帮助下解决了问题.
问题如下: 开机启动, grub 选择系统(ubuntu 9.10+ vista)登录. 一切顺利. 然后ubuntu的logo还能闪亮. 到这里为止一切正常. 接下来就不能继续了. 大约过了20s, 进入了busybox 如下:
-------------------------------------
Gave up waiting for boot device. Common problems:
-Boot args (cat /proc/cmdline)
-check rootdelay
-check root
-Missing modules(cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/d286688a-8587-4977-99b9-1414cf09c374 does not exist. Dropping to a shell!

BusyBox v1.1.3 (Debian 1:1.1.3-5ubuntu12) Built-in shell (ash)
Enter 'help' for build in commands.

(initramfs)|
----------------------------------
这个界面里可以键入命令, 但是很有限. 不能成为管理员, 甚至无法重启(用ctrl+alt+delete)可以. 也无法访问自己的/home/

解决的办法: Sasha使用USB制作的liveCD (在BIOS里选择USB启动)进入系统, 挂载原磁盘, 然后找到grub.d/ 文件夹里的 grub.cfg 文件. 把
linux /boot/vmlinuz-2.6.31-17-generic root=UUID=a026ae5a-4c0b-42cd-8b46-b57bfb433ac7 ro quiet splash
替换成:
linux /boot/vmlinuz-2.6.31-17-generic root=/dev/sda1 ro quiet splash
注意是要把root=UUID=(UUID) 替换成 root=/dev/sda(x). 其中sda(x)是你的根目录所在的磁盘.

这个问题是, linux 内核似乎有时候无法按照 UUID 识别磁盘. 所以改成用绝对文件路径来查找.

参考: 1.https://bugs.launchpad.net/ubuntu/+source/linux/+bug/360378
2. http://ubuntuforums.org/showthread.php?t=891378&page=2
3. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/442679

No comments:

Post a Comment