2023年11月24日发(作者:)

WIN7XP双系统安装纪实及引导方式总结

一、 双系统常用引导方式

目前常见的双系统引导方式有两种,一是传统的由高级别的Windows系统

来作为主引导,其中包含了对低级别Windows系统的分引导,通过引导程序跳

转实现双系统的启动选择;二是近几年流传的双系统独立启动,通过安装第三方

引导软件,在正式启动前对活动的主引导分区进行切换,以此选择启动的操作系

统。后者好处是引导程序不依赖其中一个操作系统,即不论双系统的哪个系统崩

溃,都不会影响另一个系统的正常引导,但缺点是每次启动切换时会反复写MBR

Master Boot Record)或是PBRPartition Boot Record,这两个关键性引导

记录经常性改写存在风险。

二、 WIN7XP双系统安装、引导纪实

201627日至8日,通过查找详细的文档资料,终于完成了WIN7

XP双系统的安装和引导启动。但过程比较曲折,期间发生了多次意料之外的问

题,目前问题已经解决,其中大部分问题找到原因并得到了合理的解释。

C盘为XP操作系统,目的是重新分区,安装WIN7系统。在XP系统下安

WIN7,按照微软向下兼容的原则,一般是不需要修复引导程序,但由于缺少

原版WIN7安装光盘,采用了Ghost镜像还原的方式,因此WIN7引导没有形成,

XP使

NTBOOTAUTOFIX

第一步重新分区,由XP没有系统自带的无损分区工具,使用了

PartitionMagic 8.0,将D盘空间减小,留出40G重建成主分区,非活动。以防万

一,操作前将原D盘文件全部复制到E盘中。PM无损分区比想象中更慢,

Windows下操作后重启进入命令行执行,需要转移数据、重建分区信息,最终约

30分钟才完成。之后手动重启进入Window,重新分配盘符,将新分区设为D

盘,其他盘依次往后到下一个字母,再将D盘快速格式化。

第二步使用Ghost WIN7光盘进行安装。通过Ghost硬盘安装工具,WIN7

镜像还原到D盘。该工具自动重启后进入Ghost完成还原。之后重启只能进入

XP

第三步在XP下修复引导程序。使用NTBOOTAUTOFIX进行自动修复,然

后重启即可继续进入WIN7安装。10-20分钟左右安装完成后进入WIN7系统,

发现D盘变成第二硬盘的主活动分区,现C盘为WIN7盘,原C盘(即XP

分区)无盘符分配,因此在我的电脑中消失了。

第四步修复WIN7下错误的盘符分配方式。通过系统自带的磁盘工具,发现

其他分区都可以修改盘符,就是D盘不行,弹出参数错误的提示。先将原C

分区指派到J盘成功,重启后D盘依旧不能修改。通过网上查阅资料,弄明白

了带有页面文件(即虚拟内存)的分区是不能修改的,于是修改D盘的页面文

件为无,再重启就可以修改了。最终将原C盘分区修改为D盘,其他盘同第一

步依次往后。

第五步更改完盘符发现不能进入我的电脑,双击后一直等待,后出现出现服

务器运行失败的提示。百度后在开始菜单的查找里输入文件夹选项,进入后将“在

单独的进程中打开文件夹窗口”的勾去掉,恢复正常。但产生原因不明,毕竟微

软不可能提供一个不能用的选项给用户使用。网上大量查阅资料,99%都是解决

方法,不谈原因,仅有一个帖子谈到原因:挂上第2块硬盘出现该问题,拆除后

正常,因此可能为盘符多次分配占用了重复的空间,在库里将重复的位置删除后

完美解决。这与我的问题类似,但是谈到的方法过于笼统不知如何操作,所以没

有找到真正的源头。问题绕转后解决,原因搁置。

第六步重启测试XP引导是否正常。出乎意料的是可以选择“早期的Windows

版本”,但进入后没有XP的选择菜单(即原XPGhost的两行菜单)而直接进

XP,滚动条结束进入蓝色画面,屏幕就不动了,硬盘灯不闪。重启后依旧。

因此重启进入WIN7,使用NTBOOTAUTOFIX重新修复双系统引导文件,再次

重启选择“早期的Windows版本”即可进入XP启动选择菜单,菜单中有三项,

前两项均为XP,第三项为Ghost。选择第一个XP后进入了第2块硬盘残留的

XP系统,重启后选择第二个顺利进入了原XP系统。

第七步重启进入WIN7修改启动菜单。使用NTBOOTAUTOFIX修改了WIN7

启动菜单的名称,将第二项“早期的Windows版本”改为“WINXP & Ghost

同时修改了XP文件,删除第一个XP(第2块硬盘)的选择项。然后

WIN7系统中将“WINXP & Ghost”修改为WIN7默认启动项,并调整了显示

时间为6秒。至此WIN7XP引导问题全部得以解决,最终效果:启动后进入

WIN7菜单,默认为“WINXP & Ghost,停留几秒,选择后进入XP菜单,共两

项,第一项为XP,第二项为Ghost

三、 引导方式总结

WIN7启动过程(引用网上原文):电脑加电后,首先是启动BIOS程序,

BIOS自检完毕后,找到硬盘上的主引导记录MBRMaster Boot Record,然后

MBR读取分区表DPT(Disk Partition Table,从中找出主活动分区,读取主

活动分区的分区引导记录PBRPartition Boot Record,最后PBR再搜寻分区内

的启动管理器文件BOOTMGRwinxp中是NTLDRBOOTMGR被找到后,

控制权就交给了BOOTMGRBOOTMGR读取bootbcd文件(BCD=Boot

Configuration Data,也就是“启动配置数据”,简单地说,windows7下的bcd

件就相当于xp下的文件),如果存在着多个操作系统并且选择操作系统

的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。在我们

WINDOWS7BOOTMGR

然后通过加载windows7内核,

而启动整个windows7系统。

BIOS-->MBR-->DPT-->PBR-->

Bootmgr-->BCD-->-->内核加载 -->启动windows7系统。

NTBOOTAUTOFIX说明文档中体验工具修复效果:例 - 选“高级”,选另

一非活动分区盘符,开始修复/手动修复,这样修复的结果引导文件和引导配置

文件都存放在选择的分区中,不影响活动分区的引导,再在界面点击“查看

”和“查看BCD”检查程序运行结果。因此实测NTBOOTAUTOFIX

修复效果如下:指定分区(一般是活动分区,实测中选择的是J盘非活动分区)

根目录下重建BOOT文件夹、bootmgr文件、文件、

件、文件、ntldr文件。NTBOOTAUTOFIX文件几百K,怎么

能重建那么大的引导文件,因为是使用WINDOWS命令(如bcdbootbootrec

等)重建的,因此WINDOWS系统文件必须存在。另NTBOOTAUTOFIX在活

动分区修复将重写MBRPBR

另外windowssystem32文件夹下有文件,在cmd中执行bcdedit

即可查看当前BCD系统内容,以XP下查看为例:

C: bcdedit

Windows 启动管理器

--------------------

标识符 {bootmgr}

device partition=C:

description Windows Boot Manager

locale zh-CN

inherit {globalsettings}

default {ntldr}

resumeobject {bf8b33ac-cda9-11e5-8013-00188b2006e7}

displayorder {bf8b33ad-cda9-11e5-8013-00188b2006e7}

{ntldr}

toolsdisplayorder {memdiag}

timeout 6

Windows 启动加载器

-------------------

标识符 {bf8b33ad-cda9-11e5-8013-00188b2006e7}

device partition=D:

path

description Windows 7 Ultimate x86

locale zh-CN

loadoptions DDISABLE_INTEGRITY_CHECKS

inherit {bootloadersettings}

nointegritychecks Yes

osdevice partition=D:

systemroot windows

resumeobject {bf8b33ac-cda9-11e5-8013-00188b2006e7}

nx OptIn

detecthal Yes

Windows OS 加载器

------------------------

标识符 {ntldr}

device boot

path ntldr

description WINXP & Ghost

查看第一段Windows 启动管理器中的device partition=C:,这个C盘在XP

下和WIN7下的盘符不一样,WIN7D盘。那么BCD系统究竟是如何工作的,

在进入Windows系统之前,究竟应该进入哪个盘符去找相应的引导文件呢?为

此重启进入WIN7系统,执行bcdedit后发现device partition=D:,该项自动变成

WIN7下的XP分区(第1硬盘的主活动分区)因此BCD系统中定义的device

位置和盘符没有关系,推断BCD系统有更底层的分区标识方法,该标识在不同

系统下是唯一的,进入系统后自动匹配当前系统为分区分配的盘符。盘符位置只

是为了给用户直观的表示,因此不需要担心盘符变动的问题。

四、 纪实现象原因分析

纪实现象中存在部分问题虽已解决,但原因不明,经上述引导方式总结分析

如下:

1、第六步中现象:选择“早期的Windows版本”,进入后没有XP的选择菜

单(即原XPGhost的两行菜单)而直接进入XP,滚动条结束进入蓝色画面,

屏幕就不动了,硬盘灯不闪。

原因分析:第三步中使用NTBOOTAUTOFIX进行自动修复后,C盘重建

BOOT文件夹、bootmgr文件、文件(文件、

文件、ntldr文件在原XP系统已有),重写MBRPBR。之

后正常的启动方式应为:MBR找到PBR再由PBR搜寻分区内的启动管理器文

BOOTMGRWIN7作为双系统主引导程序)BOOTMGR被找到后,控制

权就交给了BOOTMGRBOOTMGR读取bootbcd文件,显示WIN7启动菜单,

WIN7XPWIN7

,如选择XP则启动主活动分区下的NTLDR

然后通过文件进入XP启动菜单。但第三步修复引导后,进入WIN7

装程序,可能有所变化。观察发现CBOOT文件夹、bootmgr文件的创建时间

文件晚了十多分钟,因此应是NTBOOTAUTOFIX创建后,WIN7

装程序又对BOOT文件夹、bootmgr文件进行了重写。重写期间可能修改了参数

或其他原因,导致XP进入不正常,因此需要使用NTBOOTAUTOFIX重新修复。

2、第六步中现象:再次重启选择“早期的Windows版本”即可进入XP

动选择菜单,菜单中有三项,前两项均为XP,第三项为Ghost。选择第一个XP

后进入了第2块硬盘残留的XP系统,重启后选择第二个顺利进入了原XP系统。

原因分析:重测NTBOOTAUTOFIX的修复效果,见第三大点中的描述。

文件重建如下:

[boot loader]

default=multi(0)disk(0)rdisk(1)partition(1)windows

timeout=6

[operating systems]

multi(0)disk(0)rdisk(1)partition(1)windows="Microsoft Windows XP x86 "

/NOEXECUTE=OPTIN /FASTDETECT

multi(0)disk(0)rdisk(0)partition(1)windows="Microsoft Windows XP x86 "

/NOEXECUTE=OPTIN /FASTDETECT

由此发现XP菜单首选默认为第2块硬盘主引导分区的XP系统,因此第2

选项才是需要的第1块硬盘的XP系统,因此修改默认选项,删除第1选项即可。