Vagrant配置的memory与cpus参数被忽略不生效是什么原因?
问题原因及对应解决方案:
- 启动时未指定VirtualBox作为Provider
如果本机同时安装了Hyper-V、VMware Workstation/Player等其他虚拟化软件,Vagrant会默认选择优先级更高的Provider启动,你写在config.vm.provider "virtualbox"代码块内的配置仅会在使用VirtualBox启动时生效,所以会出现配置被忽略的情况。
解决方法:启动命令显式指定Provider即可:
vagrant up --provider virtualbox
已创建的虚拟机未重新加载配置
如果你在首次执行vagrant up完成虚拟机创建后,才修改的CPU、内存配置,直接执行vagrant reload默认不会更新已存在虚拟机的硬件参数。
解决方法二选一即可:- 销毁原有虚拟机后重建(会清除虚拟机内所有非共享目录的数据,无业务数据可选择该方案):
vagrant destroy -f && vagrant up- 执行重载命令强制应用Provider配置:
vagrant reload --provider virtualbox参数简写兼容问题
部分Vagrant 2.2.x分支版本对v.memory、v.cpus的属性简写存在兼容问题,可以替换为VirtualBox原生的自定义配置强制指定参数,修改Provider块为如下内容即可:
config.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--memory", 10240, "--cpus", 4] end
内容的提问来源于stack exchange,提问作者SexyMF
相关产品推荐
相关产品推荐

