Comment puis-je créer une machine virtuelle dans Vagrant avec VirtualBox avec deux processeurs?

Sur Windows 7 64 bits en essayant de démarrer une machine virtuelle (Ubuntu 32 bits). J'ai du mal à faire en sorte que ma machine virtuelle montre deux cœurs malgré l'ajout de la commande modify vm dans mon fichier Vagrantfile. Ma version Vagrant est 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

Avec ce Vagrantfile, j'émet la commande vagrant up. Ensuite, j'émet vagrant ssh suivi de lscpu qui donne:

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

Je pense que les CPU (s) devraient montrer 2, donc ma VM n'a qu'un seul CPU en ce moment. Comment puis-je faire apparaître 2 processeurs lorsque je lance lscpu?

64
demandé sur Mateusz Piotrowski 2013-06-15 00:51:00

3 réponses

Ajoutez vb.customize ["modifyvm", :id, "--ioapic", "on"] Au bloc config.vm.provider dans votre fichier Vagrantfile.

En regardant la documentation VirtualBox il mentionne:

"Remarque L'activation de L'APIC d'e/s est requise pour le fonctionnement de l'invité 64 bits systèmes, en particulier Windows Vista; il est également nécessaire si vous voulez utilisez plus d'un processeur virtuel dans une machine virtuelle."

76
répondu nikhil 2014-01-28 20:59:04

Si vous exécutez vagrant en utilisant Oracle Virtualbox, le problème le plus courant est avec Hyper-V dans Windows 7, 8 ou 10. Cela vous limitera à 32 bits et un processeur.

Exécutez ou recherchez "fonctionnalités Windows" et sélectionnez "Activer ou désactiver les fonctionnalités Windows".

Dans les cases à cocher, assurez-vous que Hyper-V est désactivé - vous ne pouvez pas activer VT-x pour Virtualbox avec Microsoft Hyper-V monopolisant.

Ensuite, vous pouvez rendre votre démarrage Vagrantfile très convivial avec:

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

En supposant que vous vous voulez avoir deux cœurs en cours d'exécution et juste un peu plus de 2 Go de mémoire

Ps - n'oubliez pas d'ajouter votre redirection de port. Pour PHPStorm (Xdebug, mysql et web) j'utilise:

  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
19
répondu brianlmerritt 2015-12-27 08:15:28

Il semble que vous n'ayez pas mentionné quel fournisseur vous utilisez. Depuis Vagrant 1.7, de nombreux fournisseurs de machines virtuelles (tels que VirtualBox, HyperV) prennent en charge la configuration suivante dans votre fichier Vagrant:

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

Consultez le fournisseur spécifique que vous utilisez dans la documentation vagrant .

5
répondu mehmet 2015-05-28 16:15:12