2012年7月11日星期三

Ubuntu /boot 挂载在SSD 上Grub不能正常启动的解决方法

今晚刚重装了Ubuntu,随之而来另外一个问题就是,要是把/boot挂载在SSD上,则会导致Grub启动时找不到相应Device的问题,然后就进入Grub rescue了。

其实在这种情况下还是可以手动设置启动设备,进入Ubuntu的

首先你需要输入”ls“命令查看当前系统分区,这时候会出现你电脑硬盘的分区信息,形式如下

(hd0) (hd0,msdos5) (hd0,msdos1) (hd1) (hd1,msdo1)

以上就是分区信息,有上面的msdos5有可能是单独的数字"0,1,2,5,6...."等,具体为什么暂未明白

必须要从以上的分区信息找到你挂载/boot的地方,例如我的电脑/boot就是挂载在(hd1,msdo1)上的

这时候输入"set"命令,会出现你的一些设置信息,形如下:

prefix=(hd0,1)/boot/grub
root=hd0, 1

很明显,之所以找不到设备是由于我的/boot是在(hd1,msdo1)上的,而它却尝试从(hd0,1)启动我的系统,当然不行啊!因此我分别输入以下两个命令


prefix=(hd1,msdo1)/boot/grub
root=hd1,msdo1

这时候再次输入set命令可以看到信息已经更改过来了

再调用如下命令:

grub rescue>insmod /boot/grub/normal.mod

看到"grub rescus>" 由灰色变成白色了,这表示normal.mod文件已经被正确加载了

然后再次输入"normal"命令可以看到系统已经正确启动了。

这时候进入系统,但grub依然未修复好,因为下次启动系统,又会提示找不到设备了,虽然网上说可以通过一系列指令修复grub,详细参考一下网页:

但是对我无效,于是我只能尝试马上更新我的Ubuntu,更新过程中更新了内核,于是顺带地,它自然地帮我重装Grub并修复了问题了。

其实我发现,如果安装系统的时候选择安装过程中立即下载更新包并更新系统,则可避免这个问题,看来Ubuntu对于各类硬件的支持一直是在不断强化中的

没有评论:

发表评论