Win8.1 在启动时会冻结,并且 hypervisorlaunchtype=Off,除非我短暂断开 SSD

Win8.1 在启动时会冻结,并且 hypervisorlaunchtype=Off,除非我短暂断开 SSD

我有一台 2012 年的联想 ThinkPad X1(型号 12943QG),运行 Windows 8.1 x64。我已将笔记本电脑升级为 512GB 的三星 840 PRO SSD,用作系统驱动器,而不是微型 128GB 原装英特尔 SSD。三星 SSD 具有最新的固件版本,Windows 安装已完全修补,并且我正在运行我能找到的适用于这台相对较旧机器的最新驱动程序版本。

我已将机器设置为具有 2 个适用于 Windows 8.1 的引导加载程序,一个启用了 Hyper-V,另一个禁用了 Hyper-V。当我需要使用 VirtualBox 时,我会使用后者,VirtualBox 需要禁用 Hyper-V 才能运行自己的虚拟机管理程序。我最初使用 创建了 Hyper-V 禁用的引导加载程序bcdedit \copy ...,如所述这里。但我总是无法启动它。创建引导加载程序后,它往往会工作一次,但重新启动机器后,它会挂在蓝色的 Windows 徽标上,只留下启用 Hyper-V 的引导加载程序。我尝试多次重新创建引导加载程序(也使用bcdedit /create而不是/copy),最终我甚至从头开始重建了整个 bcd 存储。但都无济于事:Hyper-V 禁用的引导加载程序在每次第二次启动尝试时都会挂起。

然而,经过多次尝试和错误,我发现了一种简单但令人困惑的方法,每次启动时都会进入 Hyper-V 禁用模式。信不信由你,但诀窍是:

  • 完全关闭笔记本电脑;
  • 拉出 SSD 然后立即将其滑回;
  • 打开笔记本电脑的电源。

之后,Windows 8.1 可以毫无问题地启动到 Hyper-V 禁用模式。但令人恼火的是,每次我想在重启后进入此模式时,我都需要这样做(即使在此期间没有使用 Hyper-V 启用模式)。显然这是在浪费时间,而且由于我经常在旅途中工作,这也意味着我需要随身携带一把螺丝刀,以便在我想要重启时打开驱动器盖。

我大概有两个问题:

  • 什么原因导致了这种奇怪的情况?
  • 是否有其他方法可以实现相同的结果而不需要物理断开 SSD?

如果有关系的话这是我当前的 bcd 配置:

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  en-UK
inherit                 {globalsettings}
integrityservices       Enable
default                 {default}
resumeobject            {cecf0999-8220-11e5-82e0-806e6f6e6963}
displayorder            {default}
                        {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 8.1 (Hyper-V enabled)
locale                  en-UK
inherit                 {bootloadersettings}
integrityservices       Enable
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {1c96e7d5-8220-11e5-82dd-806e6f6e6963}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 8.1 (Hyper-V disabled)
locale                  en-UK
inherit                 {bootloadersettings}
integrityservices       Enable
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {cecf0999-8220-11e5-82e0-806e6f6e6963}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Off

提前致谢!

答案1

我在使用 Lenovo ThinkPad T420 Windows 8.1 Pro 64 位时遇到了类似的问题。我需要带有 Laravel Homestead 的 Virtual Box,但 VM 无法运行,错误消息是关于未启用 VT-x/AMD-V。快速搜索后发现必须删除或禁用 Hyper-V。首先,我尝试通过在“打开或关闭 Windows 功能”页面中取消选择整个 Hyper-V 组来将其完全删除。重启后,系统正常启动,直到蓝色 Windows 徽标消失,此时系统冻结。尝试了几次,取下电池和电源线,但没有帮助。不得不使用成功运行的还原点执行系统恢复。然后在 Hyper-V 处于活动状态的恢复系统上,我尝试了第二种方法,使用引导加载程序条目的副本(bcdedit 副本和 hypervisorlaunchtype 关闭)。现在的结果是一样的,系统启动直到蓝色徽标消失,然后冻结。幸运的是,这次我能够正常启动,这要归功于引导加载程序中保留的默认选择。注意:我没有尝试断开硬盘的技巧。

PS 这本来是作为评论,但由于限制,我无法添加它。:(

编辑:在将 BIOS 虚拟化设置更改为以下内容后,能够在禁用 Hyper-V 的情况下启动并使用 VirtualBox:

  • Intel(R)虚拟化技术:已启用
  • 英特尔(R)VT-d 功能:已禁用

事实证明,VT-d 功能会导致启动过程中出现挂起问题。也许这对你的情况也有帮助。

相关内容