为什么在 Windows 10 上启用 Hyper-V 后 VirtualBox 或 VMware 无法运行

为什么在 Windows 10 上启用 Hyper-V 后 VirtualBox 或 VMware 无法运行

我正在运行 Windows 10 Pro 64 位,并启用了 Hyper-V 和 Intel VT-x 虚拟化技术。当我尝试运行 VirtualBox 64 位时,Windows 进入 BSOD。当我运行 VMware 时,它​​会显示错误。

为什么 VirtualBox 和 VMware 无法在启用 Hyper-V 的情况下运行?请详细说明,包括硬件和软件。我想知道此错误的内部原因。

以下是我的一些发现。大多数网站建议使用 BCDedit 添加启动项或使用 BCDedit 禁用 Hyper-V。例如创建“无虚拟机管理程序”启动项在同一台机器上运行 Hyper-V 和 VirtualBox。 但是我能跑量子计算单元使用 Hyper-V。Qemu 与 Hyper-V 均未出现任何错误,并且运行顺畅。

答案1

VirtualBox 和 VMware Workstation(以及 VMware Player)是“2 级虚拟机管理程序”。Hyper-V 和 VMware ESXi 是“1 级虚拟机管理程序”。

主要区别在于,2 级虚拟机管理程序是在现有操作系统内运行的应用程序,而 1 级虚拟机管理程序是操作系统本身。

这意味着当您启用 Hyper-V 时,您的 Windows 10“主机”将成为虚拟机。虽然很特殊,但仍然是虚拟机。

因此,您的问题更确切地说是:“为什么 VirtualBox 和 VMware Workstation 不能在 Hyper-V 虚拟机中工作?” 可以回答,因为作为虚拟机,Intel VT-X 指令不再可从虚拟机访问,只有主机可以访问它。

QEMU 之所以能工作,是因为它不进行虚拟化,而是进行模拟,这完全不同,也解释了 QEMU 为何如此缓慢。虚拟化是在另一台机器内部运行完全独立的机器的过程,但需要借助处理器。这要求虚拟机和主机的指令兼容。

模拟是在正在运行的操作系统内运行任何机器的过程,没有平台限制,这就是为什么 QEMU 可以在 amd64 平台上运行 ARM 机器。

注意:QEMU 有两种操作模式:

  • 它可以作为一个模拟器工作,这是上面解释的模式
  • 如果客户机架构与主机架构兼容,并且存在 VT 指令,它可以在 KVM 的帮助下作为虚拟化软件工作。

答案2

从 Windows Redstone 4 版本开始,QEMU 将能够通过使用Windows 虚拟机管理程序平台 API

Windows Hypervisor Platform 加速器 (WHPX) 正在集成到 QEMU补丁已提交合并

Windows Hypervisor Platform API 将包含在红石4号建造

对 WHPX 的实验支持包括在QEMU 2.12

更新:Virtualbox 6.0 增加了对 WHPX 的支持Virtualbox 6.0 更新日志

更新 2:VMWare 将在即将推出的 VMWare Workstation 和 fusion 版本中添加对 WHPX 的支持。 VMware Workstation 与 Hyper-V – 协同工作

更新 3:初始 VMWare Workstation 版本,支持 WHPX。软件要求为 Windows Insiders 最低版本号 19041。硬件要求为 Intel Haswell 或更新 CPU、AMD Bulldozer 或更新 CPU。VMware Workstation 技术预览版 20H1 — Hyper-V/Host VBS 支持

答案3

即使启用了 Hyper-v,Vmware 15.5+ 仍可运行

随着 VMware Workstation/Player 15.5.5 的发布,我们非常高兴和自豪地宣布支持启用 Hyper-V 模式的 Windows 主机!您可能知道,这是 Microsoft 和 VMware 的联合项目。

答案4

以下是对我有用的方法。

您需要检查以确保 Hyper-V 没有运行。

告密测试正在从命令提示符运行“systeminfo”,如果您看到“已检测到虚拟机管理程序。 Hyper-V 所需的功能将不会显示” - 那么它仍然没有被禁用。

禁用步骤

  1. 进入机器的 BIOS(通常是 UEFI),然后禁用 TPM!否则以下步骤均不起作用!!

使用 F2 启动计算机进入 BIOS 设置模式(备用键包括“Enter”或“Delete”)。或者使用 Windows 方法通过“设置”应用程序进入该模式(参考:https://www.maketecheasier.com/boot-uefi-from-windows10/

进入 UEFI BIOS 后:找到“安全”选项并展开,找到嵌套在“安全”设置下的“TPM”选项。要清除 TPM,您必须选中以下复选框:“清除”以清除 TPM,或“禁用”,具体取决于您的硬件制造商

在 UEFI 界面保存这些设置,BIOS 可能会要求您重新启动(按照以下步骤操作)

正常启动...您可能看不到任何差异。

检查:systeminfo 它应该仍然抱怨Hyper-V

  1. 以管理员模式打开Powershell,输入:Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor -All

等到它完成...这将告诉您操作已完成,而不是操作成功。

  1. 在 powershell 中输入:DISM /Online /Disable-Feature:Microsoft-Hyper-V

等到它完成...这将告诉您操作已完成,而不是操作成功。

再次检查系统信息 - Hyper-V 可能仍然阻碍......继续。

  1. 禁用 Windows Credential Guard 无论设置如何,这似乎都会启动 Hyper-V。

执行此操作的步骤在提供的链接中,但我会提取其中最重要的步骤:

https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage

打开微软的应用程序“本地组策略编辑器”,它已经是操作系统的一部分。

从组策略管理控制台,转到计算机配置->管理模板->系统->设备保护。

更改“打开基于虚拟化的安全性”并将其设置为“已禁用”。

  1. 现在,按照典型的 Windows 关机过程重新启动。

  2. 再次登录后,运行 systeminfo ,它应该会显示

现在的情况是这样的:

Hyper-V 要求:VM 监控模式扩展:是固件中启用虚拟化:是二级地址转换:是数据执行保护可用:是

这意味着 VT-x CPU 扩展不会被 Hyper-V 窃取,并且像 VirtualBox 这样的 Type-2 虚拟化引擎可以直接使用 VT-x 来大幅加快速度。

我预计其他 VM 技术也将从中受益,Hyper-V 从其他 VM 技术中窃取了 VT-x 接口,几乎可以保证随着时间的推移,Windows 平台将不会用作主机操作系统。

对于普通用户来说,禁用此功能非常困难,不幸的是,这确实阻碍了任何在 Windows 上使用 VM 技术的人,因为任何虚拟化运行起来都非常慢。

祝你好运。如果你发现这需要更多细节,请添加说明。

相关内容