Homestead Vagrant无法启动VM:“ VMMR0.r0模块版本与VBoxVMM.dll / so / dylib不匹配”

时间:2018-07-24 13:15:44

标签: vagrant ubuntu-16.04 vagrantfile

我尝试遵循以下answer,并将xdebug安装到无所事事以连接到原子。

因此,在我的Vagrantfile中,我进行了以下设置:

config.vm.network :forwarded_port, guest: 9000, host: 9000

产生以下Vagrantfile的是:

# -*- mode: ruby -*-
# vi: set ft=ruby :

require 'json'
require 'yaml'

VAGRANTFILE_API_VERSION ||= "2"
confDir = $confDir ||= File.expand_path("vendor/laravel/homestead", File.dirname(__FILE__))

homesteadYamlPath = File.expand_path("Homestead.yaml", File.dirname(__FILE__))
homesteadJsonPath = File.expand_path("Homestead.json", File.dirname(__FILE__))
afterScriptPath = "after.sh"
aliasesPath = "aliases"

require File.expand_path(confDir + '/scripts/homestead.rb')

Vagrant.require_version '>= 1.9.0'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    if File.exist? aliasesPath then
        config.vm.provision "file", source: aliasesPath, destination: "/tmp/bash_aliases"
        config.vm.provision "shell" do |s|
            s.inline = "awk '{ sub(\"\r$\", \"\"); print }' /tmp/bash_aliases > /home/vagrant/.bash_aliases"
        end
    end

    if File.exist? homesteadYamlPath then
        settings = YAML::load(File.read(homesteadYamlPath))
    elsif File.exist? homesteadJsonPath then
        settings = JSON.parse(File.read(homesteadJsonPath))
    else
        abort "Homestead settings file not found in #{confDir}"
    end

    Homestead.configure(config, settings)

    if File.exist? afterScriptPath then
        config.vm.provision "shell", path: afterScriptPath, privileged: false, keep_color: true
    end

    if defined? VagrantPlugins::HostsUpdater
        config.hostsupdater.aliases = settings['sites'].map { |site| site['map'] }
    end

    config.vm.network :forwarded_port, guest: 9000, host: 9000
end

我尝试通过以下命令启动它:

vagrant up --provision

但是出现以下错误:

  

执行VBoxManage(Vagrant使用的CLI)时出错   用于控制VirtualBox。命令和stderr如下所示。

     

命令:[“ startvm”,“ 12135e8c-7547-4c7e-a25c-58a7136fb600”,“-type”,“ headless”]

     

Stderr:VBoxManage:错误:VMMR0.r0模块版本与VBoxVMM.dll / so / dylib不匹配。如果您只是升级VirtualBox,请终止所有VM,并确保VBoxNetDHCP和VBoxNetNAT均未运行。然后再试一次。如果此错误仍然存​​在,请尝试重新安装VirtualBox。 (VERR_VMM_R0_VERSION_MISMATCH)   VBoxManage:错误:详细信息:代码NS_ERROR_FAILURE(0x80004005),组件ConsoleWrap,接口IConsole

我的Virtualbox版本是5.1.38_Ubuntur122592(来自命令VboxManage -v)。

您知道我该如何解决吗?

1 个答案:

答案 0 :(得分:2)

您应按照here中所述的步骤进行操作。步骤是:

首先卸载虚拟机:

sudo apt-get remove virtualbox virtualbox-ose virtualbox-qt

然后运行以下命令:

find / -name '*VMMR0*' -o -name '*VBoxVMM*'

然后重新安装:

sudo apt-get install virtualbox virtualbox-qt

然后cd到项目的根路径并运行

vagrant up

就我而言,我必须重复两次这些步骤才能使其正常工作。