没有硬件虚拟化,Gentoo VirtualBox guest虚拟机无法启动

时间:2014-01-11 13:21:57

标签: virtualbox virtualization vagrant gentoo

我有一个Gentoo VM,我是通过安装最新的(20131224)最小x86 ISO和第3阶段tarball创建的,使用genkernel作为内核。在更新VM上的所有软件包并安装一些额外内容(如vim和virtualbox-guest-added)之后,我创建了一个Vagrant框。

我的Vagrantfile如下:

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

目前,运行vagrant 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,一个Windows 7)上尝试了这个并得到相同的错误消息。

我怀疑这是一个Gentoo问题,因为有三个主要组件(Gentoo,VirtualBox,Vagrant),我可以合理地有信心排除其中两个:

  1. 如果我在禁用VT-X的情况下直接从VirtualBox运行VM,我会收到与在Vagrant中使用关闭hwvirtex的框时相同的错误消息 - 可能不是流浪问题。
  2. 如果我使用精确的32框(由Vagrant维护者提供),它可以打开或关闭hwvirtex(当它关闭时会有明显的性能损失,但我希望如此) - 可能不是VirtualBox问题。 / LI>

    我只在VirtualBox / Vagrant中禁用VT-X(我的CPU支持它并在BIOS中启用)。

    我的CPU(来自/proc/cpuinfo)是:Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz。该机器安装了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(Intel E4600)的另一台计算机上使用此框,该计算机不支持VT-X,因此不能选择硬件虚拟化。

    为了解决这个问题,还有其他我可以尝试的方法吗?

1 个答案:

答案 0 :(得分:2)

当然,草皮的法律规定,在花了一个小时写下这个问题之后,我会通过另一个来源找到答案......

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

https://www.virtualbox.org/ticket/12469

不幸的是,到目前为止主要的反应是“修复不支持VT-x / AMD-V的主机的错误具有较低的优先级”。