巧改Boot.ini修复XP和Vista系统启动故障

作者:安徽 俞木发
亦可:我在电脑上安装XP Vista双系统 , 成功安装双系统后已经使用Ghost做了备份 。可是近日使用Ghost恢复系统后 , 虽然出现启动菜单 , 但是选择任意一个系统都无法进入了 。请问董师傅 , 对于双系统启动故障有什么好的修复方法?
董师傅:由于Vista采用启动管理器(Bootmgr)启动方式 , 这使得安装双系统的用户经常遭遇启动故障 , 其中两个系统都无法启动的故障最为严重 。因此 , 今天董师傅就介绍如何对付这种“最严重”的启动顽症 。为了叙述的方便 , 这里双系统是指C盘装XP , D盘装Vista 。
在解决故障之前 , 我们先来了解一下启动管理器的工作模式 。在XP Vista双系统中 , Vista使用bootmgr接管系统启动模式 。电脑自检完成后 , 开始查找活动主分区(一般情况是C:)并加载它 。接着会继续读取活动分区下的启动配置文件(即C:BOOTBCD)和c:boot.ini , 根据BCD和Boot.ini存储的启动信息列出启动菜单(也就是双系统启动菜单) 。对于双系统用户通常列出“Microsoft Windows Vista”和“旧版本的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(图1) 。故障是由于Bootmgr找不到启动分区所致 , 因此修复的方法就是重建正常的启动配置文件 。

图1 Device显示为unknown
现在两个系统都无法进入 , 如何重建BCD启动信息?一般的方法是借助Vista安装光盘进行自动修复 。如果没有安装光盘怎么办?可以通过修改Boot.ini文件“曲线”进入XP , 然后在XP中使用EasyBCD重建BCD 。因为在加载Bootmgr时 , 还会读取c:boot.ini中根目录启动信息 。比如 , 安装一键Ghost的用户 , Boot.ini中一键Ghost启动菜单也会出现在多重启动中 。这时 , 我们要进入Dos修改Boot.ini文件 , 在其中添加NTLDR启动项即可绕开BCD进入XP 。
Vista安装光盘进行自动修复方法
使用Vista安装光盘启动电脑后 , 在出现安装界面时单击左下角的“修复计算机” 。系统会自动检测到本机出现引导故障 , 我们只要按提示单击“修复并重新启动” , 系统就会自动修复故障(图2) 。重启后在多重启动菜单中选择“Microsoft Windows Vista(已修复)”即可进入Vista 。进入Vista后也可以使用EasyBCD删除失效XP菜单并重新添加XP启动 。

图2 单击“修复并重新启动”
第一步:准备一张Windows 98启动光盘 , 进入BIOS将光驱设置为第一启动 , 进入Dos后依次输入下列命令编辑Boot.ini:
attrib -s -h -r c:boot.ini(取消该文件的系统、隐藏、只读属性)
edit c:boot.ini
在Edit文本编辑器打开Boot.ini后 , 在文件最后添加c:ntldr=“XP” , 然后保存 。
提示:如果你的C盘是NTFS分区 , 则需要加载NTFSDOS才能访问并写入数据 。或者使用深山红叶PE光盘引导系统进行修改 。
第二步:重启电脑 , 在启动管理器多重启动菜单中就会出现“XP”菜单 , 选择它后开始启动XP , 在boot.ini加载多重启动菜单选择“Windows XP professional”(即原来XP , 不可以选择上述添加的XP菜单 , 否则会重启) 。

推荐阅读