当 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 并传递错误消息的指导将不胜感激。

有人告诉我这个post:https://laracasts.com/discuss/channels/general-discussion/homestead-macos-monterey-boot-issue-headless-error-virtualbox?page=1&replyId=744904

由于我使用的 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