linux下装windows时grub被覆盖

来源:互联网 发布:mac 实用软件 编辑:程序博客网 时间:2024/04/28 19:32

使用双系统常常要注意的一个问题是,Windows重装后会覆盖主引导区MBR,因此原来安装Linux后使用的引导程序Grub或者LiLo被覆盖,而导致不能引导进入Linux系统,


通常有两种思路,


在Windows下安装一个grub_for_dos,这里不多介绍,


主要讲下利用安装盘来重装grub并设置引导参数,


重装grub:


1.用安装光盘启动,选升级安装,选择安装GRUB行了.
2.用安装光盘启动,输入


linux rescue步进入救援模式,


sh#chroot /mnt/sysimage
sh#grub-install /dev/hda


进入GRUB
sh#grub
grub>
输入:
grub>root (hdX,Y)
grub>setup (hd0)
如果成功会有一个successful......
这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X
就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MB
R上。


当我们不想用linux了,而只用windows的时候.
只要在DOS下执行FDISK /MBR就行了

 

 

 

 

Windows与Ubuntu双系统重装WIN7后修复Grub2
[日期:2012-02-27] 来源:Linux社区  作者:AD4546 [字体:大 中 小] 

 
一直在使用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的方法我没有实际尝试过,仅仅列在这里而已。

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-02/55304.htm

 

原创粉丝点击