Win+Ubuntu10.04修复grub2方法总结(转自 xiaodu266 )

来源:互联网 发布:佟晨洁和谢晖 知乎 编辑:程序博客网 时间:2024/05/08 12:16

    用ubuntu有好些年月了,不过一直是Win+Ubuntu共生于我的电脑中,虽然一直希望能完全依靠Ubuntu,可工作和生活从目前来看,我还是离不开Win,之所以双双共用了,所以也就产生了这个话题的讨论!
言归正传,例举2种经常产生grub引导问题出现的情况。
1、最最常见的就是重装系统后,原来的grub引导就不复存在;
2、更改硬盘的分区,特别是系统盘,包括Win主分区、Ubuntu系统分区;

解决办法:(以下方法主要来自网络,本人只依据自己的实验结果,总结起来,方便各位参考!方法简单多样,对高人是不齿一提,但对那些碰到这样问题选择重新安装系统的抓狂的新人来说,我想还是可以借鉴的!)
办法1(重新安装Win后,导致Ubuntu不能引导启动。)
可以采用LiveCD 启动Ubuntu,之后就在Ubuntu下操作。
打开终端:
# 切换到root权限
ubuntu@ubuntu-laptop:~$ sudo -i
#找你ubuntu10.04所在分区
root@ubuntu-laptop:~# fdisk -l
看到的信息(我的,:-)):
Device Boot Start End Blocks Id System
/dev/sda1 * 1 4544 36498624+ 7 HPFS/NTFS
/dev/sda2 4545 19457 119788642 f W95 Ext'd (LBA)
/dev/sda5 4545 11097 52635936 7 HPFS/NTFS
/dev/sda6 11097 11409 2499584 82 Linux swap / Solaris
/dev/sda7 11409 13055 13227008 83 Linux
/dev/sda8 13056 19457 51424033+ 7 HPFS/NTFS

(******)下面挂载原系统的根目录:
新建挂载点:mkdir /media/tempfile (这里用于创建一个文件夹tempdir,用于挂载刚才的sda7,此文件夹名称你可以依个人爱好而定,没有太多要求)
挂载Ubuntu所在的盘:
mount /dev/sda7 /mnt(将sda7挂载于tempdir文件夹下)
下面进入了本次恢复最为关键和激动人心的时刻,在终端输入以下命令:

grub-install --root-directory=/media/tempdir /dev/sda (本步骤用于来重新安装grub2到硬盘的主引导记录【MBR】里面,十分关键!)

输入以后如果出现“Installation finished.No Error Reported.”字符的时候,就表示操作成功了。但是现在只成功的一半,还有以下操作才能够完全成功。

这时重新启动你的电脑,就能看到grub2的引导界面了,但是这时只能用来引导Ubuntu10.04,还暂时无法引导Windows 7,这时选择进入10.04,再找到并启动终端,在终端输入如下命令:

sudo update-grub2

按照提示输入密码,如果顺利的话,会出现如下类似语句,那就表示成功了。

grub.cfg ...

Found Debian background: moreblue-orbit-grub.png

Found linux image: /boot/vmlinuz-2.6.31-15-generic

Found initrd image: /boot/initrd.img-2.6.31-15-generic

Found memtest86+ image: /boot/memtest86+.bin

Found Windows 7 (loader) on /dev/sda1

done

如果没有出现以上类似语句的话,那就在新立得里面搜索grub,可以安装带有Ubuntu标志的那个grub-pc,安装之后,再输入sudo update-grub2更新一下grub2就可以了。 (本部分呢来自:http://huanyue.javaeye.com/blog/582450,谢谢作者!)

办法2(Win分区改动,导致Ubuntu不能引导启动。)
开机启动,就可能会出现:error:unknown filesystem
rescue:_

这个画面让人无奈,我看到很多人采用格盘,然后全部重新安装,太费时费力费心了,还有费感情。
出现这种情况,其实很大部分是系统文件完好,就是启动的grub出错了!我们可以完全容易修复!

推荐Grub rescue模式

rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)

ls --列出分区

ls (hd0,8)/ --查看(hd0,8)分区根目录

找到grub目录,然后继续

grub rescue>root=(hd0,x)

grub rescue>prefix=/boot/grub --(grub的目录)

grub rescue>set root=(hd0,x)

grub rescue>set prefix=(hd0,x)/boot/grub

grub rescue>insmod normal

grub>normal
--------若出现启动菜单,按c进入命令行模式
此时出现熟悉的grub启动画面,这时可以进入心爱的Ubuntu系统了。进入之后可以在终端,参考(******)部分。如此时提示你出现MBR错误,或者重启后,还是不能解决问题,那么可以就继续下面的步骤吧!

当这种情况修复过程

首先,采用光盘启动系统,最好是WinPE,里面带PTDD工具,具体可以网络上寻找,很容易的!
启动WinPE,可以看到熟悉的脸庞,打开PTDD(程序—管理工具,一般会与PQ在一起,呵呵,找吧!),提示出错,那么就自己看吧,一般都是点确定就是了!启动PTDD,然后对Win,Ubuntu的系统盘的MBR重建!退出PTDD,重启,就可以看到Win就正常启动了。
到此为止,那么就剩下来又参考上面的方法来修复Grub2好了祝你成功![b]情况就这么个情况,事情就这么个事情,主要是还是自己稍微动点脑筋,多想想办法,分析一下出现的问题,对症下药,别动不动就格式化,重装系统,不必要!!!
经验不足,有什么问题,建议参考Google,Baidu!条条大路通罗马!!!

原创粉丝点击