如何恢复Windows 7和xp双启动菜单问题解决办法

写在前面的话:
由于第一次遇到这样的问题 , 不知道如何解决 , 在群里问了半天没有回答 , 在论坛里求助也没有结果 , 所以只好自己在网上找资料研究 , 我没有接触过visit , 刚知道是因为它和XP的启动原理不同造成的 , 可能有的高手都知道解决方法 , 但网上关于这方面的资料不多 , 而且求助的人却不少 , 而自己刚好弄明白 , 拿出来和大家共同分享一下 , 有什么不对的地方还希望多提意见 。我刚刚测试过可行

首先说一下我遇到具体问题:
我首先在C盘装了windows xp , 然后接着在D盘装的windows 7 。这样用着一切正常 , 因为我原来备份的有xp系统 , 所以我用一键还原把C盘给还原了 , 但问题也就出来了 , 在系统启动项那只有windows xp和一键还原两个选项 , 没有办法进入windows 7系统 , 因为我没有接触过windows visit , 直接从xp到windows 7 , 所以对它的启动原理不很了解 , 所以我研究了一下午才把问题解决了 , 顺便也了解了windows 7系统的启动原理 。

解决问题前我们先来了解一下windows xp和windows 7的启动原理有何不同 , 双系统又是如何启动的:
在windows 7 xp双系统中 , windows 7使用bootmgr接管系统启动模式 。电脑自检完成后 , 开始查找活动主分区(一般情况是C:)并加载它 。
接着会继续读取活动分区下的启动配置文件(即C:BOOTBCD)和c:boot.ini , 根据BCD和Boot.ini存储的启动信息列出启动菜单(也就是双系统启动菜单) 。对于双系统用户通常列出“Microsoft Windows 7”和“旧版本的Windows” 。
如果选择前者 , Bootmgr将控制权交给windows 7系统目录下的Winload.exe (在windowssystems下)然后开始启动windows 7 。选择后者 , Bootmgr将控制权交给NTLDR , 接着开始读取c:boot.ini并列出其中配置的启动菜单 。
启动故障就主要出现在Bootmgr(如该文件丢失)、BCD(启动信息配置错误)、Winload.exe(该文件丢失导致Vista无法启动)、Ntldr(该文件丢失导致XP无法启动)这些文件上 。(我的情况属于bootmgr文件丢失 , BCD文件启动信息配置错误)
下面我们来解决问题:
首先我们需要几个备份文件(bootmgr,ntldt,bcd,bootsect) , 如果你有windows 7系统盘或者镜像的话可以直接从中提取 。
还有一个工具——EasyBCD
注意:在XP下EasyBCD的运行需要Microsoft .NET Framework2.0的支持 , 可以到http://msdn2.microsoft.com/zh-cn/vstudio/default.aspx下载安装 。
以下操作都是在windows XP中进行 , 因为又隐藏文件和系统文件 , 所以最好显示系统和隐藏文件 , 在文件夹选项里点击查看 , 去掉隐藏受保护的系统文件(推荐)并选择选择显示所以文件和文件夹 。
把bootmgr,ntldt(一般C盘下有 , 不用复制)复制到C盘下 。(此C盘为默认为系统 , 按具体情况而定)
把bcd,bootsect复制到C:boot目录下
然后运行EasyBCD
切换到左侧的“ADD/Remove Entries” , 在右侧窗格选中原来无效的启动菜单 , 单击Delete删除 , 接着在Add An Entry下添加启动项 。添加XP启动则在Version选择“Windows NT/200/XP”、Drive选择C:、Name设置为Windows XP(图3) 。同上 , 添加windows 7的启动项(Version选择Windows Vista/longhom、Drive选择D:、Name设置为Windows 7) , 完成后单击ADD Entry保存配置 。

然后打开“运行” (开始〉运行) , 输入 cmd
进入C:boot目录下输入 “bootsect /nt60 C:” (删除是nt52 , 不带双引号)
最后重新启动
最后的话:
每个人遇到的问题可能与我有所不同 , 据自己情况具体解决 , 以上只是个参考 , 我在网上找这方面的资料发现不是很多 , 还有好多是修改boot.ini , 有的不能解决问题 , 有的又特别麻烦 。遇到问题多思考 , 多在网上找找资料 , 总能解决问题的 。

推荐阅读