无法创建 host-only 适配器 - Windows 10,Docker,VirtualBox

14

使用Docker Toolbox好一段时间后,最近我遇到了这个问题。

是在Windows更新之后出现的吗?

Windows 10 家庭版-64

卸载并重新安装Docker工具箱。

卸载并重新安装了各种版本的VirtualBox,但仍然收到相同的错误消息。

Running pre-create checks...
Creating machine...
(default) Copying C:\Users\me\.docker\machine\cache\boot2docker.iso to C:\Users\me\.docker\machine\machines\default\boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to create a network adapter. Sometimes, such confirmation window is minimized in the taskbar.
(default) Creating a new host-only adapter produced an error: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe hostonlyif create failed:
(default) 0%...
(default) Progress state: E_FAIL
(default) VBoxManage.exe: error: Failed to create the host-only adapter
(default) VBoxManage.exe: error: Querying NetCfgInstanceId failed (0x00000002)
(default) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
(default) VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCreate(struct HandlerArg *)" at line 71 of file VBoxManageHostonly.cpp
(default)
(default) This is a known VirtualBox bug. Let's try to recover anyway...
Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...
12个回答

5
这个答案与Docker无关,但是考虑到这是在谷歌上搜索VirtualBox的“Failed to create the host-only adapter”错误信息时,最近排名较高的Stack Overflow搜索结果之一(连同this问题),我将其放在这里,希望能帮助其他人。另外,如果你可以的话,我建议你使用Docker For Windows而不是Docker Toolbox在Windows上运行Docker(需要Windows 10专业版或企业版64位)。
我的情况是:
  • Windows 10专业版版本1709
  • 我尽可能使用Hyper-V来运行虚拟机,但需要运行一个旧的VirtualBox VM,其中Windows XP是客户机操作系统
  • VirtualBox 5.2.4-119785(Windows仅支持单个hypervisor - 如果您需要在Hyper-V和VirtualBox之间切换,我可以推荐this approach
  • VirtualBox未能在安装时创建主机专用适配器

当尝试使用Host Network Manager GUI创建主机专用适配器时,我遇到了可怕的“无法创建主机专用适配器”错误消息,并显示详细信息:"Querying NetCfgInstanceId failed (0x00000002)"

由于我使用Hyper-V,除实际物理适配器外,还有许多Hyper-V虚拟以太网适配器。

Network Connections

在查看物理适配器的属性时,Hyper-V 关闭除“Hyper-V 可扩展虚拟交换机”之外的所有协议驱动程序似乎是正常的。然后,Windows 通过其中一个虚拟适配器获取其网络连接性,在我的情况下它被称为“外部虚拟交换机”,并且通常的一组协议驱动程序(TCP/IPv4 等)在那里启用。

Hyper-V Extensible Virtual Switch

我注意到VirtualBox似乎希望以类似的方式工作,因为它已经成功安装并启用了一个名为“VirtualBox NDIS6 Bridged Networking Driver”的新协议驱动程序。

VirtualBox NDIS6 Bridged Networking Driver

当我检查其他虚拟适配器的属性时,我注意到“VirtualBox NDIS6 Bridged Networking Driver”在所有适配器上都启用了,但“Hyper-V Extensible Virtual Switch”没有启用。虚拟适配器启用了VirtualBox驱动程序似乎很奇怪,因此我在所有虚拟适配器上禁用了它,但在物理适配器上保持启用状态。
我认为在这个阶段,我为了好运气进行了一次重启,但我怀疑这实际上并不是必要的。随后尝试再次创建VirtualBox host-only适配器,它起作用了!(实际上,我从VirtualBox得到了一个错误消息,在任务栏上找到了一个模态框,指出适配器名称已被使用。但是,在Windows网络连接下出现了一个新的“VirtualBox Host-Only Ethernet Adapter”,当我关闭并重新打开VirtualBox Host Network Manager窗口时,适配器也显示在那里。)
我的理论是,由于某种原因,VirtualBox无法确定哪个适配器是实际的物理网络适配器,并且以一种相当鲁莽的方式继续在其找到的每个适配器上启用其“VirtualBox NDIS6 Bridged Networking Driver”。
此外,它似乎无法确定需要创建其虚拟“包装适配器”的适配器并失败。即使您不使用/拥有Hyper-V,您可能会拥有多个适配器,包括虚拟适配器(例如,许多VPN软件也安装虚拟适配器)。在尝试再次创建VirtualBox仅主机适配器之前,您可以尝试禁用所有除实际物理网络适配器之外的“VirtualBox NDIS6 Bridged Networking Driver”。
这对于VirtualBox来说绝不是一个新问题,从他们公共的错误跟踪器和其他地方相关的票数就可以看出,有些已经超过2年了。我有一种感觉,对于很多人来说,这个问题可能与我上面描述的有关,所以希望这能帮助到他们。

编辑 01/15

回想起来,我不确定 Windows 是否通常使用 Hyper-V 的“外部虚拟交换机”进行网络连接。如果我没记错的话,Hyper-V 创建的“默认”交换机通过 NAT 为客户端提供连接是一个相对较新的功能,在此之前必须添加和使用“外部”交换机... 在我的家用电脑上,没有“外部”交换机,正常的(TCP/IPv4 等)协议驱动程序会保持启用,物理网络适配器上的“Hyper-V可扩展虚拟交换机”被禁用,虚拟适配器也同样如此。在这种情况下,我还没有测试添加新的“外部虚拟交换机”会发生什么。


我没有使用Docker,而且我在Windows 7 x64上,以前从未遇到过这个问题。但是我刚刚将VirtualBox从5.2.4升级到5.2.6,并开始在vagrant up时收到Failed to create the host-only adapter的错误提示,无论是新的还是现有的虚拟机。卸载/重新安装/修复VirtualBox没有效果,但感谢您的帖子,我想要查看Windows 7中的控制面板\网络和Internet\网络连接,发现VirtualBox一直在使用的两个主机模式适配器被灰显(禁用)了!我只需右键单击它们,重新启用它们,就可以继续进行了! - Ben Johnson
@BenJohnson 好的,我很高兴我的(非常长的)帖子能对你有所帮助 :) 在我的阅读中,我遇到了你特定的情况几次。另一个常见的情况似乎是适配器上根本没有启用“VirtualBox NDIS6 Bridged Networking Driver”。 - maltem-za
在我的情况下,重新启动实际上可能解决了问题。变量太多了... - maltem-za

5

简述:如果您正在使用趋势科技或赛门铁克的防病毒解决方案,请尝试卸载Virtualbox,然后在禁用防病毒软件的情况下重新安装。其他品牌的防病毒软件也可能会有这个问题。

我记录下了这个答案。

我和我的同事们在从Windows 10 Pro版本1703更新到版本1709后遇到了类似的问题。

我尝试回滚到版本1703,它可以正常工作,但这显然不是一个可接受的解决方案。

由于某种原因,这与我们使用的防病毒软件有关,我们使用的是Trend Micro Office Scan。在禁用防病毒软件的情况下进行了干净的重新安装之后,host-only适配器再次可用。

这个问题已经报告在Virtualbox论坛和问题跟踪器中:
https://forums.virtualbox.org/viewtopic.php?f=6&t=86179#p413876
https://www.virtualbox.org/ticket/17354#comment:22

不幸的是,这个错误相当频繁,并且已经报告了数十次,有不同的原因。 在我们的情况下,bszom的答案中显示的设置已经是正确的。


似乎对于任何防病毒软件都是这种情况,我不得不禁用 Kaspersky。我卸载了 VirtualBox 然后重新安装,一切正常。谢谢。 - Rami Alloush

2

我和你一样也遇到了同样的错误。 在我的情况下,当我打开VirtualBox时出现错误提示,告诉我需要更新VirtualBox。所以我安装了最新版本,并再次打开"Docker Quickstart Terminal"快捷方式,最终它成功工作了。 因此我认为重新安装VirtualBox或在安装Docker ToolBox之前先安装VirtualBox可能会解决这个问题。(我知道有人是先安装Docker ToolBox的)。 祝好运。


2

我成功地通过在安装期间禁用除物理适配器之外的所有网络适配器来使其工作。 安装完成后,您可以重新启用它们。 要禁用适配器,请按照以下步骤进行:

  1. 打开控制面板
  2. 网络连接
  3. 选择每个适配器,然后从顶部选择“禁用此网络设备”

1
我能够使用最新的Virtualbox版本6.0.14解决问题。

0

我遇到了同样的错误。

检查Windows设备管理器,发现一个带有感叹号的Virtualbox网络适配器设备。

该设备的状态显示由于某些原因存在签名问题。

我并不鼓励任何人忽略警告,但我选择这样做 :)

我使用此链接中描述的方法关闭了Windows的签名验证,最终可以使用host-only适配器的Virtualbox。

注意:此答案是重复的。我已经删除了其他答案。


0

我遇到了同样的错误。

但是在物理连接的属性中,我没有“VirtualBox NDIS6 Bridged Networking Driver”。我安装了来自Wireshark安装的相同驱动程序“NPCAP ...”。如果查看描述,您可以看到这是NDIS6驱动程序。

然后我删除了所有Wireshark软件包:NPCAP、WinPCAP、Wireshark并删除了VirtualBox。

重新启动。

重新安装Virtual Box。安装Docker ToolBox(取消选中安装NDIS5)。并为docker创建default VM。

docker-machine create -d "virtualbox" default

主机专用接口已正常创建

docker-machine status
Running

这对我来说可行。


0

不幸的是,我也遇到了这个问题(Win10,1709,virtualbox 5.1)。在使用vagrant从网络上拉取Linux镜像时。

以下方法可以解决此问题

将您的网络驱动程序更新到最新版本

卸载Virtualbox

重新安装Virtualbox

检查您的网络适配器配置中是否有“仅主机”虚拟适配器。如果有,则可以继续。如果没有,请尝试从vboxmanage安装它。

C:\Program Files\Oracle\VirtualBox\VBoxManage.exe hostonlyif create

如果您在设备管理器中看到 HyperV虚拟以太网 适配器,请卸载它(这通常会阻止VirtualBox虚拟网络(Host-Only Ethernet adapter)的创建)。
我公司的某种类型的计算机出现了这个问题,但其他类型的计算机没有。因此,这一定与网络适配器的类型有关。所以有时候你会很幸运,有时候不会。但是我很幸运,硬件都是最新的。

0

我遇到了相同的错误:

(default) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface

但在我的情况下,我正在尝试在 Windows 8.1 64位 上安装 Docker Toolbox

Windows-8.1-6.3.9600-SP0 : AMD64

之前,我已经在系统上安装了 virtualbox版本6.0,因此我取消了docker toolbox安装程序选项,安装了virtualbox。

对于我的情况,卸载virtualbox 6.0、重新启动系统并安装 VirtualBox-6.1.12-139181 可以解决问题。

注意:作为卸载程序,请使用工具
并准备在Windows 8.1上运行Docker。

Docker ToolBox on Windows 8.1


0

昨天我首次安装了Docker Toolbox,因为我的Windows 10 Home不支持Docker Desktop。

重启或安装Java并没有解决我的问题。解决方法是删除与Toolbox一起安装的Oracle虚拟机(版本为5.2.12或类似版本),然后重新安装新的6.1.8版本。查看他们的网站后,这个做法是有道理的:

enter image description here


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