Vagrant up - VBoxManage.exe错误:VT-x不可用(VERR_VMX_NO_VMX)代码E_FAIL(0x80004005)gui无头

问题描述 投票:24回答:9

机器:Windows 10(64位)。

我下载了最新的VirtualBox,Vagrant和初始化的CentOS 6.7 64位图像/网址。

以下在Git-Bash会话中成功运行。 1.流浪盒添加“centos67x64”“https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box” 流浪汉 3.更新了Vagrantfile(并转为vb.gui选项,即取消注释该文件中的config部分)。

  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = true

    # Customize the amount of memory on the VM:
    vb.memory = "2048"
  end

之后,我尝试了以下命令,但我收到此错误消息。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos67x64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vv_default_1466548735200_80300
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "ae74ebaa-8f01-48cf-bdad-956c59ef1208", "--type", "gui"]

Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

如果我关闭/注释掉整个Vagrantfile的相应部分,我仍然会收到以下错误。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "ae74ebaa-8f01-48cf-bdad-956c59ef1208", "--type", "headless"]

Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

有任何想法吗!我查看了其他帖子,但在我的案例中找不到如何解决。

当我得到一些提示时,我尝试了其中一个解决方案。

  1. 关闭Hyper-V,我猜在Windows 10中默认关闭。
  2. 为此,我去了Windows 10中的控制面板并查看了这里并找到了这个。 qazxsw poi
  3. 然后,我通过取消选中(刻度线或黑框)关闭Hyper-V。
  4. Windows10告诉我RESTART,我说“不”(后来)。
  5. 尝试再次运行“vagrant up”(无论是否有任何更改或上面提到的config.vm ...更改为Vagrantfile)。它没有用,并给了我相同的 - 无误的错误信息。
  6. 好的,是时候重启了。重启Windows10。重新启动后,我看到一堆Virtual Box错误消息弹出窗口(其中很少显示如下)。

enter image description here enter image description here enter image description here enter image description here

  1. 一旦我点击所有这些Virtual Box弹出窗口上的OK按钮,我就试着在我的机器上运行Virtual Box,它很好(成功)。
  2. 现在,我打开Git-BASH并再次访问Vagrantfile所在的目录。尝试打开/关闭设置或注释/取消注释Vagrantfile相应部分(如上所述)。

仍然获得运行“vagrant up”的相同错误消息(即使在关闭Hyper-V之后也是如此)。

vagrant windows-10 virtualbox vagrantfile headless
9个回答
32
投票

默认情况下,在Windows 8/10中停止运行hyper-v服务,因为它会阻止对VT硬件的所有其他调用。

这里补充说明:enter image description here

同样如您所述,如果尚未启用,请在BIOS设置中启用Intel VT虚拟化并重新启动计算机。


27
投票

我刚刚通过禁用(取消选中)Hyper-V解决了这个问题。我安装Docker时似乎启用了Hyper-V

https://social.technet.microsoft.com/Forums/windows/en-US/118561b9-7155-46e3-a874-6a38b35c67fd/hyperv-disables-vtx-for-other-hypervisors?forum=w8itprogeneral

您可能需要重新启动后续文字。

警告:使用VirtualBox的Vagrant无法同时使用Docker。


6
投票

Docker可能是罪魁祸首。安装docker后我遇到了同样的问题。 Docker使用Windows hyper-v驱动程序来创建容器。因此Docker和Virtual Box可能无法一起工作!


3
投票

如果您在Windows 10 Pro上遇到上述错误,则可以禁用Hyper-V。 Hyper-V是Windows 10中的默认启用。您可以使用Hyper-V或Virtual Box。因此,要使用虚拟框,您必须在Windows中禁用hyper-v,您可以按照以下步骤操作 -

  1. 搜索控制面板
  2. 单击卸载程序
  3. 打开或关闭Windows功能
  4. 取消选择Hyper-V选项。
  5. 单击“确定”
  6. 重新启动系统以应用更改。

2
投票

搜索Windows功能。关闭Hyper V.Most可能,Virtual Box在Windows上与Hyper V发生冲突。还要检查服务中是否运行Hyper V.停止并禁用它。


2
投票

除了打开处理器的虚拟化功能并关闭Hyper-V之外,还有另一件事,与Windows的基于虚拟化的安全功能相关:

Control Panel -> Program And Features -> Turn Windows Features on or off.

必须禁用VBS(以及相关的安全功能)以避免冲突的虚拟机管理程序。这是VMware的解决方案,对于VirtualBox问题似乎也有效“:

https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-vbs


1
投票

虽然这是一个老问题,但我最近还是遇到过它。

这对我运行Windows 10的i7-3770 3.40GHz Z77 extreme主板起作用。

在Windows中,禁用Hyper-V:

  1. 以管理员身份打开PowerShell或CMD会话。
  2. 键入以下命令:dism.exe / Online / Disable-Feature:Microsoft-Hyper-V-All
  3. Windows会要求您重新启动。

在BIOS中:

  1. 禁用>>>英特尔虚拟化技术,vt-d
  2. 保存BIOS设置并允许它重新启动并启动到Windows。
  3. 关闭计算机(我尝试重新启动它不起作用)
  4. 启动计算机,进入BIOS并重新启用上述禁用的设置。
  5. 保存,重启。

下载https://kb.vmware.com/s/article/2146361进行检查。

你现在应该看到它得到了支持:

如果仍然无效,请先尝试重新启用Hyper-V,然后按照上述步骤操作。


1
投票

如果Docker已安装并同时启动并运行,如果您尝试运行Virtual Box,它将无法运行。笔记本电脑上的主机上的底层内核不允许同时使用这两种内容。

因此Docker和Virtual box无法同时运行。为了那个原因,

  1. 要使用Docker,您必须启用此位置上的hyper-v 控制面板 - >程序和功能 - >打开或关闭Windows功能。
  2. 要运行虚拟框,您必须从上面的位置禁用hyper-v。

0
投票

从Windows功能列表中关闭Hyper-V选项。您可以在控制面板上找到它。

© www.soinside.com 2019 - 2024. All rights reserved.