更改默认启动选项而不丢失启动菜单

更改默认启动选项而不丢失启动菜单

我有一个使用 Windows 引导加载程序的多重引导设置,其中包含两个 Windows 7 系统的菜单项,以及一个GRUB。GRUB 反过来包含多个菜单项,但我认为这与此无关。我已将一个系统升级到 Windows 8。当我现在将另一个系统设置为默认系统时,我失去了启动菜单,并且失去了启动到其他系统的可能性。我已将 Windows 7 设置为默认系统,重新启动并获得 Windows 7,但我无法选择要启动到哪个系统。我可以运行它自己的BCD编辑将默认设置改回 Windows 8,再次重新启动后会再次显示启动菜单,但如何避免默认设置为 Windows 8?

这是我当前的启动设置。有什么配置错误吗?

C:\WINDOWS\system32>bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=F:
description             Windows Boot Manager
locale                  nl-NL
inherit                 {globalsettings}
integrityservices       Enable
default                 {current}
resumeobject            {2f8b77f0-a30b-11e1-a9c6-a4bd8d37f662}
displayorder            {current}
                        {2f8b77e3-a30b-11e1-a9c6-a4bd8d37f662}
                        {2f8b77ee-a30b-11e1-a9c6-a4bd8d37f662}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.exe
description             Windows 8
locale                  nl-NL
inherit                 {bootloadersettings}
integrityservices       Enable
recoveryenabled         No
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {2f8b77f0-a30b-11e1-a9c6-a4bd8d37f662}
nx                      OptIn
bootmenupolicy          Standard

Windows Boot Loader
-------------------
identifier              {2f8b77e3-a30b-11e1-a9c6-a4bd8d37f662}
device                  partition=D:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  nl-NL
osdevice                partition=D:
systemroot              \Windows
resumeobject            {59616f59-a2ba-11e1-b73a-806e6f6e6963}
nx                      OptIn
pae                     Default
bootmenupolicy          Standard
hypervisorlaunchtype    Auto
detecthal               Yes
sos                     No
debug                   No

Real-mode Boot Sector
---------------------
identifier              {2f8b77ee-a30b-11e1-a9c6-a4bd8d37f662}
device                  partition=C:
path                    \grub\winloader\grub.boot
description             Grub 2

答案1

billc.cn 的回答意外地给我指明了正确的方向。当我将默认启动项更改为GRUB,无需执行任何其他操作,我得到了旧的启动界面,启动会等待 30 秒才能加载 GRUB。这也是我希望 Windows 7 具有的行为。在查看差异时,为什么它适用于一个,而不适用于另一个,我发现:

Windows Boot Loader
-------------------
identifier              {2f8b77e3-a30b-11e1-a9c6-a4bd8d37f662}
device                  partition=D:
path                    \Windows\system32\winload.exe
description             Windows 7
...
bootmenupolicy          Standard

这是假的。bootmenupolicy Standard是新的 Windows 8 图形启动菜单。由于此菜单项适用于没有该菜单项的 Windows 7,因此应将其设置为bootmenupolicy Legacy

bcdedit /set {2f8b77e3-a30b-11e1-a9c6-a4bd8d37f662} bootmenupolicy Legacy

也可以采取以下方法:完全删除该值:

bcdedit /deletevalue {2f8b77e3-a30b-11e1-a9c6-a4bd8d37f662} bootmenupolicy

这似乎是 Windows 8 升级过程中出现的问题。它改变了两个都启动菜单项添加到新的图形菜单,但它应该只对正在升级的 Windows 执行此操作。

答案2

啊,我现在明白你的问题了。可能是 Windows 8 引导加载程序将控制权移交给 Windows 7 对应程序的速度太快了(也许如果你按住 F8 就可以看到它)。

我猜你可以将主引导程序更改为 Grub 并使用其链式加载功能。你必须\boot在分离的系统分区上拥有两个 BCD 存储副本(即文件夹),并在 grub 配置文件中创建两个链式加载条目。这利用了 Windows 依赖 NTFS 分区的前几个扇区进行引导(而不是 MBR)的事实。

您必须使用工具(如 EasyBCD)来创建第二个 BCD 存储,因为上述引导扇区可能也需要更新。我建议您在 Win7 分区上创建第二个 BCD 并使用它来引导 Win7。

答案3

尝试易BCD。您可以选择默认操作系统以及更多功能以及备份和恢复选项!

相关内容