找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1298|回复: 3

[讨论] 硬盘主引导记录和具体操作系统并没有必然的联系

hfkjhd5 发表于 2013-9-15 16:28:41 | 显示全部楼层 |阅读模式 来自 中国福建厦门

马上注册,结交更多好友,享用更多功能。

您需要 登录 才可以下载或查看,没有帐号?注册

x
安装双系统的用户越来越多,不过多系统的启动和维护一直是个让人头痛的问题,比如windows xp(以下简称WinXP)+Windows 7用户(以下简称Win7),如果启动文件Bootmgr或者BCD启动配置出现问题,经常会导致两个系统都无法进入。本文和大家讨论使用XRLDR(一个轻量级的多重启动管理工具)实现WinXP、Win7、WinPE三个系统独立启动的方法和技巧。
  了解多系统启动基础知识
  在使用XRLDR之前我们先来了解一下系统启动知识,这样可以让大家更好理解和配置多系统的启动。硬盘上系统一般启动程序是这样的:开机自检→加载硬盘主引导记录(MBR)→搜索并激活系统引导文件→加载启动配置文件→加载系统核心文件→完成启动。
  比如对于在WinXP基础上安装Win7双系统用户,安装Win7后它会更改主引导记录并使用Bootmgr管理多系统启动。它的引导流程是:自检后加载NT60主引导记录,然后查找引导文件“C:\Bootmgr”并激活,接着加载“C:\boot\bcd”启动配置文件并列出多重启动。如果选择“Windows 7”,Bootmgr根据BCD启动信息配置,将控制权交给Win7系统目录下的“Winload.exe”, 然后开始启动Win7。如果选择的是旧版本的Windows,Bootmgr将控制权交给“NTLDR”,接着开始启动WinXP(常见系统引导文件和引导记录格式如下表所示)。

常见系统引导文件
  提示:硬盘主引导记录和具体操作系统并没有必然的联系,它是在操作系统启动之前加载的一段代码。不同类型的引导记录区别在于加载引导文件的不同,比如NT60记录,它会去查找“C:\Bootmgr”并加载它。Bootmgr既可以引导WinXP,也可以引导Linux系统。具体可以引导什么系统,是由系统启动配置文件决定的,比如将“C:\NTLDR”启动配置写入BCD后,Bootmgr就可以启动WinXP系统了。
  从上述启动流程可以看出传统的双系统引导主要有如下不足:
  1.多系统启动都是通过第一分区完成,因此一旦第一分区无法正常工作(比如遭受病毒破坏),就会导致所有系统都无法启动。
  2.多系统启动文件都保存在第一分区,并且依赖于Boootmgr单一文件,一旦该文件被误操作(如对启动配置文件BCD错误编辑)或误删除,将导致多系统启动失败。
  为了解决多系统启动的上述不足,我们可以自行对多系统启动进行改造。首先将各系统的启动文件复制到各自分区,接着通过XRLDR配置实现各分区系统的独立启动,从而使多系统启动摆脱对第一分区和单一启动文件的依赖,改造前后流程对比。
  注:本文以C盘安装WinXP加D盘安装Win7的双系统安装为例,为了更方便进行维护,笔者还在E盘安装WinPE系统。
  实战:多个系统各自启动
  从上述介绍可以知道,改造多系统启动操作第一步要将各系统启动文件复制到各自分区,由于简单复制启动文件并不能启动系统,复制完成后还要对系统启动进行配置。下面就针对不同系统介绍如何进行具体操作。
  Part Ⅰ.实现WinXP独立启动
  大家知道WinXP是通过“C:\NTLDR”启动的,对于先装WinXP后装Win7的用户,我们只要将硬盘主引导记录更改为NT52格式即可。进入WinXP后将下载的“bootsect.exe”复制到C盘,接着启动命令提示符工具并输入“c:\bootsect.exe /nt52 c:”,当屏幕出现“Bootcode was successfully updated on all targeted volumes.”的提示,则表示成功将主引导记录更改为NT52格式。现在重启系统后就会自动加载NTLDR来启动WinXP(不会再出现Bootmgr启动管理器界面)。
  提示:对于在Win7基础上安装WinXP的用户,千万不要使用上述命令更改主引导记录,否则会出现两个系统都无法进入的后果。因为变更为NT52格式后,硬盘主引导记录就会去寻找第一分区根目录下的NTLDR文件(NT60格式为寻找Bootmgr)。
  Part Ⅱ.实现Win7独立启动
  完成上述操作后,重启系统进入WinXP,把“C:\bootmgr”文件、“C:\boot”整个目录全部剪切到D盘根目录。然后运行下载的“bcdtool.exe”,单击“启动配置→打开”,打开“d:\boot\bcd”配置文件。依次选择“编辑→删除启动项目”,将原来的启动项目全部删除。接着再依次选择“编辑→新建Vista启动项目”,选中新建项目后,双击右侧窗格的“device”项,将其更改为“partITion=D:”(盘符依据Win7安装的具体分区更改),“description”(启动菜单显示名称)更改为“Windows 7”。
  经过上述启动文件移动和配置后,我们只要能够加载“D:\bootmgr”,Win7就可以从D盘启动了(Bootmgr加载需要借助XRLDR配置)。
  Part Ⅲ.实现WinPE独立启动
  由于Win7启动经常需要借助WinPE来修复,因此为了方便对Win7系统进行维护,我们还可以手动在本地硬盘安装WinPE系统。只要准备好Win7安装光盘,打开光盘后将除“光盘目录\sources\install.wim”文件外的全部文件复制到E盘即可完成安装。
  最后设定——多系统统一管理
  完成上述三个系统的配置后,现在进入WinXP系统,运行下载的XRLDR,单击“安装/配置”进入配置界面。在界面预览下选中“第一个操作系统”,依次进行如下设置:
  1.启动方式单选“从文件启动”,启动文件选择NTLDR(用于启动WinXP,启动Win7和WinPE则选择Bootmgr)。
  2.启动分区选择第一分区(即WinXP所在分区,其他系统根据具体分区选择)。
  3.系统类型选择“NTLDR/BOOTMGR”,并勾选“启动时激活要启动主分区”。
  4.菜单文本更改为“windows xp”,然后单击“生成”(字体、颜色、字号等根据自己喜好进行设置)。其他参数采取默认设置。
  5.操作同上,依次设置Win7和Win PE系统的启动配置,最后单击“写入磁盘”,完成对主引导记录的更改。
  OK,现在只要重启电脑,我们就可以在开机多重启动菜单中选择自己喜欢的系统进入了(下次启动时默认启动上次选择的系统,默认启动系统可以在XRLDR中进行设置)。
  上述三个系统是独立启动的,比如选择Win7进入后,依次打开“计算机管理→存储→磁盘管理”,可以看到Win7所在分区既是系统分区也是启动分区,表明它的启动并不依赖第一分区。
  提示:什么是系统分区、启动分区?根据微软帮助文档的解释,系统分区是指包含加载 Windows(比如Bootmgr)所需的硬件特定文件的分区,系统分区可以(不是必须)与启动分区相同。启动分区则是指包含 Windows 操作系统及其支持文件的分区。在传统WinXP+Win7情况下,对于Win7它的系统分区是第一分区(因为加载 Windows所需特定文件如Bootmgr和Boot引导目录在该分区),启动分区则为第二分区(因为Windows 操作系统目录在该分区)。这里系统分区、启动分区合二为一表明这个分区就包含系统文件和引导文件,可以说明该系统是自主、独立启动的。
  经过上述改造,我们已经实现WinXP、Win7、WinPE三个系统的独立启动,这给我们日常维护带来很大的便利。比如在改造前误删了Bootmgr文件,重启后就无法启动多系统了,而现在则可以进入WinXP系统,只要到其他电脑上复制Bootmgr到D盘即可修复Win7系统的启动问题。同样,如果Win7的BCD菜单出现故障,我们还可以进入WinPE,使用Bcdboot命令进行快速修复。
  即使是电脑高手,也常常会遇到多系统启动的故障,而一旦产生无法启动的故障,那维护起来可就费时又费力了。本文另辟蹊径,为多系统维护提供了一种很好的思路,通过XRLDR独立引导,实现各个系统独立启动。如果你已经安装了多系统,并且也曾遭遇过多系统启动的故障,那么不妨试一试本文介绍的方法,就可以大大减少你的维护工作了! 文章来源 whseojs.com 转载请注明

hsyseth 发表于 2013-9-15 17:03:58 | 显示全部楼层 来自 意大利
这个帖子还蛮有现实意义的,现在很多人都要弄双系统
回复 支持 反对

使用道具 举报

过江虫过江 发表于 2013-9-16 01:56:55 | 显示全部楼层 来自 中国湖北荆州
是要充充电了,学习学习!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表