我的公司在 VMware 中使用 Vagrant 进行开发。其他人(10 人以上)的设置运行顺利,但我遇到了一个我们都无法解决的令人困惑的问题。
使用
vagrant box add sgvm http://files.vagrantup.com/precise64_vmware.box
添加 vagrant 框后,我尝试使用 vagrant up seatgeek --provider=vmware_fusion
启动 vagrant。这会引发此错误:
An error occurred while executing `vmrun`, a utility for controlling
VMware machines. The command and output are below:
Command: ["start", "/Users/jack/Sites/sg/seatgeek-vm/.vagrant/machines/seatgeek/vmware_fusion/f2e2bebf-e1cb-4bc1-862b-9cb957e13065/precise64.vmx", "nogui", {:notify=>[:stdout, :stderr]}]
Stdout: 2014-02-06T09:20:29.661| ServiceImpl_Opener: PID 20276
Error: The operation was canceled
Stderr:
我联系了 VMware 支持。他们表示无法支持,但他们会确认
vmrun
可以正常工作。他们要求我运行 vmrun -T fusion start
并验证输出是否符合预期。据此,他们说这是一个 Vagrant 问题。我尝试联系 Vagrant 支持人员,但他们没有回复。
有人知道这可能是什么原因造成的吗?或者关于我应该调查的其他事情的想法?
当我尝试将虚拟机上的内存调得太高时,我看到了这一点。达到一定限度后,融合就不再尝试了。请参阅下面我的区块的
memsize
行。
config.vm.provider 'vmware_fusion' do |provider, override|
# provider.gui = true
override.vm.box_url = 'http://files.vagrantup.com/precise64_vmware.box'
provider.vmx['memsize'] = '3072' # VMware refuses to start for anything larger
provider.vmx['numvcpus'] = '1' # http://superuser.com/q/505711/96477
end
此错误的另一个可能来源是 vagrant box 可能具有错误的架构。我无意中在我的 M2 mac 上下载了 x86 盒子,导致出现此错误。当我切换到使用arm64盒子时,虚拟机正确启动。