Vagrant up - VBoxManage.exe error: VT-x is not available (VERR_VMX_NO_VMX) code E_FAIL (0x80004005) gui headless

Vagrant up - VBoxManage.exe error: VT-x is not available (VERR_VMX_NO_VMX) code E_FAIL (0x80004005) gui headless

机器:Window10(64 位)。

我下载了最新的VirtualBox、Vagrant并初始化了CentOS 6.7 64位image/url。

以下在 Git-Bash 会话中成功运行。
1. vagrant box 添加 "centos67x64" "https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box"
2. 流浪者初始化
3. 更新了 Vagrantfile(并打开 vb.gui 选项,即取消注释文件中的配置部分)。

  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

如果我 turn/comment 关闭整个 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. 关闭我猜在 Windows10.
  2. 中默认关闭的 Hyper-V
  3. 为此,我转到 Windows10 中的控制面板并查看此处并找到了这个。

  4. 然后,我通过取消选中(刻度线或黑框)关闭了 Hyper-V。

  5. Windows10让我重启,我说"No"(后来)。
  6. 再次尝试 运行ning "vagrant up"(没有或没有任何更改或上述 config.vm... 对 Vagrantfile 的更改)。它没有用,并给了我相同的 --headless 错误消息。

  7. OK,该重启了。重新启动 Windows10。重新启动后,我看到一堆 Virtual Box 错误消息弹出窗口(下面显示了其中的一些)。

  1. 在所有这些 Virtual Box 弹出窗口上单击“确定”按钮后 windows,我尝试在我的机器上 运行 Virtual Box,它运行良好(成功)。
  2. 现在,我打开 Git-BASH 并再次转到 Vagrantfile 所在的目录。尝试打开/关闭设置或 commenting/uncommenting Vagrantfile 相应部分(如上所述)。

STILL 为 运行ning "vagrant up" 获取相同的错误消息(即使在关闭 Hyper-V 之后也是如此)。

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

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

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


要关闭 Hypervisor,运行 从命令提示符(管理员)(Windows+X ):

bcdedit /set hypervisorlaunchtype off

并重新启动您的计算机。要再次打开它,运行:

bcdedit /set hypervisorlaunchtype on

如果您收到 "The integer data is not valid as specified",请尝试:

bcdedit /set hypervisorlaunchtype auto

-- 功劳Tj Kellie

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

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

时似乎启用了 Hyper-V
Control Panel -> Program And Features -> Turn Windows Features on or off.

之后您可能需要重启。

警告:使用 VirtualBox 的 Vagrant 不能同时使用 Docker。

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

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

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

https://kb.vmware.com/s/article/2146361

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

如果您在 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. 重新启动系统以应用更改。

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

虽然是个老问题,但最近还是遇到了。

这对我的 i7-3770 3.40GHz、Z77 extreme 主板有效 运行 Windows 10.

在 Windows 中,禁用 Hyper-V:

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

在 BIOS 中:

  1. 禁用 >>> Intel 虚拟化技术,vt-d
  2. 保存 bios 设置并允许其重新启动并引导至 Windows。
  3. 关闭计算机(我试过只是重新启动但没有用)
  4. 启动计算机,进入 bios 并重新启用上述禁用的设置。
  5. 保存,重启。

下载 Intel Utility 进行检查。

您现在应该看到它已得到支持:

如果还是不行,请先尝试重新启用 Hyper-V,然后再按照上述步骤操作。

如果 Docker 已安装并同时启动 运行ning,如果您尝试 运行 Virtual Box,它将无法工作。您笔记本电脑上存在的主机上的底层内核不允许同时工作。

因此Docker和Virtual box不能同时运行。为此,

  1. 要使用 Docker,您必须启用此位置存在的 hyper-v

    控制面板 -> 程序和功能 -> 打开或关闭 Windows 功能。

  2. 到 运行 Virtual box 你必须从上面的位置禁用 hyper-v。

这对我有帮助:

  1. 删除 Hyper-V 并安装 Hypervisor 平台。

    • 在提升的 Powershell 提示符下执行:

      Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
      Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
      
    • 重启

  2. 禁用 Windows Defender Credential Guard

    • "Local Group Policy Editor"→"Computer Configuration"→"Administrative Templates"→"System"→"Device Guard"→"Turn on Virtualization Based Security"→设置为"Disabled"

    • 删除以下注册表设置:

      • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\LsaCfgFlags
      • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DeviceGuard\LsaCfgFlags
    • 重启

  3. 删除 Windows Defender Credential Guard EFI 变量

    • 在提升的命令提示符下执行:

      mountvol X: /s
      copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
      bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
      bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi"
      bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
      bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO
      bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
      mountvol X: /d
      
    • 重启

  4. 禁用基于虚拟化的安全性

    • 删除 HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DeviceGuard\* 下的所有注册表项(但保留 DeviceGuard 本身)。

    • 重启

另请参阅: 禁用 Windows Defender Credential Guard

除了 Hyper-V 选项,我还必须取消选中 "Containers" Windows 功能才能让我的 Vagrant 工作。

唯一对我有用的是 运行 安装程序和对 VM VirtualBox 和 Vagrant 的修复。

尝试了以上所有步骤,但在我启用 BIOS 中的虚拟化技术之前没有任何效果。尽管英特尔 CPU 实用程序显示虚拟化已勾选,但实际上并非如此。

有 boot-up 系统,进入 BIOS,启用虚拟化,重新启动,瞧!经过4个多小时的努力终于成功了