安装双系统的用户越来越多,不过多系统的启动和维护一直是个让人头痛的问题,比如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”。