我有一个Gentoo VM,它是通过从最新(20131224)最低x86 ISO和Stage 3 tarball(genkernel
作为内核)安装而创建的。我在更新VM上的所有软件包并安装了一些额外功能(例如vim和virtualbox-guest-additions)之后,创建了一个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),并且我有足够的信心排除其中的两个,如下所示:
我仅在VirtualBox / Vagrant中禁用VT-X(我的CPU支持它,并且已在BIOS中启用)。
我的CPU(来自/proc/cpuinfo
)是:Intel(R)CoreTM i3-2120 CPU @ 3.30GHz。该机器已安装8GB RAM,主机操作系统是Ubuntu 13.10。
uname -a
VM中的输出为:
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,因此无法启用硬件虚拟化。
为了解决这个问题,我还有其他尝试吗?
当然,索德定律规定,在花了一个小时写完这个问题之后,我通过另一个来源找到了答案。
问题似乎是Gentoo使用的内核(3.10-因此为什么Precise不会出问题)和禁用硬件虚拟化时通常对来宾的支持的结合。对于遇到类似问题的任何人,相关的VirtualBox错误是:
https://www.virtualbox.org/ticket/12469
不幸的是,到目前为止,主要的响应是“修复不支持VT-x / AMD-V的主机的bug的优先级较低”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句