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


124

我在fedora 17计算机上运行流浪汉 1.4和虚拟框 4.3。当我“无所事事”时,出现以下错误:

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运行流浪汉,还是您的流浪汉OS?
杰夫·西森

我有同样的问题,并且在OS X上运行流浪汉,这是虚拟盒子的问题吗?
Yuan He

@adi您可以验证正确答案吗?Tks
totophe '17

Answers:


171

我今天有同样的问题。原因是我在VirtualBox中运行了另一个VM。

解:

  1. 打开VirtualBox并关闭每个正在运行的VM
  2. 重新启动VirtualBox
sudo "/Library/Application Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh" restart

现在,您应该可以运行vagrant upvagrant reload配置新主机了。

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

解:

转到System Preferences > Security & Privacy然后单击“允许”按钮,让Oracle(VirtualBox)加载。

(感谢@pazhyn@lsimonetti的澄清)


2
确认可以在我的Mac上使用。关闭其他VM是不够的,但是重新启动VB是可行的。
史蒂夫·本内特

1
对我也有用,VirtualBox UI没有显示任何虚拟机,但是重新启动解决了该问题。也许流浪汉止步没有最后一次成功完成。
埃里希

2
我猜这个答案假设VirtualBox在您的StartupItems中。如果不是这样,请参见下面的@pazhyn答案,它似乎更通用并且对我有用。
jamesplease

不起作用,默认情况下,virtualbox不会安装在此位置。我知道我的是默认安装,并且不在StartupItems中。请参阅下面的@pazhyn答案。谢谢!
业余咖啡师,2014年

1
必须执行此操作,然后按其他一些答案所述,在“系统”偏好设置中单击“允许”。没有这个,“允许”甚至不会出现。
trainoasis

60

对于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 2014年

适用于我,VirtualBox 4.3.18,OS X 10.9.3。谢谢!
业余咖啡师,2014年

1
对于在以下方面有相同问题的任何人:Mac OS 10.13 + vagrant 2.2.0 + VirtualBox 5.2.20,这对我来说非常理想。非常感谢!
巴赫曼。

为我工作。带有VirtualBox 6.0和Vagrant 2.2.7的OS X
RedasJarušaitis

是。删除以前的VM并不是对我有用的。
Dave Hodgkinson

42

TL; DR MacOS可能阻止了VirtualBox。转到System Preferences > Security & Privacy然后单击“允许”。

解决方案:转到 System Preferences > Security & Privacy然后单击“允许”按钮以让Oracle(VirtualBox)加载。

默认情况下,MacOS可以阻止加载kext。在执行VirtualBoxStartup.sh脚本之前,您必须单击“允许”按钮。

然后运行: sudo "/Library/Application Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh" restart就像上面答案

本文使MacOS内核扩展的加载更加清晰)


1
为我工作!谢谢
Srdjan Marjanovic

MacOS by default can block kexts from loading. You must click the "allow" button before executing the VirtualBoxStartup.sh script. 那是我的问题!谢谢!
daneczech


10

升级到OS X El Captian后出现了这个问题。升级到最新版本的VB为我解决了这个问题。如果您转到屏幕顶部的virtualbox菜单,然后单击检查更新,Virtual Box将为您提供最新的链接。


10

更新到Mojave后在Mac中出现错误。可能您有一个较旧版本的虚拟机。

更新到virtualbox的最新版本。(撰写本文时为5.2)

编辑:添加@lsimonetti的评论。

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


1
除了升级到Virtualbox 5.2,您还需要Vagrant> = 2.0.1github.com/hashicorp/vagrant/blob/v2.1.5/…–
lsimonetti


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


我的本地环境刚刚停止响应。无法流浪。删除并安装vbox可以解决问题。谢谢
尼克·杜波依斯


3

就我而言,我能够通过重新安装虚拟盒来解决此问题。我正在尝试使用laravel的家园,并且遇到了此错误。重新安装有助于再次创建虚拟盒所需的目录。花了我一个小时才弄清楚。


3

我在运行Debian 8(Jessie),Vagrant 1.6.5和Virtual Box 4.3.x时遇到了相同的问题。

对我来说,它执行固定:

sudo /etc/init.d/vboxdrv setup

2

我正在使用Ubuntu 14.04。我在virtualbox上安装了genymotion。每次我启动genymotion时,我都没有问题,但是突然有一次它说无法加载virtualbox引擎,并且它没有打开。我浏览了日志文件,发现它无法创建新的仅主机网络,因为它已经创建了所有可能的仅主机网络。问题是它无法为新网络分配内存。

修复:转到您的虚拟框文件->首选项->网络

单击“仅主机”选项卡,然后删除一些仅主机的网络,以便释放一些内存,下次可以轻松创建新网络。

删除解决了我的问题。


谢谢你 我遇到过同样的问题。
TihomirMeščić16年

谢谢你 我在Windows上使用Virtual Box,却遇到了完全相同的问题。您检查网络偏好的提示帮助我解决了这个问题。
user1501382

1

我通过安装VirtualBox 4.2而不是4.3修复了此错误。我认为最新版本的vagrant和VB 4.3在fedora系统上不兼容。


1
$sudo /Library/StartupItems/VirtualBox/VirtualBox restart

在Mac上对我来说很棒。当我关闭计算机而不运行时,通常会发生这种情况

$vagrant suspend

1
  • CentOS Linux版本7.2.1511(核心)
  • 虚拟盒子5.0

我在搜索Google时遇到了这个问题... VBoxManage:错误:无法创建仅主机适配器

我使用VirtualBox-5.0测试了一些由Vagrant创建的虚拟机,并在我的Vagrantfile web.vm.network“ private_network”,ip:“ 192.168.10.2”中设置了专用网络。

当引发命令$ vagrant up时,我将得到上述错误以及/ dev / vboxnetcrl不存在

看来我的VirtualBox版本没有为我的Linux版本编译正确的内核模块,并且未创建设备/ dev / vboxnetcrl。

由于我想测试虚拟机而不是对VirtualBox进行故障排除,因此我的解决方法(不是解决方案)是:

 # yum remove VirtualBox-5.0
 # yum install VirtualBox-4.3 

之后,我可以使用指定的主机适配器创建虚拟机。当然,在VirtualBox-4.3下,/ dev / vboxnetcrl也在那里。

现在开始测试我的虚拟机。如果有时间,我会看看是否可以在VirtualBox 5.0下运行



1

Windows 10专业版VirtualBox 5.2.12

就我而言,我必须在VirtualBox GUI中编辑“仅主机以太网适配器”。单击全局工具->主机网络管理器->选择以太网适配器,然后单击属性。我的被​​设置为自动配置,并且它尝试使用的IP地址与我在drupal-vm和vagrant中尝试使用的IP地址不同。我只需要将其更改为手动并更正IP地址即可。我希望这可以帮助其他人。


1

对于macOS Mojave,此解决方案有效:

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

1

我在Mac上遇到了这个问题。

我做了以下操作转到:Launcher-> Virtualbox

单击图标以打开Virtualbox

使用Virtualbox启动后弹出的按钮启动Virtualbox。等到终端窗口提示您,

docker @ boot2docker

然后尝试打开docker。希望它能起作用!


0

在Opensuse 42.1上帮助我的是从官方RPM(而不是从Opensuse存储库)安装VirtualBox和Vagrant。


0

我在Windows 8.1,VirtualBox 5.1.18和Vagrant 1.9.3上遇到此问题。

从VirtualBox首选项(网络->仅主机网络)中删除仅VirtualBox仅主机的以太网适配器对我来说已解决此问题,vagrant up可以继续并启动VM。



0

在遵循有关为Windows 10设置Laravel Homestead的教程时,我遇到了同样的问题。该教程提供了192.168.10.10用于服务器的IP地址示例。他们的示例IP的问题在于,如果您已经设置了VirtualBox仅主机适配器,则用于流浪服务器的IP必须与当前适配器的IP地址的前三部分相同

您可以通过运行ipconfig(Windows)ifconfig(mac / linux)并查找VirtualBox仅主机适配器的IPv4地址来检查当前的Virtualbox仅主机适配器IP 地址。192.168.56.1是我的。通常,如果主机IP是192.168.56.1来宾IP,那么将使用来宾IP 192.168.56.101,而不是使用我使用的示例IP 192.168.56.102其中未使用的任何IP都192.168.56.*应该起作用

之后,这homestead up对我来说很完美。

TL; DR-如果您当前的VirtualBox仅主机适配器IP为192.168.56.1,请将您的Vagrant服务器IP设置为192.168.56.102。


0

我现在遇到了同样的问题,只需将其重新安装到最新版本的VirtualBox即可解决。

对于Mac OS High Sierra上的计算机-最初安装可能会失败,但是您需要转到“系统偏好设置”>“安全和策略”,然后单击“允许”按钮以允许Oracle安装该软件。


0

如果使用macOS High Sierra或更高版本,则可以在以下位置找到bash脚本:

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

因此,如果您遇到这种错误:

/ Library / Application Support / VirtualBox / VBoxDrv.kext无法加载-(libkern / kext)系统策略阻止加载;检查系统/内核日志中是否有错误,或尝试kextutil(8)。

您可以通过System Preferences > Security & Privacy部分和AllowVirtualBox 解决它。


0

我的解决方案

系统偏好设置->系统安全隐私->允许oracle.xxxx; 然后重新安装virtualBox。


0

我想提一提。

打开VirtualBox并关闭每个正在运行的VM。

关闭应关闭电源。

并且如果您的virtualbox已添加到linux的Path中(我的是Ubuntu)。您可以只使用命令: virtualbox restart


0

试试这些:

须藤modprobe vboxnetadp

须藤modprobe vboxnetflt

须藤modprobe vboxdrv


我怀疑这是否有帮助,甚至根本没有效果。为了使我信服,请解释一下它是如何工作的,以及为什么它会有所帮助。
云诺许

我将virtualbox安装在不同于现在使用的内核(4.19和5.4)上。为了避免更新整个系统,我使用了此替代方法来启用现有的vboxnet0接口。启动virtualbox时,它仍然有效。
andremtsilva

现在我看到这篇文章是关于Mac Os而不是Linux。对于那个很抱歉。
andremtsilva

关键是,这是一个无法解释的纯代码答案,它缺乏实际的见识和帮助。您的评论会有所改善,但应将其编辑为答案本身。而且它仍然不是真正的解释。我想要这样的短语:“ ...因为....”,“ ...为了...”,“ ...导致…。”。还有一些背景,例如“如文档(链接)中所述……”,“ ...从而解决了OP所描述的问题”。
Yunnosch

0

我来到这里,与kitchen-CI一起工作,但对流浪汉有疑问。在(重新)移动“〜/ .kitchen”目录之后,kitchen converge再次成功


0

尝试了多种解决方案,但以下顺序对我有用。

虚拟盒子:5.2.34流浪者:2.2.5 Mac OSX:10.14.6

首先,允许访问oracle inc:

转到“系统偏好设置”>“安全性和隐私”,然后单击“允许”按钮以加载Oracle(VirtualBox)。

然后通过以下命令重新启动VBox:

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

现在再次尝试Vagrant。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.