感谢支持
我们一直在努力

Windows与Ubuntu双系统重装WIN7后修复Grub2

一直在使用Windows与Ubuntu双系统(估计很多的linuxer都是这种情况)。前一段时间重装了Win7,然后启动后便会不选择系统而直接进入Windows。原因其实蛮好想的,就是因为Windows的引导程序覆盖了MBR,启动时不再使用grub引导。至于修复方法,下面是一些总结。


这个问题具体的解决方案很多,但总体的思路其实就两步:第一步、想尽一切办法进入linux;第二步、在linux环境下用grub重新覆盖MBR。


对于第一步,我采取的方法是使用grub4dos。


首先下载grub4dos,这个随便一搜就有,估计很多人最初安装linux是就用到过。


解压后把grub.exe,grldr复制到C盘的根目录。注意,win7的C盘中原有一个grldr,是一个隐藏着的系统文件。在复制时一定要将它备份好,以后还会用得到。网上的解决方案说还要复制menu.lst,其实这个不是必须的,没有它也可以解决问题。


然后重启系统。因为使用了grub4dos的grldr,所以会由grub.exe来引导启动。引导时它会自动搜索menu.lst,找不到就会进入命令行模式。然后就要在grub4dos的命令行中启动linux。这个就比较容易了


grub>root (hd0,x) (x表示/boot分区的编号)


grub>kernel /vmlinuz-x.xx.xx-xx-generic root=/dev/sdaY (xx表示kernel的版本,可以用ls命令看一下/boot下面这个文件的名字是什么;而最后面的Y是/分区的编号。需要注意的是,采用(hdo,x)的表示方法时,编号是从0开始的;采取/dev/sdaY表示方法时,编号是从1开始的)


grub>initrd /initrd-x.xx.xx-xx-generic (xx和上一条命令里的一样,都是kernel版本)


grub>boot


这时候应该就可以进入linux了。


第二步要用grub覆盖MBR


这一步就更简单了。首先更新一下grub,使它可以识别win7


sudo update-grub


更新之后,输入命令覆盖MBR。具体的命令因grub版本而异。我用的系统为ubuntu10.10,使用grub2。它需要的命令只有一句话


sudo grub-install /dev/sda


如果提示安装成功,那就大功告成了。重启计算机,就又看到熟悉的grub选择界面了。


对于grub1(ubuntu9.10之前的版本使用),需要先将/挂载到/mnt。如果有/boot分区,再将/boot挂载到 /mnt/boot。然后执行命令


sudo grub-install –root-directory=/mnt /dev/sda


grub1的方法我没有实际尝试过,仅仅列在这里而已。

赞(0) 打赏
转载请注明出处:服务器评测 » Windows与Ubuntu双系统重装WIN7后修复Grub2
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏