![为什么在 Windows 10 上启用 Hyper-V 后 VirtualBox 或 VMware 无法运行](https://linux22.com/image/1530016/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%20Windows%2010%20%E4%B8%8A%E5%90%AF%E7%94%A8%20Hyper-V%20%E5%90%8E%20VirtualBox%20%E6%88%96%20VMware%20%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C.png)
我正在运行 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 所需的功能将不会显示” - 那么它仍然没有被禁用。
禁用步骤
- 进入机器的 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
- 以管理员模式打开Powershell,输入:Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor -All
等到它完成...这将告诉您操作已完成,而不是操作成功。
- 在 powershell 中输入:DISM /Online /Disable-Feature:Microsoft-Hyper-V
等到它完成...这将告诉您操作已完成,而不是操作成功。
再次检查系统信息 - Hyper-V 可能仍然阻碍......继续。
- 禁用 Windows Credential Guard 无论设置如何,这似乎都会启动 Hyper-V。
执行此操作的步骤在提供的链接中,但我会提取其中最重要的步骤:
打开微软的应用程序“本地组策略编辑器”,它已经是操作系统的一部分。
从组策略管理控制台,转到计算机配置->管理模板->系统->设备保护。
更改“打开基于虚拟化的安全性”并将其设置为“已禁用”。
现在,按照典型的 Windows 关机过程重新启动。
再次登录后,运行 systeminfo ,它应该会显示
现在的情况是这样的:
Hyper-V 要求:VM 监控模式扩展:是固件中启用虚拟化:是二级地址转换:是数据执行保护可用:是
这意味着 VT-x CPU 扩展不会被 Hyper-V 窃取,并且像 VirtualBox 这样的 Type-2 虚拟化引擎可以直接使用 VT-x 来大幅加快速度。
我预计其他 VM 技术也将从中受益,Hyper-V 从其他 VM 技术中窃取了 VT-x 接口,几乎可以保证随着时间的推移,Windows 平台将不会用作主机操作系统。
对于普通用户来说,禁用此功能非常困难,不幸的是,这确实阻碍了任何在 Windows 上使用 VM 技术的人,因为任何虚拟化运行起来都非常慢。
祝你好运。如果你发现这需要更多细节,请添加说明。