嗯,现在愿意尝试Linux的人越来越多了。通常,如果一台电脑里已经装有了Windows,再装Linux,安装时,Linux的grub引导程 序就会覆盖掉保存在MBR当中的原来的Windows引导程序。如果在安装完Linux后,用户删除或格式化了Linux的/boot所在的分区的话,就 会导致重启后grub无法通过原来Linux的/boot下的grub配置文件找到Windows,进而将无法启动Windows!(这种说法其实不严 谨,这样解释仅作便于理解。有关MBR及这部分的简单原理,我将在本文末进行讲解)

OK,知道了后果,可是万一我不喜欢Linux,有没有后悔药呢?是不是我装了Windows又装了Ubuntu或是其它Linux后我就无法换回 原来唯一的Windows了呢?当然不会!上文旸仔说了,删除Linux分区后导致重启无法进入Windows的真正原因其实在于,MBR中的grub需 要从Linux的/boot目录中读取配置文件来找到Windows,由于删除了Linux分区,那么/boot目录下的配置文件也就被删除了,于是 grub找不到配置文件便无法找到Windows了,所以才进不了Windows。清楚了原因以后,我们便可得出两条解决问题的思路:1,设法让grub 找到Windows;2,把grub替换掉,换成Windows自己的引导程序。

第一条思路,由于grub启动的文件已经被删除,而且安装在MBR里的grub引导程序十分有限,所以我们是没有办法让grub找到Windows了。

上一条走不通,只得由第二条思路想办法,即,设法将Windows的引导程序装回MBR里。这里提供两种可靠的办法:

办法一:Windows下使用MbrFix重建MBR

能够使用这个方法的前提是,你将要删除或已经删除了Linux系统,并且还没有重启,Windows系统尚在运行中。我们可以通过一款小工具轻松得将Windows引导程序写入MBR。点此下载MbrFix。 下载后解压,里面有3个文件,“MbrFix.htm”是详细的使用说明文件,“MbrFix.exe”是适用于32位系统的程 序,“MbrFix64.exe”是适用于64位系统的程序。我们根据当前的系统将其中一个程序复制到C盘根目录下。然后打开命令提示符(可从“开 始”->“运行”处输入“cmd”->“确定”打开),依次输入以下两条命令:

cd c:
MbrFix /drive 0 fixmbr /yes
/* 如果为64位系统则输入MbrFix64 /drive 0 fixmbr /yes */

这样MBR就重建完成了。而如果你已经重启,无法进入Windows了,请看后面的办法二吧。

办法二:使用Windows安装光盘重建MBR

这里我们需要一样道具,就是一张Windows XP或Windows 7的安装光盘。我们从光盘启动,接下来:

如果用的是xp的安装光盘:

在进入第一个界面时(按“Enter”进行安装,按“R”进入“恢复控制台”),按“R”进入控制台,一会儿后要求你选择修复哪一个系统,输入待修 复的Windows系统标号,接着是输入管理员密码(如果未设密码就继续回车)。待出现“C:WINDOWS>”提示符后,输入以下命令,回车,并 输入“y”,回车进行重建MBR:

fixmbr

重建完成后,我们输入exit即可重启进入Windows系统啦~

如果用的是win7的安装光盘:

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

bootrec /fixmbr

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

原理:

OK,本文最后,我们来简单了解一下整个事情的原理。

首先,什么是MBR?MBR(中文名“主引导记录”,英文全称“Master Boot Record”),它通常存在于磁盘的第1扇区,大小只有512Byte。其中最主要包括两部分,其一是引导程序或指向“分区引导记录”中引导程序的指 针,其二是分区表。Linux目前常用的引导程序就是“grub”,而winXP的引导程序叫做“NTLDR”,WinVista和Win7的叫做 “BCD”。

假如我们在一台电脑里先装了Windows7后又装了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,而直接忽略之。可见微软的垄断心态!)

双系统如何删除Linux,恢复Windows从MBR引导启动?的更多相关文章

  1. (win+linux)双系统,删除linux系统的条件下,删除grub引导记录,恢复windows引导

    //(hdx,y) (显示查找到的分区号)第一个数字指第几个硬盘,第二个指第几个分区.   一般我们是(hd0,0) \n Linux的分区已经被你从Windows中删除,系统启动后停在“grub&g ...

  2. 双系统之删除Linux以及grub的引导

    问题阐述:最近玩双系统,把linux系统搞崩了,回到windos备份Linux系统的数据就把Linux的盘格式化了,然后再每当进入系统都会出现grub的命令格的窗口,输入任何命令都报错? 解决方法: ...

  3. 双系统下删除Linux系统方法和Windows无法启动问题的解决方法

    装了一个linux,后面直接把它删掉了,结果电脑重启的时候重启不了,总是一开机就出现     grub>   心中无比的恼火,后面想不通了,就打算直接重装系统,结果重装系统的过程中遇到了问题,B ...

  4. Win 10 和 Linux 双系统,从硬盘删除Linux分区,Win 10引导修复

    由于安装双系统后,Linux 用的比较少.因此,从Win 10 磁盘管理中删除了linux 占用的磁盘空间,重启后无法进入win 10 ,出现如下情况: 有人提出,此时需要重装系统,并不用如此麻烦,通 ...

  5. 笔记本装双系统!win10+Linux!所有的坑自己一个个爬过来,纪念一下。

    笔记本装双系统!win10+Linux!所有的坑自己一个个爬过来,纪念一下. 2018年09月16日 21:27:19 Corax_2ven 阅读数:14038   写在前面,装了大概5遍,装了删删了 ...

  6. 在ubuntu上搭建开发环境2---Win7、Ubuntu双系统正确删除Ubuntu

    这种删除ubuntu的方式就是针对本博客中搭建双系统的方式:http://www.cnblogs.com/xumenger/p/4459963.html 如果ubuntu不是以wubi方式安装的,那么 ...

  7. win7/ubuntu双系统下,如何恢复成win7引导及卸载ubuntu

    电脑原来是win7系统,后来通过硬盘安装了Ubuntu,同时把Ubuntu设置成了开机引导项(开机时选择操作系统的界面成了紫色背景白色字体的界面),ubuntu引导开机的缺点是将来要卸载Ubuntu时 ...

  8. 【转】win7与ubuntu双系统,删除ubuntu后,启动错误error:no such partition grub rescue的修复--不错

    原文网址:http://blog.sina.com.cn/s/blog_541900d50101eu9r.html win7于ubuntu双系统,进入windows后直接格式化硬盘分区将ubuntu删 ...

  9. 【解决方法】安装Win7和linux双系统后,linux报错“无法分配所提交的分区 not enough free space on disks”问题,以及win7无法启动“BootMGR image is corrupt....”问题

    近日,在笔记本上重装了Win7 企业版(64位)后,想装个linux双系统,于是开始安装 centOS 6.2(光盘安装) 硬盘分了一个主分区(c盘),一个扩展分区(3个逻辑分区:d,e,f盘),然后 ...

随机推荐

  1. 对于Discuz!NT不允许新用户注册的解决办法

    客户论坛用的是Discuz!NT,但是用户注册总是提示不允许新用户注册,对于这个问题,网上好多说的是管理员登录后台,在"用户与访问控制"里将允许新用户注册改为"是&quo ...

  2. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

  3. Winform开发框架主界面设计展示

    做了好多年Winform的程序的开发,主窗口的界面设计一般都要求做的更好一些,可以根据不同的系统功能模块进行归类整合,能使客户迅速寻找到相关功能的同时,也能感觉到整体性的美观大方,因此主窗口的界面设计 ...

  4. [水煮 ASP.NET Web API2 方法论](3-4)设置路由可选项

    问题 怎么样创建一个路由,不管客户端传不传这个参数,都可以被成功匹配. 解决方案 ASP.NET WEB API 的集中式路由和属性路由都支持路由声明可选参数. 在用集中式路由中可以通过 RouteP ...

  5. 响应式布局(Responsive layout,RL)的简单Demo

          ★背景:       响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决 ...

  6. JAVA的网络编程基础概念

    网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协 ...

  7. jQquery.validate自定义规则的使用案例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. JS+JQ手风琴效果

    最新在学习JS写一些实用的小玩意——手风琴 CSS样式: <style type="text/css"> * { margin: 0px; border: 0px; p ...

  9. 重新想象 Windows 8 Store Apps (56) - 系统 UI: Scale, Snap, Orientation, High Contrast 等

    [源码下载] 重新想象 Windows 8 Store Apps (56) - 系统 UI: Scale, Snap, Orientation, High Contrast 等 作者:webabcd ...

  10. coffeescript 1.8.0 documents

    CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque ...