无法创建仅限主机的适配器 - windows 10、docker、virtualbox
Posted
技术标签:
【中文标题】无法创建仅限主机的适配器 - windows 10、docker、virtualbox【英文标题】:Failed to create the host-only adapter - windows 10, docker, virtualbox 【发布时间】:2017-09-20 16:52:56 【问题描述】:我最近在使用 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...
【问题讨论】:
【参考方案1】:此答案与 Docker 无关,但在 Google 上搜索 "Failed to create the host -only adapter” 来自 VirtualBox 的错误消息,我将其留在这里,希望对其他人有所帮助。
附带说明,如果您可以,我建议您使用Docker For Windows 而不是 Docker Toolbox 在 Windows 上运行 Docker(需要 Windows 10 专业版或 64 位企业版)。
我的场景:
Windows 10 专业版 1709 我尽可能使用 Hyper-V 来运行虚拟机,但需要以 Windows XP 作为客户操作系统来运行旧的 VirtualBox VM VirtualBox 5.2.4-119785(Windows 仅支持单个管理程序 - 如果您需要在 Hyper-V 和 VirtualBox 之间切换,我可以推荐 this approach) VirtualBox 在安装时没有(或未能)创建主机专用适配器当尝试使用主机网络管理器 GUI 创建仅主机适配器时,我收到可怕的“无法创建仅主机适配器”错误消息,详细信息为:“查询 NetCfgInstanceId 失败(0x00000002 )".
因为我使用的是 Hyper-V,所以除了实际的物理适配器之外,我还有许多 Hyper-V 虚拟以太网适配器。
查看物理适配器的属性,Hyper-V 关闭除“Hyper-V 可扩展虚拟交换机”之外的所有协议驱动程序似乎是正常的。然后,Windows 通过其中一个虚拟适配器获得其网络连接,在我的例子中,它被称为“外部虚拟交换机”,并且在那里启用了一组常用的协议驱动程序(TCP/IPv4 等)。
然后我注意到 VirtualBox 似乎(想要)以类似的方式工作,因为它设法安装并启用了一个名为“VirtualBox NDIS6 Bridged Networking Driver”的新协议驱动程序。
当我检查其他虚拟适配器的属性时,我注意到所有这些适配器都启用了“VirtualBox NDIS6 桥接网络驱动程序”,但没有启用“Hyper-V 可扩展虚拟交换机”。 在 Hyper-V 虚拟适配器上启用了 VirtualBox 驱动程序,这似乎很奇怪,所以我在所有这些适配器上都禁用了它,但在物理适配器上保持启用状态。
我认为在这个阶段我为了好运重新启动了一个很好的旧重启,尽管我怀疑这是否真的有必要。当我随后尝试再次创建 VirtualBox 仅主机适配器时,它成功了! (实际上,我从 VirtualBox 收到一条错误消息,在我必须在任务栏上找到的模式中,关于已使用的适配器名称。但是,在 Windows 网络连接下出现了一个新的“VirtualBox Host-Only Ethernet Adapter”,当我关闭并重新打开 VirtualBox 主机网络管理器窗口,适配器也出现在那里。)
TL;DR;
我的理论是,VirtualBox 出于某种原因无法确定哪个适配器是实际的物理网络适配器,并且以一种相当激烈的方式继续并在 每个 它找到的适配器。
此外,它似乎无法确定它需要为哪个适配器创建其虚拟“包装适配器”并且失败。
即使您不使用/拥有 Hyper-V,您也可能拥有多个适配器,包括虚拟适配器(例如,许多 *** 软件也安装虚拟适配器)。
您可以尝试在除实际物理网络适配器之外的所有适配器上禁用“VirtualBox NDIS6 桥接网络驱动程序”,然后再尝试再次创建 VirtualBox 主机专用适配器。
这对于 VirtualBox 来说肯定不是一个新问题,从他们的公共 bugtracker 和其他地方的大量相关票证来看,有些超过 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
,无论是使用新的还是现有的 VM。卸载/重新安装/修复 VirtualBox 无效,但感谢您的帖子,我想在 Windows 7 中查看 Control Panel\Network and Internet\Network Connections
,VirtualBox 一直使用的两个仅主机适配器是灰色的(禁用)!我只需右键单击它们,重新启用它们,然后就可以参加比赛了!
@BenJohnson 好吧,我很高兴我的(非常长的)帖子以这种方式对您有所帮助 :) 我在阅读中遇到过您的特殊情况几次。另一个常见的似乎是适配器上根本没有启用“VirtualBox NDIS6 Bridged Networking Driver”。
就我而言,重启也很有可能实际上解决了问题。变量太多...【参考方案2】:
tl;dr 如果您使用的是趋势科技或赛门铁克防病毒解决方案,请尝试卸载 Virtualbox,然后在禁用防病毒软件的情况下重新安装。 它也可以与其他人一起使用。
我正在添加这个答案以作记录。
从 Windows 10 Pro 版本 1703 更新到版本 1709 后,我和我的同事开始遇到类似的问题。
我尝试回滚到 1703 版,并且成功了,但这当然不是一个可接受的解决方案。
出于某种原因,这与防病毒软件有关,在我们的例子中是趋势科技 Office Scan。在禁用防病毒软件的情况下重新安装后,主机专用适配器再次可用。
该问题已在 Virtualbox 论坛和问题跟踪器中报告:https://forums.virtualbox.org/viewtopic.php?f=6&t=86179#p413876https://www.virtualbox.org/ticket/17354#comment:22
不幸的是,这个错误相当频繁,已经报告了几十次,原因各不相同。 在我们的例子中,bszom's answer 中显示的设置已经正确。
【讨论】:
似乎任何防病毒软件都是如此,我不得不禁用Kaspersky
。我卸载了virtualbox,然后重新安装,一切正常。谢谢【参考方案3】:
我可以通过在安装过程中禁用所有网络适配器(除了物理适配器)来实现此功能。安装完成后,您可以重新启用它们。要禁用适配器,请执行以下步骤:
-
打开控制面板
网络连接
选择每个适配器,然后从顶部选择“禁用此网络设备”
【讨论】:
【参考方案4】:我和你有同样的错误。 在我的情况下,当我在出现错误后打开 VirtualBox 时,它会提醒 VirtualBox 需要更新。所以我安装了最新的并最终再次打开“Docker Quickstart Terminal”快捷方式,它起作用了。 所以我认为重新安装虚拟盒或者在安装Docker ToolBox之前安装可能会解决这个问题。 (我知道有人先安装它)。 祝你好运。
【讨论】:
【参考方案5】:我能够使用最新的 Virtualbox 版本 6.0.14 解决问题
【讨论】:
【参考方案6】:不幸的是,我也遇到了这个问题(Win10、1709、virtualbox 5.1)。同时使用 vagrant 从网络上拉取 linux 镜像。
这解决了它
将您的网络驱动程序升级到最新版本
卸载 Virtualbox
重新安装 Virtualbox
检查您的网络适配器配置中是否有“仅主机”虚拟适配器。 如果是,那么你很高兴。如果不。尝试从 vboxmanage 安装它。
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe hostonlyif create
如果您看到 HyperV 虚拟以太网适配器,请从设备管理器中卸载它(这通常会阻止创建 virtualbox 虚拟网络(仅主机以太网适配器))
我在公司的一种类型的计算机上遇到了这个问题,但在其他类型的计算机上没有。所以这一定和网卡本身的类型有关。所以有时你很幸运,有时不是。但我更幸运拥有最新展台的硬件。
【讨论】:
【参考方案7】:我遇到了同样的错误。
检查 Window 的设备管理器,发现一个带有感叹号的 Virtualbox 网络适配器设备。
设备状态表明由于某种原因存在签名问题。
我不鼓励任何人忽略警告,但我选择这样做:)
我使用 described in this link 方法关闭了 Window 的签名验证,我终于可以将 Virtualbox 与仅主机适配器一起使用。
注意:这个答案是重复的。我已经删除了其他的
【讨论】:
【参考方案8】:我遇到了同样的错误。
但我在物理连接属性中没有“VirtualBox NDIS6 Bridged Networking Driver”。 A 与wireshark 安装具有相同的驱动程序“NPCAP ...”。如果查看描述,您可以看到这是 NDIS6 驱动程序。
然后我删除所有的 Wireshark 包:NPCAP、WinPCAP、Wireshark 并删除 VirtualBox。
重启。
重新安装虚拟盒子。安装 Docker ToolBox(取消选中安装 NDIS5)。并为 docker 创建 default VM。
docker-machine create -d "virtualbox" default
Host-only 接口正常创建
docker-machine status
Running
这对我有用。
【讨论】:
【参考方案9】:我卸载了wireshark、docker tooltip 和VirtualBox。我还临时停用了防病毒软件。 然后,我安装了 docker tooltip 而没有选择安装 NDIS5,它对我有用。
【讨论】:
【参考方案10】:我昨天第一次安装了 Docker Toolbox,因为我的 Windows 10 Home 不支持 Docker Desktop。
重新启动或安装 Java 并没有为我解决这个问题。所做的就是删除使用 Toolbox(5.2.12 或其他版本)安装的 Oracle 的 VM,然后重新安装新的 6.1.8。检查他们的网站,这是有道理的:
【讨论】:
【参考方案11】:以上解决方案对我不起作用,因此我将Virtual Box
与here 分开安装。
安装 Docker 时,取消选中 Virtual Box
复选框。
【讨论】:
【参考方案12】:我遇到了同样的错误:
(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
注意:作为卸载程序使用这个tool.
并准备好在 windows 8.1 中运行的 docker。
【讨论】:
以上是关于无法创建仅限主机的适配器 - windows 10、docker、virtualbox的主要内容,如果未能解决你的问题,请参考以下文章
VMware 工作站 v7 上的来宾操作系统在无线适配器上桥接时无法 ping 主机操作系统