恢复Windows从MBR引导启动的方法

因为之前我一直在用的Fedora22系统失效了,想重装一下Linux,于是我脑子一热,在windows中直接把Linux的/boot所在分区给删了,后来发现这会导致重启后grub无法通过原来Linux的/boot下的grub配置文件找到Windows,进而将无法启动Windows,好在当时还没有重启计算机,于是赶紧把电脑上的数据备份了一下,然后开始查询解决的办法。

Windows下使用MbrFix重建MBR

删除Linux分区后导致重启无法进入Windows是因为,MBR中的grub需要从Linux的/boot目录中读取配置文件找到windows,但是当我们删除Linux分区之后,/boot目录下的配置文件也一并被删除了,所以无法进入windows。于是我们可以设法把grub替换掉,换成windows自己的引导程序。

能使用这个方法的前提是,你准备删除或已经删除了Linux系统,但是还没有重启,这样比较简单,我们可以通过一个MbrFix工具将Windows引导程序写入MBR。

下载MbrFix:http://7xo792.com1.z0.glb.clouddn.com/MbrFix.rar

解压文件,其中”MbrFix.exe”是适用于32位系统的程序,”MbrFix64.exe”是适用于64位系统的程序。将适用于当前系统的程序复制到C盘根目录下,然后打开cmd(注意必须以管理员身份运行),依次输入以下命令:

1
2
3
cd /
MbrFix /drive 0 fixmbr /yes
/*如果是64位系统则是MbrFix64 /drive 0 fixmbr /yes*/

至此MBR重建完成,重启后系统直接进入windows。

使用Windows安装光盘重建MBR

如果已经重启,无法进入windows,解决方法如下:

我们需要一张windows的安装光盘,以Win7安装光盘为例,在选择完语言等设置后,点击下一步进入下一个界面,不要点击“继续安装”而是点击下面的“修复计算机”。接着在出现的界面中选择第一项,点击“下一步”,然后点击“命令提示符”,输入以下命令重建MBR:

1
bootrec /fixmbr

  
重建完成后,输入exit即可退出命令提示符,然后点击”重新启动”即可进入Windows系统。

主引导记录——MBR(Master Boot Recoder)

MBR通常存在于磁盘的第一扇区,大小为512Byte。MBR主要包括两部分:1.引导程序或者指向”分区引导记录”中引导程序的指针;2.分区表。Linux目前最常用的引导程序是”grub”,WinXP的引导程序是”NTLDR”,WinVista 和Win7的引导程序是”BCD”。

如果我们在电脑上先装了Win7后又装Linux,并且装Linux时将grub引导程序选择安装在了MBR里,那么我们每次启动进入Windows时,引导的顺序是:

[1].从MBR启动grub,grub读取Linux的boot数据(保存在“/boot”);

[2].让用户选择是进入Linux还是Windows,如果选择Linux则开始[3],如果选择Windows则开始[4];

[3].根据boot数据直接启动Linux,结束;

[4].根据boot数据找到BCD/NTLDR;

[5].BCD或NTLDR再根据自己的设置,直接启动Windows或是进行其它的引导。

反之,如果我们先安装了Linux后再装Windows,由于Windows在安装时会将原来存在于MBR中的grub覆盖,故我们在装完Windows后重启,也会进不去Linux。(补充:Linux安装设置grub时能自动识别到Windows系统,并写入boot文件中;而Windows在安装时却不会理会已存在的Linux,而直接忽略之)