web-dev-qa-db-ja.com

2つのCPUを持つVirtualBoxでVagrantにVMを作成するにはどうすればよいですか?

Windows 7 64ビットでVM(Ubuntu 32ビット)を起動しようとしています。 Vagrantfileにmodify vmコマンドを追加しても、VMを取得して2つのコアを表示するのに問題があります。 Vagrantバージョンは1.2.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

このVagrantfileを使用して、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には2が表示されるはずなので、VMには現在1つのCPUしかありません。 lscpuを実行したときに2つのCPUを表示するにはどうすればよいですか?

68
nikhil

追加 vb.customize ["modifyvm", :id, "--ioapic", "on"]からconfig.vm.provider Vagrantfile内のブロック。

VirtualBoxを見る ドキュメント それは言及しています:

「注:I/O APICを有効にすることは、64ビットのゲストオペレーティングシステム、特にWindows Vistaに必要です。仮想マシンで複数の仮想CPUを使用する場合にも必要です。」

78
nikhil

Oracle Virtualboxを使用してvagrantを実行している場合、最も一般的な問題はWindows 7、8、または10のHyper-Vにあります。これにより、32ビットと1 CPUに制限されます。

「Windows機能」を実行または検索し、「Windows機能の有効化または無効化」を選択します。

チェックボックスで、Hyper-Vがオフになっていることを確認します。MicrosoftHyper-Vが占有しているVirtualboxでVT-xを有効にすることはできません。

次に、Vagrantfileブートを非常にユーザーフレンドリーにすることができます。

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

2つのコアを実行し、わずか2ギガを超えるメモリを使用したい場合

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
25
brianlmerritt

使用しているプロバイダーについて言及していないようです。 Vagrant 1.7以降、多くのVMプロバイダー(VirtualBox、HyperVなど)は、Vagrantfileで次の構成をサポートします。

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

vagrant documentation で使用している特定のプロバイダーを確認してください。

6
mehmet