Как я могу создать виртуальную машину в бродяжнике с виртуальным боксом с двумя cpus?

В Windows 7 64 бит пытается запустить VM (Ubuntu 32 бит). У меня возникли проблемы с получением моей виртуальной машины, чтобы показать два ядра, несмотря на добавление команды modify vm в мой Vagrantfile. Моя бродячая версия - 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 (s) должен показать 2, поэтому у моей виртуальной машины только один процессор прямо сейчас. Как я могу получить 2 процессора, которые будут отображаться при запуске lscpu?

Ответ 1

Добавьте vb.customize ["modifyvm", :id, "--ioapic", "on"] в блок config.vm.provider внутри вашего Vagrantfile.

Глядя на документацию VirtualBox она упоминает:

"Примечание. Включение I/O APIC требуется для работы с 64-разрядными гостевыми систем, особенно Windows Vista; это также необходимо, если вы хотите используйте более одного виртуального процессора на виртуальной машине".

Ответ 2

Если вы используете брандмауэр, используя Oracle Virtualbox, то наиболее распространенной проблемой является Hyper-V в Windows 7, 8 или 10. Это ограничит вас 32-битным и одним процессором.

Запустите или выполните поиск "Возможности Windows" и выберите "Включить или отключить функции Windows".

В флажках убедитесь, что Hyper-V выключен - вы не можете включить VT-x для Virtualbox с Microsoft Hyper-V, поддерживающим его.

Затем вы можете сделать свою загрузку Vagrantfile очень удобной для пользователей:

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

Предполагая, что вы хотите запустить два ядра и чуть более 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

Ответ 3

Кажется, вы не указали, какой провайдер вы используете. Начиная с Vagrant 1.7, многие поставщики VM (такие как VirtualBox, HyperV) поддерживают следующую конфигурацию в вашем Vagrantfile:

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

Обратитесь к конкретному провайдеру, который вы используете в бродячей документации.