双系统重装后开机没有系统选择菜单

2024年11月20日 17:21
有3个网友回答
网友(1):

把D盘格掉,重装XP

网友(2):

点我的电脑右键-属性-高级-启动和故障恢复设置-在操作系统显示选择几秒3~还是30秒看个人怎么设置

网友(3):

如何在预装 Vista 的系统中实现和 WinXP 的双系统

问题描述
用户在预装 Vista 的电脑上把 WinXP 安装到了D盘,之后表示启动无法进入 Vista 了,如何实现双系统?

解决方案
1、首先使用 Vista 光盘在命令行模式下恢复 bootcode :
bootsect /nt60 c: /force

2、进入 Vista 后用管理员模式的命令行工具恢复 BCD ,把{ntldr}节点显示在 bootmgr 最后:
bcdedit -displayorder {ntldr} -addlast

如果深入调节,可能用到如下命令:
bcdedit -delete {ntldr} -f 删除{ntldr}节点
bcdedit -create {ntldr} -d “Windows XP” 创建{ntldr}节点
bcdedit -set {ntldr} device partition=c: 编辑{ntldr}节点信息,设置默认分区
bcdedit -set {ntldr} path \ntldr 编辑{ntldr}节点信息,设置ntldr路径

问题分析
这个问题要从XP的引导过程说起。
硬盘从00 00位置开始的512字节的 MultiBootRecord(MBR) 到 FF FF 。记录4个主分区信息。接下来的位置保存了一段 bootcode 代码,这是非文件形式的汇编代码,自检后,这段代码把系统控制权交给硬盘第一个分区 ntldr 。 之后是 boot.ini ,选择启动的系统后 load 注册表,交控制权给 ntoskrnl ,然后加载驱动,系统配置等等。

Vista 的引导过程有所不同。 首先 bootcode 不同,这段代码不再找 ntldr ,而是找 bootmgr,这个文件也是保存在硬盘第一个分区的根目录下。之后,bootmgr 去找同路径下的 \boot\BCD ,BCD 这个文件实际是一个注册表文件,里面的数据保存了系统的引导信息,如果是多系统引导,会提供引导的界面内容。 加载引导信息后控制权会交给 winload.exe ,之后再去找 ntoskrnl.exe 。

由此我们可以知道,在安装系统的过程中,安装程序一定会去更新 bootcode ,以便使系统能够进入正确的引导过程。如果在装好 Vista 的机器上安装了 XP , bootcode 会被修改为适用于 XP 的,从而导致系统无法进入 Vista 的引导过程,无法进入 Vista 。

1、如果要能够进入 Vista ,首先需要更新这段 bootcode 。

(1)、我们进入XP后,使用 Vista 的系统安装光盘,找到如下文件:X:\BOOT\bootsect.exe ,然后在命令行下如下运行:
bootsect /nt60 c: /force

(2)、这样,bootcode 就恢复成支持 Vista 的了。之后取出光盘,重新启动计算机,系统会自动进入Vista。

2、我们已经恢复了 Vista 的引导,现在需要实现双系统。

(1)、以管理员模式运行命令行,然后输入如下命令:
bcdedit -displayorder {ntldr} -addlast
如果成功,会提示:“操作成功完成”。

(2)、然后再次重新启动计算机,我们将看到Windows启动管理器的界面:

(3)、默认还是30秒钟的等待时间,超过后会自动进入默认选项。
注意,这个界面不是 boot.ini 提供的,而是 bootmgr 从 BCD 中读取的信息。如果选择“早期版本的Windows”,系统会继续找 ntldr ,从而进入XP的引导过程。

4、上面是比较理想的情况,如果输入Bcdedit -displayorder {ntldr} -addlast后提示出错,或者重新引导系统没有成功进入 Windows 启动管理器,我们需要作一些调试操作了。

(1)、进入 Vista 后,使用管理员模式打开 cmd ,然后使用如下命令查看 BCD 中显示的内容:

bcdedit

(2)、这张图可以看出 BCD 内部的数据。一个根节点是“Windows 启动管理器”,下面有两个加载节点,一个是旧OS的,这里就是XP,标识符是{ntldr}。还有一个是 Vista 的,标识符是{current}. 如果这里看不到旧 OS 加载器,可能是 BCD 的{ntldr}节点出问题造成了,我们可以删除重建:
bcdedit -delete {ntldr} -f

(3)、下图是删除后的状态,可能看不出和之前的区别,只要看到成功的提示即可:

(4)、使用如下命令创建节点:
bcdedit -create {ntldr} -d “Windows XP”
后面引号中的内容是最后界面上提示的内容,可以随意输入。

(5)、再使用如下命令设置节点参数,要完成引导,需要设置两个参数:
bcdedit -set {ntldr} device partition=c:
bcdedit -set {ntldr} path \ntldr
一个是设置了默认的系统分区路径,一个是设置了 ntldr 这个文件的位置。
设置好之后,我们就重新建立的{ntldr}节点,虽然我们在 bcdedit 中看不到。
最后我们再用最初使用过的这条命令让这个节点出现在 bootmgr 界面的最下方:
bcdedit -displayorder {ntldr} -addlast
如图:

(6)、再次重新启动,一般可以看到多系统引导的界面了。