Gentoo VirtualBox来宾在没有硬件虚拟化的情况下无法启动

Gentoo VirtualBox来宾在没有硬件虚拟化的情况下无法启动,virtualbox,virtualization,vagrant,gentoo,Virtualbox,Virtualization,Vagrant,Gentoo,我有一个Gentoo VM,我是通过安装最新(20131224)的最小x86 ISO和stage 3 tarball创建的,使用genkernel作为内核。在更新了VM上的所有软件包并安装了一些附加组件(如vim和virtualbox来宾添加)之后,我创建了一个Vagrant box 我的档案如下: Vagrant.configure("2") do |config| config.vm.box = "gentoo-x86" config.vm.provider :virtualbox

我有一个Gentoo VM,我是通过安装最新(20131224)的最小x86 ISO和stage 3 tarball创建的,使用
genkernel
作为内核。在更新了VM上的所有软件包并安装了一些附加组件(如vim和virtualbox来宾添加)之后,我创建了一个Vagrant box

我的档案如下:

Vagrant.configure("2") do |config|
  config.vm.box = "gentoo-x86"

  config.vm.provider :virtualbox do |vb|
    vb.gui = true
    vb.customize ["modifyvm", :id, "--memory", 1024]
    #vb.customize ["modifyvm", :id, "--hwvirtex", "off"]
    vb.customize ["modifyvm", :id, "--cpus", 1]
  end
end
就目前情况而言,当运行Wagrant up时,箱子启动良好。但是,如果我取消注释禁用
--hwvirtex
参数的行,VM控制台中将显示以下错误:

INIT: version 2.88 booting
INFO: rcu_sched detected stalls on CPUs/tasks: {} (detected by 0, t=2102, jiffies, g=4595, c=4594, q=10)
INFO: Stall ended before state dump start
这两行
INFO
无限期地重复(随着
t=
值的增加,我猜这可能代表“时间”),直到我运行
vagrant halt
,然后运行
vagrant destroy
。我在两台不同的主机(一台Ubuntu,一台Windows7)上试过这个方法,得到了相同的错误消息

我怀疑这是Gentoo的问题,因为有三个主要组件(Gentoo、VirtualBox、Vagrant),我有理由有信心排除其中两个组件,如下所示:

Vagrant.configure("2") do |config|
  config.vm.box = "gentoo-x86"

  config.vm.provider :virtualbox do |vb|
    vb.gui = true
    vb.customize ["modifyvm", :id, "--memory", 1024]
    #vb.customize ["modifyvm", :id, "--hwvirtex", "off"]
    vb.customize ["modifyvm", :id, "--cpus", 1]
  end
end
  • 如果我在禁用VT-X的情况下直接从VirtualBox运行VM,我会收到与在关闭hwvirtex的情况下使用Vagrant中的框时相同的错误消息-可能不是Vagrant问题
  • 如果我使用precise32框(由Vagrant维护人员提供),它可以与hwvirtex一起工作(当它关闭时,会有明显的性能损失,但我希望如此)-可能不是VirtualBox问题
  • 我仅在VirtualBox/Vagrant中禁用VT-X(我的CPU支持它,并且在BIOS中已启用)

    我的CPU(来自
    /proc/cpuinfo
    )是:。这台机器安装了8GB的RAM,主机操作系统是Ubuntu 13.10

    VM中
    uname-a
    的输出为:

    Linux vagrant-gentoo-x86 3.10.25-gentoo #1 SMP Fri Jan 10 14:58:12 GMT 2014 i686 Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz GenuineIntel GNU/Linux
    
    我需要在另一台使用旧CPU()的机器上使用此框,因为旧CPU()不支持VT-X,所以不允许启用硬件虚拟化


    为了解决这个问题,我还有别的办法吗?

    当然,sod定律规定,在花一个小时写下这个问题后,我通过另一个来源找到了答案

    问题似乎是Gentoo使用的内核(3.10-因此为什么Precise没有问题)和在禁用硬件虚拟化时对来宾的支持的组合。遇到类似问题的任何人的相关VirtualBox错误是:

    不幸的是,到目前为止,主要的回应是“修复不支持VT-x/AMD-V的主机的bug的优先级较低”