2023年11月24日发(作者:)
WIN7、XP双系统安装纪实及引导方式总结
一、 双系统常用引导方式
目前常见的双系统引导方式有两种,一是传统的由高级别的Windows系统
来作为主引导,其中包含了对低级别Windows系统的分引导,通过引导程序跳
转实现双系统的启动选择;二是近几年流传的双系统独立启动,通过安装第三方
引导软件,在正式启动前对活动的主引导分区进行切换,以此选择启动的操作系
统。后者好处是引导程序不依赖其中一个操作系统,即不论双系统的哪个系统崩
溃,都不会影响另一个系统的正常引导,但缺点是每次启动切换时会反复写MBR
(Master Boot Record)或是PBR(Partition Boot Record),这两个关键性引导
记录经常性改写存在风险。
二、 WIN7、XP双系统安装、引导纪实
2016年2月7日至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的选择菜单(即原XP、Ghost的两行菜单)而直接进
入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秒。至此WIN7和XP引导问题全部得以解决,最终效果:启动后进入
WIN7菜单,默认为“WINXP & Ghost”,停留几秒,选择后进入XP菜单,共两
项,第一项为XP,第二项为Ghost。
三、 引导方式总结
WIN7启动过程(引用网上原文):电脑加电后,首先是启动BIOS程序,
BIOS自检完毕后,找到硬盘上的主引导记录MBR(Master Boot Record),然后
由MBR读取分区表DPT((Disk Partition Table),从中找出主活动分区,读取主
活动分区的分区引导记录PBR(Partition Boot Record),最后PBR再搜寻分区内
的启动管理器文件BOOTMGR(winxp中是NTLDR),在BOOTMGR被找到后,
控制权就交给了BOOTMGR。BOOTMGR读取bootbcd文件(BCD=Boot
Configuration Data,也就是“启动配置数据”,简单地说,windows7下的bcd文
件就相当于xp下的文件),如果存在着多个操作系统并且选择操作系统
的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。在我们
选择启动WINDOWS7后,BOOTMGR就会去启动盘寻找
,然后通过加载windows7内核,从
而启动整个windows7系统。
可以把这个过程简单地概括为:BIOS-->MBR-->DPT-->PBR-->
Bootmgr-->BCD-->-->内核加载 -->启动windows7系统。
NTBOOTAUTOFIX说明文档中体验工具修复效果:例 - 选“高级”,选另
一非活动分区盘符,开始修复/手动修复,这样修复的结果引导文件和引导配置
文件都存放在选择的分区中,不影响活动分区的引导,再在界面点击“查看
”和“查看BCD”检查程序运行结果。因此实测NTBOOTAUTOFIX的
修复效果如下:指定分区(一般是活动分区,实测中选择的是J盘非活动分区)
根目录下重建BOOT文件夹、bootmgr文件、文件、文
件、文件、ntldr文件。NTBOOTAUTOFIX文件几百K,怎么
能重建那么大的引导文件,因为是使用WINDOWS命令(如bcdboot、bootrec
等)重建的,因此WINDOWS系统文件必须存在。另NTBOOTAUTOFIX在活
动分区修复将重写MBR和PBR。
另外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下的盘符不一样,WIN7是D盘。那么BCD系统究竟是如何工作的,
在进入Windows系统之前,究竟应该进入哪个盘符去找相应的引导文件呢?为
此重启进入WIN7系统,执行bcdedit后发现device partition=D:,该项自动变成
了WIN7下的XP分区(第1硬盘的主活动分区)。因此BCD系统中定义的device
位置和盘符没有关系,推断BCD系统有更底层的分区标识方法,该标识在不同
系统下是唯一的,进入系统后自动匹配当前系统为分区分配的盘符。盘符位置只
是为了给用户直观的表示,因此不需要担心盘符变动的问题。
四、 纪实现象原因分析
纪实现象中存在部分问题虽已解决,但原因不明,经上述引导方式总结分析
如下:
1、第六步中现象:选择“早期的Windows版本”,进入后没有XP的选择菜
单(即原XP、Ghost的两行菜单)而直接进入XP,滚动条结束进入蓝色画面,
屏幕就不动了,硬盘灯不闪。
原因分析:第三步中使用NTBOOTAUTOFIX进行自动修复后,在C盘重建
了BOOT文件夹、bootmgr文件、文件(文件、
文件、ntldr文件在原XP系统已有),重写MBR和PBR。之
后正常的启动方式应为:MBR找到PBR再由PBR搜寻分区内的启动管理器文
件BOOTMGR(WIN7作为双系统主引导程序),在BOOTMGR被找到后,控制
权就交给了BOOTMGR。BOOTMGR读取bootbcd文件,显示WIN7启动菜单,
包含WIN7和XP,如选择WIN7则在对应分区盘寻找并执行
,如选择XP则启动主活动分区下的NTLDR,
然后通过文件进入XP启动菜单。但第三步修复引导后,进入WIN7安
装程序,可能有所变化。观察发现C盘BOOT文件夹、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选项即可。
发布评论