在解决故障之前,我们先来了解一下启动管理器的工作模式。在XP+Vista双系统中,Vista使用bootmgr接管系统启动模式。电脑自检完成后,开始查找活动主分区(一般情况是C:)并加载它。
接着会继续读取活动分区下的启动配置文件(即C:BOOTBCD)和c:boot.ini,根据BCD和Boot.ini存储的启动信息列出启动菜单(也就是双系统启动菜单)。对于双系统用户通常列出“Microsoft WindowsVista”和“旧版本的Windows”。
如果选择前者,Bootmgr将控制权交给Vista系统目录下的Winload.exe 然后开始启动Vista。选择后者,Bootmgr将控制权交给NTLDR,接着开始读取c:boot.ini并列出其中配置的启动菜单。
启动故障就主要出现在Bootmgr(如该文件丢失)、BCD(启动信息配置错误)、Winload.exe(该文件丢失导致Vista无法启动)、Ntldr(该文件丢失导致XP无法启动)这些文件上。
在本例故障中,由于上述文件均已备份,因此恢复后导致双系统启动故障的原因应该就是BCD启动信息出错。把故障电脑的C:BOOTBCD复制到正常电脑上的d:,运行“bcdedit.exe d:bcd”(bcdedit.exe可以从安装Vista电脑上的c:windows" onclick="tagshow(event)" class="t_tag">windowssystem32提取)可以看到其中Device显示为unknown。
故障是由于Bootmgr找不到启动分区所致,因此修复的方法就是重建正常的启动配置文件。
现在两个系统都无法进入,如何重建BCD启动信息?一般的方法是借助Vista安装光盘进行自动修复。如果没有安装光盘怎么办?可以通过修改Boot.ini文件“曲线”进入XP,然后在XP中使用EasyBCD重建BCD。因为在加载Bootmgr时,还会读取c:boot.ini中根目录启动信息。
比如,安装一键Ghost的用户,Boot.ini中一键Ghost启动菜单也会出现在多重启动中。这时,我们要进入DOS修改Boot.ini文件,在其中添加NTLDR启动项即可绕开BCD进入XP。