“一不小心”,重启机子时出现了这样的错误——“Error:file not found”,接着“Grub rescue”这个郁闷的界面出现了!
界面上一直这样显示着:
grub>
我意识到,系统引导出问题了!
当然,造成此等状况的原因只有一个——都是我自己造成的。
其实这个“杯具”的发生,主要是如下原因。
我做下了一个长远打算——从今以后,我将要主要使用Ubuntu了。
所以,我需要给Ubuntu增加一点空间,我需要重新分区!
说干就干,马上操家伙。
当然Linux自己的Gparted还很Bug,无法在OS运行下调整,然后无法进行“分区合并”等等。
不过没关系,对于分区我喜欢WINPE+PM,于是,马上从移动硬盘启动我滴小y。
然后一系列的移动,合并,调整等等。
当然PM是无法撼动EXT4文件系统的,只能先对NTFS分区进行调整。
说真的,想在Windows的NTFS+Linux的EXT4混合环境下进行分区调整,还真的有点难度。。
所以,我是WINPE的PM+Uubuntu LiveUSB的Gparted双重工具下完成的。
区是被我调整好了,问题是,磁盘的逻辑顺序,或者MBR出了问题。
所以才出现了文章开始的那一幕!
但是,莫慌,莫慌。
马上请教Google大爷!
于是我找到了两种解决方法。
方案A——直接Grub救援:
好不容易找到了关于Grub2的资料,所以马上开干,不过你要是遇到了这样的问题,我建议,马上把俺写的命令先抄到一张纸上。
黑黑的屏幕上只显示着这些东东:
error file not found
grub rescue
grub>
首先,我打下ls命令。
当然返回了如下
(hd0,msdos10) , (hd0,msdos9) , (hd0,msdos8)……………………
(hd0,msdos1)
其中“ hd0 ”代表的是第一硬盘的意思。
至于“ msdos3 ”呢,那可就不是“ dos ”的意思啦,他的意思代表这个分区是用的mbr,所以后面的3就是分区号啦。
小知识:对于mbr,由于一块磁盘上最多只能有4个主分区,并且从msdos1到msdos4的编号都被占用了。
所以,站在Windows的角度分析,其实你的 “ D盘 ” 是“ msdos5 ”,而站在Linux的角度分析,你的 “ D盘 ” 其实就是 “ /dev/sda5 ” 。
而我的C盘是Windows7,D盘是Software,E盘专门玩游戏,
E盘后面是Swap(交换空间)。
所以我的Linux的根分区(即,这个“ / ”),是msdos8,第八分区,或者表示为 “ /dev/sda8”
下面就要献上grub2的修复指令了。
root =hd0,msdos8 //“根”为第八分区
prefix=(hd0,msdos8)/boot/grub //boot的grub引导在此
当然由于我的ubunut只分了三区,所以就是以上情形啦。
好了设置好boot所在的位置后接着来一句:
insmod normal
如果有错误报出,那么就是你的linux根分区没找对,比如以我为例,可能我分析错了了,“ /boot/grub ” 在 “ msdos7 ” 也不一定呢!
好了如果没有任何信息显示,也就是直接跳到 “ grub > ”的话,此时只要来一句:
normal
久违的grub os菜单选择界面便出现了!
当然,方案A经过本人测试,完全可行。
但是呢,由于本人后面又觉得,分区调整方案还是不够合理,于是又手痒痒,再次调整磁盘分区数量和大小,结果杯具再次发生了……
这次死的更惨,方案A已经无法挽救我了,但是,莫慌,莫慌。
方案B马上驾到:
还好,我的 Ubunut LiveUSB 还没被我格式化,当然,你也可以用你刻录的 Ubuntu 光盘!
于是,俺从我的 Ubuntu安装U盘(LiveUSB)启动到Ubuntu Try环境。
然后。
打开 shell。
接着,让命令来的更加猛烈些吧!
sudo -i //直接root
mkdir /mnt/ubuntu
mount /dev/sda8 /mnt/ubuntu
我的 ubuntu 分区依然在第八区,当然,实在是不清楚自己的ubunut根分区在那个位置滴,可以打开 ubuntu试用环境 下的 “ 磁盘实用工具 ”,就一目了然了。
但是呢,不管在那个区我都要将它挂载到 /mnt/ubuntu ,接下来,继续挂载。
mount –bind /proc /mnt/ubuntu/proc
(注意,命令中都是两个 半角 “ 减 ” 号 啊!)
mount –bind /dev /mnt/ubuntu/dev
mount –bind /sys /mnt/ubunut/sys
chroot /mnt/ubuntu //切换 “ 根 ” 到 “ /mnt/ubuntu ”
最后。
grub-install /dev/sda //在第一分区写入新的mbr
最后一条命令终于完成了,庆幸的是,没有报任何错误,好吧,现在重启你的Computer。
一切都回到从前,美好的生活又开始啦!
方案B经过我测试,也是行的通的,不过,方案B应该算得上是万能方法了!
好吧,由于分区调整,或者折腾的连Grub都打不开的同志们。
那么请将上面的命令先抄到一个本子上,然后坐在电脑前,慢慢的把它们敲到屏幕上去吧!
It’s a shame you don’t have a donate button! I’d certainly donate to this outstanding blog! I suppose for now i’ll settle for book-marking and adding your RSS feed to my Google account. I look forward to fresh updates and will share this website with my Facebook group. Chat soon!
这个好像是有一次含有bug的更新造成的,我在碰到了,引导坏掉了~怎么也修复不好,后来bug去除了更新就没再出问题
@Rabbit_52 , 这个是我手洋导致的
合并,调整等等。
呃 要是我 我就啥都不晓得
细节好具体,哇,博主真是福利大众。。
msdos我开始也搞不明白是什么。
看了博主的介绍,应该就是主分区
@noteip , msdos代表用了分区表。
@Mucid , 哈哈哈,明白了,谢谢
能折腾。。我还从来没有玩的这么深,,
@Angel , 这个不叫折腾,是叫他的爱!
只用过grub4dos,虚拟机确实有linux,但是不会用,不折不扣的linux白痴
@lowstz , grub我还是喜欢gun版的。
感谢楼主分享的好文章!!!
以前玩过Grub rescue ,但是杯具了,结果连个系统都玩完了。
@Solo , 额,不是还有方案2么
所以你现在每篇都围绕一个主题,Linux就是好
@Ray Chow , 什么叫“ “ Linux就是好 ”,是本来就好!!!
好深奥啊
@Tiger , 有这么神奇么
一不小心 就这么麻烦 哈哈
@猪猪懒人窝 , 其实我很开心
Mucid 经常折腾杯具了,然后开始洗具。
@朵未 , 所以,我没有被厄运打到哈!
不在折腾中爆发,就在折腾中灭亡
@Lambert , 说道我心坎儿了!
呵呵,没遇到过,关注了解下!
这个折腾的,简直就是蛋疼了啊~~~
调整分区什么的,最讨厌啦!
@人好哇! , 那是应为你从没把linux当主OS!
@Mucid , linux安装之后会默认启动linux的……这个你都不明白么~~~嘻嘻
@人好哇! , sudo gedit /boot/grub/grub.cfg
@Mucid , 我又不想改顺序~~嘻嘻~~
@人好哇! , 那你每次都要多按一下键盘才可以进入Windows啊……
@Mucid , 无所谓,有的时候我也想进UBUNTU的!
还在Windows中挣扎,Linux主要是不习惯。
@公子 , 用Linux三年,啥都爽了!