当 Mac OSX Monterey 12.0.1 上的终端 运行 `vagrant up` 时在 VirtualBox 上执行 `VBoxManage` 时出错
error executing `VBoxManage` on VirtualBox when running `vagrant up` in terminal on Mac OSX Monterey 12.0.1
我是 运行 Mac OSX Monterey 12.0.1,Vagrant 2.2.19 和 VirtualBox 6.1.30。当我尝试使用 vagrant up
通过 mac 终端启动 Vagrant 时。返回此错误消息:
Bringing machine 'homestead' up with 'virtualbox' provider...
==> homestead: Checking if box 'laravel/homestead' version '11.5.0' is up to date...
==> homestead: 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: failed to open /dev/vboxnetctl: No such file or directory
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
VBoxManage: error: Context: "RTEXITCODE handleCreate(HandlerArg *)" at line 95 of file VBoxManageHostonly.cpp
我已经尝试卸载并重新安装 VirtualBox 和 Vagrant 并重新启动 OSX 但我仍然收到与上述相同的消息。
在我寻找答案的过程中,我不断收到将其添加到我的 Vagrantfile 的建议,但我不确定需要将其插入何处,因为它目前在我的文件中没有,也没有人说明在哪里在文件中插入:
config.vm.provider "virtualbox" do |v| v.gui = true end
此外,在 Vagrant 的代码库中,我发现这个片段 (https://github.com/hashicorp/vagrant/blob/5b501a3fb05ed0ab16cf10991b3df9d231edb5cf/plugins/providers/virtualbox/driver/base.rb) 表明它可能是需要安装或正确安装的内核驱动程序。但是我没有找到任何关于驱动程序安装的参考资料。
if r.stderr =~ /failed to open \/dev\/vboxnetctl/i
# This catches an error message that only shows when kernel
# drivers aren't properly installed.
@logger.error("Error message about unable to open vboxnetctl")
raise Vagrant::Errors::VirtualBoxKernelModuleNotLoaded
end
任何关于我如何更改 Vagrant 或 VirtualBox 的配置以启动 vagrant 并传递错误消息的指导将不胜感激。
由于我使用的 virtualbox 6.1.30 版本比此 post 和 6.1.30 修复了 virtualbox 安装我决定继续重试列出的内核扩展命令(在确认他们引用的文件已经存在)。
命令是:
sudo kextload /Library/Application\ Support/VirtualBox/VBoxDrv.kext -r /Library/Extensions
sudo kextload /Library/Application\ Support/VirtualBox/VBoxNetAdp.kext -r /Library/Extensions
sudo kextload /Library/Application\ Support/VirtualBox/VBoxNetFlt.kext -r /Library/Extensions
sudo kextload /Library/Application\ Support/VirtualBox/VBoxUSB.kext -r /Library/Extensions
第二个命令响应我需要重新启动。所以我忽略了,继续 运行 其余命令,然后重新启动计算机。
然后在Homestead工程目录下我又运行vagrant up
。
这次成功了,还是运行ning headless - 有点像我 :)
附加说明(以防我需要自己回来回答):
- 启动 vag运行t 需要一段时间,因为它实际上是在构建要使用的 virtualbox 环境。
- 运行将此用于 laravel 项目,并在 运行 宁 php artisan 服务并导航到本地主机后收到
The Mix manifest does not exist
.解决我运行php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
- (如果我没记错的话)在此步骤中,我需要转到 Mac 系统偏好设置 > 安全和隐私设置,然后单击
allow
。
- 其次是
npm ci && npm run dev
- 最后运行
npm run watch
我是 运行 Mac OSX Monterey 12.0.1,Vagrant 2.2.19 和 VirtualBox 6.1.30。当我尝试使用 vagrant up
通过 mac 终端启动 Vagrant 时。返回此错误消息:
Bringing machine 'homestead' up with 'virtualbox' provider...
==> homestead: Checking if box 'laravel/homestead' version '11.5.0' is up to date...
==> homestead: 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: failed to open /dev/vboxnetctl: No such file or directory
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
VBoxManage: error: Context: "RTEXITCODE handleCreate(HandlerArg *)" at line 95 of file VBoxManageHostonly.cpp
我已经尝试卸载并重新安装 VirtualBox 和 Vagrant 并重新启动 OSX 但我仍然收到与上述相同的消息。
在我寻找答案的过程中,我不断收到将其添加到我的 Vagrantfile 的建议,但我不确定需要将其插入何处,因为它目前在我的文件中没有,也没有人说明在哪里在文件中插入:
config.vm.provider "virtualbox" do |v| v.gui = true end
此外,在 Vagrant 的代码库中,我发现这个片段 (https://github.com/hashicorp/vagrant/blob/5b501a3fb05ed0ab16cf10991b3df9d231edb5cf/plugins/providers/virtualbox/driver/base.rb) 表明它可能是需要安装或正确安装的内核驱动程序。但是我没有找到任何关于驱动程序安装的参考资料。
if r.stderr =~ /failed to open \/dev\/vboxnetctl/i
# This catches an error message that only shows when kernel
# drivers aren't properly installed.
@logger.error("Error message about unable to open vboxnetctl")
raise Vagrant::Errors::VirtualBoxKernelModuleNotLoaded
end
任何关于我如何更改 Vagrant 或 VirtualBox 的配置以启动 vagrant 并传递错误消息的指导将不胜感激。
由于我使用的 virtualbox 6.1.30 版本比此 post 和 6.1.30 修复了 virtualbox 安装我决定继续重试列出的内核扩展命令(在确认他们引用的文件已经存在)。
命令是:
sudo kextload /Library/Application\ Support/VirtualBox/VBoxDrv.kext -r /Library/Extensions
sudo kextload /Library/Application\ Support/VirtualBox/VBoxNetAdp.kext -r /Library/Extensions
sudo kextload /Library/Application\ Support/VirtualBox/VBoxNetFlt.kext -r /Library/Extensions
sudo kextload /Library/Application\ Support/VirtualBox/VBoxUSB.kext -r /Library/Extensions
第二个命令响应我需要重新启动。所以我忽略了,继续 运行 其余命令,然后重新启动计算机。
然后在Homestead工程目录下我又运行vagrant up
。
这次成功了,还是运行ning headless - 有点像我 :)
附加说明(以防我需要自己回来回答):
- 启动 vag运行t 需要一段时间,因为它实际上是在构建要使用的 virtualbox 环境。
- 运行将此用于 laravel 项目,并在 运行 宁 php artisan 服务并导航到本地主机后收到
The Mix manifest does not exist
.解决我运行php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
- (如果我没记错的话)在此步骤中,我需要转到 Mac 系统偏好设置 > 安全和隐私设置,然后单击
allow
。 - 其次是
npm ci && npm run dev
- 最后运行
npm run watch