从Oracle虚拟机启动镜像时出现VERR_VMX_MSR_VMXON_DISABLED错误

88
我从Oracle虚拟机中加载Puppet镜像时遇到了这个错误。我该怎么解决?
Failed to open a session for the virtual machine learn-puppet-centos-6.4-pe-3.1.0.

VT-x is disabled in the BIOS. (VERR_VMX_MSR_VMXON_DISABLED).

Result Code: E_FAIL (0x80004005)
Component: Console
Interface: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}

此外,我发现 Virtual Box 中的 acellerate 选项卡被禁用了。

13个回答

104
我认为VirtualBox会因为多种原因而出现此错误。很烦人的是,这些问题只有一个错误,但我猜它们只是相同的要求,根本原因不同而已。
可能出现的问题如下:
  1. 您尚未在VirtualBox中启用VT-x,但VM需要它。
  • 启用方法:打开vbox,点击VM,点击“设置”,系统->加速->VT-x复选框。
  1. 您尚未在BIOS中启用VT-x,但需要。
  • 查看您的主板手册,但基本上您想在机器启动后立即进入BIOS(通常是DEL键,F2,F12等),然后找到“高级”标签,输入“CPU配置”,然后启用“Intel虚拟化技术 ”。
  1. 您的处理器不支持VT-x(例如Core i3)。
  • 在这种情况下,您的BIOS和VirtualBox不应允许您尝试启用VT-x(但如果它们这样做,您可能会在VM中遇到崩溃)。
  1. 您正在尝试安装或启动64位操作系统。
  • 据我所知,64位操作系统需要真正的CPU直通,这需要VT-x。(VM专家可以针对此点发表评论)。
  1. 您正在尝试为VM分配> 3GB的RAM。
  • 与先前的情况类似,这需要:(a)64位主机系统; 和(b)真正的硬件直通即VT-x。

因此,对于我的小型测试机,我正在唤醒它,它有8 GB RAM,但只有一个古老的Core i3,如果我安装32位版本的Linux,分配2.5GB RAM,则成功。

哦,无论我在上面说什么“VT-x”,显然都同样适用于AMD的“AMD-V”虚拟化技术。


20
谢谢。对我来说,这是因为我添加了4GB。当降低时,错误消失了。 - marlar
2
对我来说,我需要在我的虚拟机设置中从64位切换到32位。然后,错误消息就消失了。 - wesk
您已在设置中启用了VT-x,但它不可用。请尝试禁用它。 - Svante
这也可能是由于为虚拟机设置的RAM过少所导致的。 - Andrey Nikishaev
我曾经遇到过同样的问题。我尝试安装了64位版本,但当我改为32位版本时,问题得以解决。 - japetko
显示剩余3条评论

31

如您在错误信息中所见,这是一个相当简单的问题。

您不必使用以前的VirtualBox版本,而是尝试以下步骤:

进入您的BIOS设置...

虚拟化选项卡中,启用虚拟化技术

重新启动计算机,您就可以使用VirtualBox了。


2
我进入了BIOS(通过按下启动时的F2键),但是没有名为“虚拟化”或者与之相关的选项。显然,并非所有笔记本电脑都有这个选项?我的是联想Ideapad 64位Windows 8英特尔i7双核笔记本电脑。 - arun

19

当我尝试将基础内存设置为约4000MB(我的电脑有8GB)时,我会收到相同的错误信息“VT-x在BIOS中被禁用”。但是,当我将基础内存减少到2500MB时,问题得到解决。


15

在Virtual Box中有一个选项。

如果你看一下Oracle VM Virtual Box Manager。

选择您要启动的虚拟机。

进入System,右侧面板中从上往下数第二个项目。

在System中进入名为 'acceleration' 的第三个选项卡。

在该选项卡中,第一个复选框称为VT-x/AMD-V(我使用的是荷兰语版,所以不知道确切字符串)。

取消选择该复选框。

然后开始运行。这对我起作用了。

我也在升级后遇到了这个问题。而我之前没有遇到过这个问题。但我无法看出更新和勾选/取消勾选该选项之间的确切联系。

顺便说一句,我不知道那个“虚拟化选项卡”应该在我的“BIOS”中哪里。也许我正在查看我的PC的BIOS,而不是这里的System页面,这可能是您指的Veer7吗?如果是的话,这就相当不清楚了。也许是因为我使用的是荷兰语版OVM而非英语版。但在我找到的Oracle VM Virtual Box Manager中没有任何叫做BIOS的东西。


1
你的方法可能适用于32位版本,但64位架构需要VT-x/AMD-V的存在。虚拟化选项必须在系统BIOS中启用才能正常工作。不太确定在荷兰BIOS上会在哪里找到它 ;) - Umar Ahmad
在Ubuntu 14.04 64位上帮助32位Win7。谢谢。 - japetko
这是针对所有类型的主机(Winblows,Linux等)在Ubuntu 14.04上的正确解决方案。显然,在升级过程中无意中打开了“VT-x/AMD-V”选项。 - Luís de Sousa

12

我也遇到了同样的问题。我在BIOS中启用了VTX,但它没有起作用。在BIOS中再次仔细检查后,我发现BIOS说你必须关闭电源(并真正关机)。之后它就可以工作了。重要提示:)


我非常确定真正的关机/断电和重启之间在主板级别上存在差异。 - sighter
1
这个对我起作用了。我在BIOS中启用了虚拟化,但VirtualBox一直告诉我它没有被启用。一次完全的关机然后再开机就解决了问题。 - Jimbo

10

尝试在主板设置中调整(减少)虚拟机分配的RAM。此时,您系统中可用的RAM可能少于您为虚拟机分配的RAM。

这对我有帮助。


做到了!- 我为虚拟机分配了很多内存(还有其他一些东西),然后出现了这个错误 - 谢谢ChiCha。 - VisualBean

7

我的BIOS里已经将"Intel Virtualization"设置为启用状态,但我仍然收到这个错误提示。

问题在于我在"Windows Features"中启用了Hyper-V,很明显VirtualBox和Hyper-V之间有冲突。

我前往控制面板 -> Windows Features并取消勾选Hyper-V。重启后,Hyper-V已被删除,现在我可以在VirtualBox中再次运行64位的虚拟机了。


2
你使用的VirtualBox版本是哪个? 我发现了相同的问题,当我在我的X64 win7机器上更新到最新版本时 VirtualBox-4.3.4-91027-Win 但我卸载它并回到VirtualBox-4.2.18-88781-Win 它可以正常工作,等Oracle修复它之前,请尝试使用这个版本。

1
那个错误信息也出现在我的虚拟机中。 首先,我尝试禁用选项“启用VT-x / AMD-V”(您可以通过打开VM设置找到它:设置 -> 系统 -> 加速),会弹出一个警告说“检测到无效设置”(您接受更改后该复选框被重新选择)。

然后我阅读了这些帖子,并尝试启用虚拟化技术(当您想在计算机上启用各种虚拟机时使用的技术(默认情况下设置为禁用,因为您不需要该属性起作用。)


1
如果在32位主机上启动64位虚拟机,则会出现此错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接