如何使用带有两个 CPU 的 VirtualBox 在 Vagrant 中创建 VM?

在 Windows764位尝试启动虚拟机(Ubuntu32位)。尽管在我的 Vagrantfile 中添加了 modify vm命令,我还是无法让 VM 显示两个核。我的流浪者版本是1.2。

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


Vagrant.configure("2") do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"


config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
end
end

使用这个流浪汉文件,我发出 vagrant up命令,然后我发出 vagrant ssh,接着是 lscpu,结果是:

Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Stepping:              9
CPU MHz:               2565.513
BogoMIPS:              5131.02
L1d cache:             32K
L1d cache:             32K
L2d cache:             6144K

我认为 CPU (s)应该显示2,所以我的 VM 现在只有一个 CPU。当我运行 lscpu时,如何让2个 CPU 显示出来?

53004 次浏览

vb.customize ["modifyvm", :id, "--ioapic", "on"]添加到流浪汉文件中的 config.vm.provider块。

看看它提到的 VirtualBox 文件:

”注意,64位客户操作需要启用 I/O APIC 系统,尤其是 WindowsVista; 如果您想要 在虚拟机中使用多个虚拟 CPU。”

如果你使用 Oracle Virtualbox 运行流浪汉,那么最常见的问题是 Windows 7、8或10中的 Hyper-V。这将限制您的32位和一个 CPU。

运行或搜索“ Windows 特性”并选择“打开或关闭 Windows 特性”。

在复选框中确保 Hyper-V 是关闭的——你不能在虚拟机上启用 VT-x,因为微软会占用它。

然后,您可以使您的 Vagrantfile 启动非常用户友好:

  config.vm.provider "virtualbox" do |vb|
vb.memory = "2404"
vb.cpus = "2"
end

假设您希望有两个内核运行,并且内存刚刚超过2G

Ps-不要忘记添加你的端口转发。对于 PHPStorm (xdebug,mysql 和 web)我使用:

  config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3306
config.vm.network "forwarded_port", guest: 9000, host: 9000

您似乎没有提到您正在使用哪个提供商。从 Vagrant 1.7开始,许多虚拟机提供程序(如 VirtualBox、 HyperV)在您的 Vagrant 文件中支持以下配置:

config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 2
end

查看您在 流浪汉文件中使用的特定提供程序。