VirtualBox VERR_VMX_NO_VMX

VirtualBox VERR_VMX_NO_VMX

我下载了 VirtualBox,知道我的电脑有 VT-X,并且我刚刚创建了两个虚拟机,但是当我启动它们时,我看到了这个错误:

点击此处查看

VirtualBox - 错误
无法启动虚拟机安卓.
(详细信息)
VT-x 不可用(VERR_VMX_NO_VMX)。

结果代码:E_FAIL (0x80004005)
组件:ConsoleWrap
接口:IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

[手动转录]

我之前在这台电脑上运行 VirtualBox 时没有出现任何问题。为什么现在会出现此错误?如何让 VirtualBox 正常运行?

答案1

谢谢 Hrobky,这很有帮助。在具有 UEFI BIOS 的 ASUS i7 上,不允许禁用安全启动,在没有加密的 Windows 10 上,只需执行您的解决方案中的以下 2 个步骤即可:

start->GPedit

Computer Config > Admin Templates > System > Device Guard > 
Virtualization Based Security: Disabled

admin cmd:  bcdedit /set hypervisorlaunchtype off 

然后重新启动

在 BIOS 中更改这些设置

Boot / Launch CSM : Enable

Boot / Launch CSM / Boot Device Control : UEFI and Legacy OPROM

Boot / Fast Boot : Disabled

Boot / OS Type : Other OS

答案2

如何启用 64 位客户机支持

...尽管保持安装以下组件!对于您来说,该过程可以更短。只需省略与您的设置无关的步骤即可。

  • 英特尔第六代处理器(Skylake)。我使用的是 i5-6300U(第八代不再是问题)
  • Win10 1703(内部版本 15063.1631)
  • UEFI 安全启动
  • Bitlocker
  • TrendMicro OfficeScan 防病毒软件(这个实际上不再冲突)
  • VirtualBox 6.0.4
  • Hyper-V

相关错误

  • “VT-x 不可用”VERR_VMX_NO_VMX
  • VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT
  • 在“新机器”向导对话框中仅看到 32 位操作系统版本

罪魁祸首是基于虚拟化的安全性 (VBS),它使用 Windows 嵌入式虚拟化管理程序(与 HyperV 不冲突)。本指南不是描述如何同时运行 Hyper-V 和 VirtualBox,以及如何在 Hyper-V 虚拟机管理程序上运行 VirtualBox(如变更日志 6.0.0),根据论坛的说法,这个在Win10 1703上不起作用。

你将能够转变HyperV 和 VBS 正常工作,而 VirtualBox 则需要重新启动。

评论:如果您使用 BitLocker,请在纸上准备好恢复密钥预先:-] 不过这应该不是必需的。控制面板 -> BitLocker -> 备份恢复密钥

具体操作如下:

  1. 暂时地暂停 BitLocker(=无需解密)- 这意味着直到下次重启
  2. 重启,进入 BIOS,(检查 VT-x 是否已打开),禁用安全启动,保存并退出,(应省略 BitLocker PIN 输入)
  3. 临时登录 Windows暂停 BitLocker再次
  4. 完整性检查:
    • 任务管理器:性能:您应该看到已启用虚拟化
    • 开始->msinfo:你应该看到“系统摘要”->“基于设备保护虚拟化的安全性”正在运行
    • VirtualBox 不应在客户机的系统详细信息页面中列出加速:“嵌套分页”和“VT-x”。
  5. 开始->通用编辑
    Computer Config > Admin Templates > System > Device Guard > Virtualization Based Security: Disabled
    
  6. 行政电源外壳:运行这个官方Device Guard 准备工具来自微软:https://www.microsoft.com/en-us/download/details.aspx?id=53337
    DG_Readiness_Tool_v3.6.ps1 -Disable
    
    -disable选项添加了一个启动选项以禁用 VBS,并将 bootmgr 设置为一次启动。这就是我们关闭 SecureBoot 一次的原因,也是我们需要暂停 BitLocker 的原因。
  7. 注册表编辑器删除以下值
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\LsaCfgFlags
    
  8. 行政命令
    bcdedit /set hypervisorlaunchtype off
    
    这将禁用虚拟机管理程序并允许 VirtualBox 运行。
  9. 重启,进入 BIOS,启用安全启动,保存并退出,(再次省略 BitLocker PIN 输入),(安全启动应该允许我们启动新创建的正确签名的引导加载程序)
  10. 按 F3 键禁用 Credential Guard,按 F3 键禁用 VBS(你必须动作快!大约有 10 秒的静默暂停时间!!)
  11. 计算机重启,BitLocker应该要求您输入PIN,安全启动不应该抱怨任何事情
  12. 完整性检查:
    • 开始->msinfo:你应该看到“基于设备保护虚拟化的安全性”不是跑步
    • VirtualBox 现在应该列出加速:“嵌套分页”和“VT-x”

bcdedit /set hypervisorlaunchtype auto现在,您可以通过和分别重新启动在 Hyper-V(和 VBS 运行)和 VirtualBox 之间切换bcdedit /set hypervisorlaunchtype off。不要问我为什么在 hypervisorlaunchtype 为自动时,尽管 GPedit 设置了,但 VBS 仍会再次运行 - 可能涉及一些公司设置和魔法。尽管如此,VirtualBox 的 VT-x 仍在运行 :)

我绝对不建议关闭 VBS,因为这可能与 Mimikatz / Kekeo 保护有关,而这在当今是一个大问题。希望在不久的将来,这种解决方法不会是必要的。

答案3

在设置“系统”部分的“加速”选项卡中,取消选中“硬件虚拟化:[ ] 启用 VT-x/AMD-V”单击“确定”按钮

相关内容