linux还原windows,双系统如何删除Linux,恢复Windows从  MBR引导启动?

双系统如何删除Linux,恢复Windows从

MBR引导启动?

现在愿意尝试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

这样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,而直接忽略之。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux ftp下载函数函数,FTP下载的函数

最近写的一个到指定FTP下载服务器上下载的函数,主要用到类有CInternetSession,CFtpConnection具体内容看代码吧,这个不能的!虽然很简单,不值得往外写,但我想收藏起来留着以后用也是很有意义的。/*********************…

linux应用程序逆向,Linux下查看并下载命令源码包(根据命令/应用程序逆向获取并且安装其所属源码包)...

使用linux的过程中,我们会熟悉各种命令,偶尔我们不禁会问,这些命令是怎么实现的,学习他们其实是学习linux高级系统编程很快捷的方法。这些命令的源码肯定是存放在相应的包里面,但是是哪些包呢?发行版的包管…

linux路由信息预览为空,route - 显示并设置Linux中静态路由表

补充说明route命令 用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中设置路由通常是为了解决以下…

linux maven自动构建,Centos7.3+Jenkins+Git+Maven 自动化构建部署项目

第一步 禁止 SELINUX 访问控制修改配置之前先备份(良好习惯)sudo cp /etc/selinux/config /etc/selinux/config.bak备份后,修改selinux配置sudo vi /etc/selinux/config将SELINUXenforcing改为SELINUXdisabled第二步 卸载系统自带的OpenJDK以及相关的java文件 安装J…

linux windows变色龙,体验开源变色龙SUSE Linux Enterprise Server 11

体验开源变色龙SUSE Linux Enterprise Server 11SUSE Linux Enterprise Server 11主要针对的是企业用户,SUSE产品分为SUSE Linux Enterprise Desktop(SLED)和SUSE Linux Enterprise Server(SLES)两个版本。笔者测试的版本为Server版本,主要面向SMB甚至是…

c语言简单编程题模板,C语言编程题,比较简单

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include int main(){int mark0,falut0;float answer0,k1;char m;int n;int i1;float timu(char q);float re(float a,float b,char h);printf("please input the number of the question you want to answer and th…

c语言建立顺序表 存储并输出,请教数据结构课程中怎么建立顺序表,显示,输出,从头到尾详细点最好加讲解,希望大家能帮这个小忙...

#include#define MAXSIZE 20typedef int ElemType;typedef struct{ElemType elem[MAXSIZE];int length;}SqList;//顺序表结构定义void InitList(SqList &L){//初始化函数//操作结果:构造一个空在顺序线性表 L.length0;return;}void ClearList(SqList &L){//…

杭州师范大学c语言程序设计机试,2016年杭州师范大学杭州国际服务工程学院程序设计基础考研复试题库...

一、选择题1. C 语言源程序名的后缀是( )A.C B.exe C.obj D.cp 答:A 【解析】C 语言源程序名的后缀为.C2. 以下选项中不合法的标识符是A.printB.FORD._00 答:C【解析】标识符是由若干个字符组成的字符序列,用来命名程序的一些实体。语法规则为…

在c语言中关于静态变量的说法正确的有,关于static变量,请选择下面所有说法正确的内容。...

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例&…

c语言数组下标越界检查程序,数组下标越界

已结贴√问题点数:20 回复次数:11数组下标越界题目是一个有10个元素的数组,存有10个考生的分数,写5个函数,分别计算总分,最高分,最低分,平均分,分数升序排列。我写了5函数…

c语言标准整形,C语言整形数值范围问题

有符号二进制数的表示是这样的&#xff1a;如果计算机的字长为n位&#xff0c;n位二进制数的最高位为符号位。其余n-1位为数值位&#xff0c;采用补码表示法时&#xff0c;可表示的数X的范围是 -2的(n-1)次幂 < X < 2的(n-1)次幂-1。如果字长是16位&#xff0c;补码表示的…

c语言switch comiti,国际经济学作业复习资料第三章.docx

Chapter 3 Labor Productivity and Comparative Advantage —The Ricardian Model■ Multiple Choice QuestionsCountnes trade with each other because they areand because of.different, costssinular, scale economiesdifferent, scale economiessimilar, costsNone of th…

c语言变长参数 第一个参数必须吗,一种使用变长参数为C程序构造灵活回调函数的方法...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼int twice(void *arg, va_list ap){apply_func *func va_arg(ap, apply_func *);int status func(arg, ap);if (status > 0)status func(arg, ap);return status;}twice函数接收一个函数func和它的参数(注意func的参数以奇怪…

已知函数func的C语言代码框架,第三章习题-ddg..doc

第三章习题-ddg.习 题1&#xff0e; 给出以下概念的解释说明。机器语言程序机器指令汇编语言汇编指令汇编语言程序汇编助记符汇编程序反汇编程序机器级程序通用寄存器定点通用寄存器栈指针寄存器指令指针寄存器标志寄存器条件标志(条件码)控制标志寻址方式立即寻址寄存器寻址存…

基于文本 c语言,[源码和文档分享]基于C语言实现的文件系统

1 实验目的学习FAT文件系统的构成能够将自己的程序应用在系统上熟悉dd,mount,umount,等指令设计并实现一个目录列表函数(无须支持选项&#xff0c;如ls -a、ls -l等)&#xff0c;用来显示当前目录下包含的文件信息设计并实现一个改变目录函数(无须处理路径名&#xff0c;如../.…

c语言实现bf算法的定位函数,数据结构c语言版严蔚敏清华大学出版社第四章串.ppt...

数据结构c语言版严蔚敏清华大学出版社第四章串模式匹配(定位) 设有主串S和子串T(将S称为目标串&#xff0c;将T称为模式串)&#xff0c;在主串S中&#xff0c;从位置start开始查找&#xff0c;如若在主串S中找到一个与子串T相等的子串&#xff0c;则返回T的第一个字符在主串中的…

android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能

本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;需求如题目&#xff1a;Android listview中item部分区域添加点击事件&#xff0c;在一个界面显示了listview&#xff0c;但显示的内容分为上下两部…

android网络编程终结者,小七论坛终结者V2.0升级版源码 - 源码下载|Internet/网络编程|远程控制编程|源代码 - 源码中国...

文件名大小更新时间小七论坛终结者V2.0升级版源码\Bin\Assist.dll409602018-05-16小七论坛终结者V2.0升级版源码\Bin\bk.gif12232018-05-16小七论坛终结者V2.0升级版源码\Bin\SkinPPWTL.dll5489442005-12-09小七论坛终结者V2.0升级版源码\Bin\X7.dat1393842013-12-06小七论坛终…

android判断usb已连接,android 判断是否有网络连接(usb连接电脑问题)

找到很多判断网络连接的工具类,如下:package client.verbank.mtp.allone.util;import android.app.Activity;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;/*** 检测手机网络是否可用** author qiulinhe* createTim…

android uber源码,Uber SDK in android

问题I am trying to add an Uber request a ride button in my android application. In my gradle build file I have added the following line:compile com.uber.sdk:rides-android:0.5.0Automatically Android studio asks to sync the gradle files as they have changed.…