升级到 Monterey 后,Vagrant/Virtualbox 无法运行

升级到 Monterey 后,Vagrant/Virtualbox 无法运行

我今天将我的 Mac 升级到了 Monterey,现在运行时出现以下错误vagrant up

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'tynesolutions/ruby-node-redis-mysql-ubuntu' version '2.0.0' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 80 (guest) => 3000 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "047f549a-e0be-48d9-93d5-6b1958594689", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'vm_default_1635193007482_74329' has terminated unexpectedly during startup because of signal 10
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

我尝试重新安装 Vagrant 和 Virtualbox,但没有成功。

答案1

这是一个已知问题,似乎与 VirtualBox 版本 6.1.28 有关。

随着 VirtualBox 版本 6.1.30 的发布,该问题已得到解决。

在 Vagrant 的官方 HashiCorp repo 中有一个关于此问题的健康而详细的帖子:“Mac OS Monterey 中的 Vagrant up 问题 #12557

由于人们报告的总体行为相同,因此该问题似乎与 VirtualBox 6.1.28 甚至更早的 6.1.26 完全无关。

请注意您发布的具体错误:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "047f549a-e0be-48d9-93d5-6b1958594689", "--type", "headless"]

失败的命令是headless通过 Vagrant 启动虚拟机的默认选项。目前唯一的解决方法是将启动选项设置为gui而不是headless

正如 Vagrant 官方文档中解释的那样:

GUI 与 Headless

默认情况下,VirtualBox 计算机以无头模式启动,这意味着主机上看不到计算机的 UI。有时,您需要一个 UI。常见用例包括想要查看计算机中可能正在运行的浏览器,或调试奇怪的启动问题。您可以轻松告诉 VirtualBox 提供程序使用 GUI 启动:

config.vm.provider "virtualbox" do |v|
  v.gui = true
end

config.vm.provider "virtualbox" do因此,只需在您的 Vagrantfile 中找到该块并进行设置v.gui = true,它现在就可以工作了;尽管弹出一个 GUI,可能会有点烦人。

话虽如此,该问题线程中的另一个用户指出config.vm.network网络命令可能不起作用。

所以这一切可能归结为在 Vagrant 2.2.19 中修复了这个问题?或者也许 VirtualBox 也存在问题?

令人困惑和烦恼,但希望这能有所帮助。


更新:这似乎是 VirtualBox 本身的问题,而不是 Vagrant 的问题。该问题似乎已在票号 20636标题为“VBoxHeadless 无法在 macOS Monterey 12.0.1 中运行 => 将在 SVN/下次维护中修复”并且根据用户“klaus”的评论

最新 6.1测试构建已修复,但通常适用“未公证”警告,该警告已在那里记录,并带有“禁用 SIP”解决方法。


更新:在 VirtualBox 版本 6.1.30 中已修复;版本 6.1 更新日志明确引用票号20636

VBoxHeadless:修复在 macOS Monterey 上运行时崩溃的问题(bug #20636

答案2

升级到 Monterey 时我遇到了相同的错误。无论我怎么重新安装似乎都没用。

最终对我有用的是更新我的 Vagrantfile 以设置gui=truevirtualbox:

config.vm.provider "virtualbox" do |vb|
  vb.memory = "4096"
  vb.cpus = 6
  vb.gui = true  # Add this line
end

这有点烦人,因为它会打开一个 VirtualBoxVM 窗口,其中包含虚拟机的控制台。但我能够最小化这个窗口,它不需要我输入任何内容就可以vagrant up正常运行。

答案3

升级到 Big Sur 时遇到了类似的问题。答案,或者无论如何非常相似的答案,对我来说就是解决方案。

最后,我不得不卸载、重新启动、重新安装几次,然后才按下“允许”按钮。

所以,这是一个权限问题。

相关内容