VBoxManage:错误:无法创建仅主机适配器

174

我正在运行基于 Fedora 17 的机器上 vagrant 1.4 和 virtual box 4.3。当我执行 "vagrant up" 命令时,出现以下错误:

Bringing machine 'default' up with 'virtualbox' provider...                                                                            


[default] Clearing any previously set forwarded ports...                                                                                                                
[default] Clearing any previously set network interfaces...                                                                                                             
There was an error while executing `VBoxManage`, a CLI used by Vagrant                                                                                                  
for controlling VirtualBox. The command and stderr is shown below.                                                                                                      

Command: ["hostonlyif", "create"]                                                                                                                                       

Stderr: 0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to create the host-only adapter
VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: VBoxNetAdpCtl: ioctl failed for /dev/vboxnetctl: Inappropriate ioctl for devic
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterface, interface IHostNetworkInterface
VBoxManage: error: Context: "int handleCreate(HandlerArg*, int, int*)" at line 66 of file VBoxManageHostonly.cpp

你是在Fedora上运行Vagrant,还是你的Vagrant Box的操作系统是Fedora? - Jeff Sisson
我遇到了同样的问题,正在 OS X 上运行 Vagrant,这是 VirtualBox 的问题吗? - Yuan He
@adi,你能验证一下正确答案吗?谢谢。 - totophe
当你升级到MacOS Monterey时,你可能会遇到这个问题等。虽然被接受的答案无疑是主要问题,但MacOS升级可能不会复制你的安全和隐私设置,所以我也加入了这一点。我不知道为什么这个问题没有被简单地移动而不是关闭。 - Oliver Williams
37个回答

271

今天我遇到了同样的问题。原因是我在VirtualBox中运行了另一个虚拟机。

解决方法:

  1. 打开VirtualBox并关闭所有正在运行的虚拟机
  2. 前往“系统偏好设置”>“安全性与隐私”,然后点击“允许”按钮,以允许Oracle(VirtualBox)加载。
  3. 重启VirtualBox
sudo "/Library/Application Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh" restart

现在您应该能够运行vagrant upvagrant reload并配置您的新主机了。

此答案中所述,最近版本的 macOS 可能会阻止 VirtualBox。

解决方法:

前往系统偏好设置>安全性与隐私,然后点击“允许”按钮以允许 Oracle(VirtualBox)加载。

(感谢@pazhyn@lsimonetti@dave-beauchesne的澄清)


4
确认此方法在我的 Mac 上可行。关闭其他虚拟机不足以解决问题,但是重新启动 VB 可以解决。 - Steve Bennett
1
对我也起作用,VirtualBox UI 没有显示任何虚拟机,但是重新启动解决了这个问题。也许 vagrant halt 上次没有成功完成。 - Erich
3
假设您的VirtualBox在StartupItems中,本回答才有效。如果不在,请参考下面@pazhyn的答案,那似乎更通用并适用于我。 - jamesplease
2
必须按照其他答案中提到的方法进行操作,然后在系统偏好设置中单击“允许”。如果没有这样做,“允许”按钮甚至不会出现。 - trainoasis
2
Big Sur,系统偏好设置 -> 安全性与隐私 -> 通用 -> 解锁以进行更改 -> 高级 -> 批准并重新启动 - Paranoid Android
显示剩余10条评论

64

对于 Mac OS X 10.9.3 和 Vagrant 1.6.3 以及 VirtualBox 4.3.6,只需重启 VirtualBox 即可解决此问题。

sudo "/Library/Application Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh" restart

1
完美地工作了!谢谢。 - Ashwin Balamohan
对我来说可以用,VirtualBox 4.3.18,OS X 10.9.3。谢谢! - amateur barista
1
对于任何有同样问题的人: Mac OS 10.13 + vagrant 2.2.0 + VirtualBox 5.2.20 这对我来说完美地解决了问题。 非常感谢! - Bahman.A
对我来说有效。使用VirtualBox 6.0和Vagrant 2.2.7的OS X。 - Redas Jarušaitis
是的。销毁之前的虚拟机对我没有用。 - Dave Hodgkinson
这对我没有用 - 显然各种关闭都没有起作用。它会显示像“卸载VBoxUSB.kext”之类的内容,但后来会显示“错误:VBoxUSB.kext已经加载”。 - Apollo Grace

56
TL;DR: MacOS可能会阻止VirtualBox的运行。请前往“系统偏好设置>安全性与隐私”然后点击“允许”。
解决方法: 前往“系统偏好设置>安全性与隐私”然后点击“允许”按钮以让Oracle(VirtualBox)加载。
默认情况下,MacOS可能会阻止kexts的加载。在执行VirtualBoxStartup.sh脚本之前,必须单击“允许”按钮。
然后运行:sudo "/Library/Application Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh" restart,就像上面的答案所述。
这篇文章提供了更多关于MacOS内核扩展加载的信息。)

1
对我有用!谢谢 - Srdjan Marjanovic
默认情况下,MacOS会阻止kexts加载。 在执行VirtualBoxStartup.sh脚本之前,您必须单击“允许”按钮。这正是我的问题!谢谢! - daneczech
在macOS BigSur(11.0.1)上,在“系统偏好设置>安全性与隐私>通用”中获得“允许”提示之前,我必须将Virtualbox更新到最新版本。允许后还需要重新启动系统。 - muya_

17

1
我的情况是Vagrant 1.7.4 + Virtualbox 5.0 + Windows 10 build 10240。版本5.01修复了这个问题。 - DevAnimal
我在Virtualbox 7.0中也遇到了这个错误,但重新安装可能会导致Virtualbox重启,从而解决问题。 - PHZ.fi-Pharazon

12

我在升级到OS X El Captian后遇到了这个问题。升级到最新版本的VB解决了我的问题。如果您进入屏幕顶部的virtualbox菜单并点击检查更新,Virtual box将提供给您最新的链接。


10

在升级到Mojave后,Mac出现了错误。可能是VirtualBox版本过旧。

升级到较新版本的Virtualbox。(在撰写本文时为5.2)

编辑:添加@lsimonetti的评论。

除了升级到Virtualbox 5.2之外,您还需要Vagrant >= 2.0.1。


1
除了升级到Virtualbox 5.2之外,您还需要Vagrant >= 2.0.1 https://github.com/hashicorp/vagrant/blob/v2.1.5/CHANGELOG.md#201-november-2-2017 - lsimonetti

8
如果您使用的是Linux操作系统,只需运行如下命令:sudo vboxreload

15
vboxreload不存在。vbox也不存在。 - jaguililla

7
我在Ubuntu 16.04 LTS上运行Oracle VM Virtualbox。解决方法是按照这里提到的重新安装virtualbox: sudo apt remove virtualbox virtualbox-5.0 virtualbox-4.* sudo apt-get install virtualbox 我找不到VirtualBox安装文件夹,因此无法发出以下命令: $sudo /Library/StartupItems/VirtualBox/VirtualBox restart

我的本地环境突然不响应了。无法启动vagrant。卸载并安装vbox解决了问题。谢谢。 - Nick DuBois

7

我在升级到OSX Monterey时遇到了类似的问题。

解决方法:

  1. 安装VirtualBox扩展包(下载)
  2. 允许 VirtualBox 访问您的 Mac 安全与隐私/隐私/输入监控

enter image description here

VirtualBox也可能会获取和失去辅助功能权限,请检查这一点。

enter image description here


谢谢。更多关于如何解决它的信息请参见此处 - Pathros
谢谢。它解决了在Monterey上的问题。 - BZC

6

如果按照 @totophe 的方法操作后在 macOS 上仍无法运行,只需重新启动您的 Mac。然后打开终端并输入 vagrant up

这通常发生在每次 macOS 更新后。


2
是的,只需重新启动我的 Mac 就解决了问题,谢谢!(从 11.5.1 升级到 11.5.2) - Eliseu Monar dos Santos

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