web-dev-qa-db-fra.com

Invité Windows 64 bits dans VirtualBox impossible sans le support de VT-x?

J'ai réussi à installer Windows Vista 32 bits dans une VM avec VirtualBox. Maintenant, j'essaie de faire la même chose avec Windows Vista 64 bits et cela ne fonctionne tout simplement pas. J'ai créé le VM mais il semble qu'il ne puisse pas démarrer à partir de l'image ISO Vista 64 bits. Il crache cette erreur du gestionnaire de démarrage.

a

Le système d'exploitation hôte est Windows 7 64 bits sur un processeur Intel Core 2 Duo 64 bits. Maintenant, j'ai fait la même chose et installé la même version de VirtualBox sur un autre ordinateur, exécutant également Windows 7 64 bits, créé la machine virtuelle, puis ... au cours du processus d'installation VM, j'ai remarqué qu'il avait des options supplémentaires à choisir lorsque je choisis l'invité Os. Voici une capture d'écran.

b

Vous pouvez voir ces options entre les deux où il est dit 64 bits, je n'ai pas ces options sur cet autre ordinateur. Maintenant, celui-ci utilise un Intel Core 2 Quad, un modèle haut de gamme. Il prend en charge la technologie de virtualisation Intel, contrairement à l’autre.

Voici à quoi ressemble la même boîte de dialogue sur l’ordinateur Core 2 Duo. Voici une capture d'écran.

c

Cela pourrait-il être la raison? Est-ce que cela signifie que vous ne pouvez pas émuler un OS invité Windows 64 bits avec VirtualBox, à moins que votre processeur ne prenne en charge la technologie de virtualisation Intel? Je comprends que cette technologie accélère considérablement les choses, mais ne vous laisse pas imiter ce système d'exploitation ... c'est un peu extrême, non?

Si oui, que suggérez-vous que j'utilise à la place?

8
Samir

La section 3.1.2 du manuel de VirtualBox indique explicitement que vous avez besoin de la prise en charge de la virtualisation matérielle pour utiliser les systèmes d'exploitation invités 64 bits (caractères gras ajoutés):

VirtualBox prend en charge les systèmes d'exploitation invités 64 bits, même sur les systèmes d'exploitation hôtes 32 bits, à condition que les conditions suivantes soient remplies:

  1. Vous avez besoin d'un processeur 64 bits prenant en charge la virtualisation matérielle (reportez-vous à la Section 10.3, "Virtualisation matérielle/logicielle").

  2. Vous devez activer la virtualisation matérielle pour la VM particulière pour laquelle vous souhaitez une prise en charge 64 bits. la virtualisation logicielle n'est pas prise en charge pour les ordinateurs virtuels 64 bits.

  3. Si vous souhaitez utiliser la prise en charge d'invité 64 bits sur un système d'exploitation hôte 32 bits, vous devez également sélectionner un système d'exploitation 64 bits pour la machine virtuelle concernée. La prise en charge de 64 bits sur des hôtes 32 bits entraînant une surcharge supplémentaire, VirtualBox n'active cette prise en charge que sur demande explicite.

Source: https://www.virtualbox.org/manual/ch03.html#intro-64bitguests

La section 10.3 indique également ceci (soulignement ajouté):

Support invité 64 bits de VirtualBox (ajouté avec la version 2.0) et multitraitement (SMP, ajouté avec la version 3.0) les deux requièrent que la virtualisation matérielle soit activée . (Ce n'est pas vraiment une limitation puisque la grande majorité des processeurs 64 bits et multicœurs actuels intègrent de toute façon une virtualisation matérielle; les exceptions à cette règle sont par exemple les processeurs Intel Celeron et AMD Opteron plus anciens.)

Source: https://www.virtualbox.org/manual/ch10.html#hwvirt

Ainsi, vous avez besoin d’un processeur prenant en charge VT-x ou AMD-V pour utiliser des invités 64 bits avec VirtualBox. Cependant, , QEMU, Bochs et VMWare Player prennent tous en charge les invités 64 bits sans prise en charge de la virtualisation matérielle (au moins selon cette page ).

18
nc4pk

Les hyperviseurs de machine virtuelle ne prennent pas en charge les machines virtuelles 64 bits dans un CPU x86 sans virtualisation, car , l'isolation de la machine virtuelle serait impossible sans elle.

La raison a été mentionnée dans Wikipedia (emphase mienne):

La version initiale de x86-64 (AMD64) ne permettait pas une virtualisation complète uniquement logicielle en raison du manque de prise en charge de la segmentation en mode long , qui a rendu impossible la protection de la mémoire de l'hyperviseur , en particulier la protection du gestionnaire d'interruptions qui s'exécute dans l'espace d'adressage du noyau invité.

Les processeurs AMD 64 bits de la révision D et des versions ultérieures (en règle générale, ceux fabriqués en 90 nm ou moins) ont pris en charge la base pour la segmentation en mode long, ce qui permet d'exécuter des invités 64 bits dans des hôtes 64 bits via une traduction binaire. . Intel n'a pas ajouté de prise en charge de la segmentation à son implémentation x86-64 (Intel 64), rendant la virtualisation logicielle uniquement 64 bits impossible sur les processeurs Intel, mais la prise en charge d'Intel VT-x permet la virtualisation assistée par matériel 64 bits sur la plate-forme Intel.

VMWare a également déclaré que le manque de virtualisation rend difficile la protection de la machine virtuelle

Les défis de la virtualisation x86-64

  • L'architecture AMD64 initiale n'incluait pas la segmentation en mode 64 bits
    • La segmentation est également absente de EM64T

Comment protégeons-nous le VMM?

  • La prise en charge des clients 64 bits nécessite une assistance matérielle supplémentaire
    • Contrôles de limite de segment disponibles en mode 64 bits sur les processeurs AMD plus récents
    • VT-x peut être utilisé pour protéger le VMM sur EM64T
      • Requiert une approche piège et émule au lieu de BT

Lire la suite:

Les processeurs Intel nécessitent la prise en charge des technologies EM64T et VT dans la puce et dans le BIOS pour exécuter des machines virtuelles 64 bits. Cet article vous aide à vous assurer que votre processeur est compatible VT et vous explique également comment activer cette fonctionnalité.
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944


La seule façon dans ce cas utilise un émulateur comme QEMU ou Bochs , ou un logiciel de paravirtualisation comme Xen.

En savoir plus: Exécution de x86-64 ASM sur un processeur x86-32

0
phuclv