我正在运行带有 Hyper-V 的 VirtualBox 6.1.4,但是当我尝试打开 VM 时出现以下错误:
Failed to open a session for the virtual machine vagrant_default_1583698990398_29087.
VMMR0_DO_NEM_INIT_VM failed: VERR_NEM_MISSING_KERNEL_API (VERR_NEM_MISSING_KERNEL_API).
VT-x is not available (VERR_VMX_NO_VMX).
Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
根据https://www.virtualbox.org/wiki/Changelog-6.0VirtualBox 6.0.0 引入了 Hyper-V 支持。引用如下:
增加了使用 Hyper-V 作为 Windows 主机上的后备执行核心的支持,以避免无法以性能降低为代价运行虚拟机
那么,到底是怎么回事?Hyper-V 是否受支持?
我正在运行 Microsoft Windows [版本 10.0.18363.657]。“应用和功能”显示我已安装的内容如下:https://pastebin.com/dJrg7yD8。“打开或关闭 Windows 功能”的内容如下:https://pastebin.com/6RT0xeN0
答案1
我有虚拟机6.1.26安装并启用 Hyper-V 后完美运行,因为我也运行 Docker,所以我需要它。
我升级时犯了错误我的虚拟盒版本(至 6.1.28),接下来的事情就是我无法在启用 Hyper-V 的情况下运行。必须再次降级才能使其正常运行。
要点可能是,如果您的虚拟机已经运行,请不要急于更新它。
--
我现在想起来为什么几年前我开始使用 VMWare,因为更新 virtualbox 通常会破坏我的虚拟机。这很可悲,因为他们宣传在启动时始终会发布新版本。
答案2
此问题是由于启用了核心隔离Windows 中的功能会随着多个版本的 Windows 功能包更新而自动启用,包括Windows 更新包 20H2和别的。
如果你没有硬件支持核心隔离,Virtualbox 可以在任何系统上启用 Hyper-V 角色并运行VT-x正常启用,这解释了为什么许多用户不会遇到您的问题。但是,如果您的系统支持许多硬件安全功能中的一些功能(例如任何具有 TPM 2.0 硬件安全性的 Windows 11 系统),您可能会遇到此问题,因为当核心隔离启用该功能后,Windows 将混淆VT-x来自主要运行 Windows 环境的硬件虚拟化支持(在旧的 Xen 用语中称为“dom0”,Hyper-V 最初基于此)。
最简单的方法是使用 Microsoft 提供的 Device Guard 和 Credential Guard 硬件准备工具来禁用必要的硬件安全功能:https://www.microsoft.com/en-us/download/details.aspx?id=53337
然后禁用:
DG_Readiness_Tool_v3.5.ps1 -Disable -AutoReboot
您可以在这里找到有关该功能的其他信息: https://support.microsoft.com/en-us/windows/device-protection-in-windows-security-afa11526-de57-b1c5-599f-3a4c6a61c5e2#hardwarescore
请注意,这将禁用这些安全功能,这些功能会带来预期的风险,您必须自行评估(但您的系统将处于与启用这些功能之前相同的状态)。