Invité Windows 64 bits dans VirtualBox impossible sans prise en charge de VT-x? [dupliquer]


8

J'ai installé avec succès Windows Vista 32 bits dans une machine virtuelle 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éé la machine virtuelle, mais il semble qu'elle ne démarre pas à partir de l'image ISO Vista 64 bits. Il crache cette erreur du gestionnaire de démarrage.

une

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 ... pendant le processus d'installation de la machine virtuelle, j'ai remarqué qu'il y avait des options supplémentaires à choisir quand je prends l'invité Os. Voici une capture d'écran.

b

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

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

c

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

Si oui, que proposez-vous que j'utilise à la place?


@Ramhound Vous venez de demander si je suis sûr que j'utilise un système d'exploitation 64 bits, puis vous avez changé d'avis? J'ai reçu le commentaire dans ma boîte de réception. Eh bien, pour ce que ça vaut, oui, je suis sûr que les deux ordinateurs exécutent la version 64 bits de Windows 7.
Samir

@Ramhound Limitation du matériel? Donc, vous êtes d'accord, cela a à voir avec le support VT-x, ou plutôt son absence?
Samir

Indépendamment des limitations matérielles, vous devriez toujours pouvoir faire des choses dans le logiciel. C'est l'un des avantages de la virtualisation, car elle vous permet de remplacer complètement le matériel physique dans le logiciel. Je sais qu'Intel VT-x est bon, mais pourquoi ne devriez-vous pas pouvoir émuler un système d'exploitation 64 bits dans VirtualBox, tout en étant logiciel, même s'il est extrêmement lent? Pourquoi ne vous permettent-ils pas de faire ça? C'est plutôt une limitation dans VirtualBox.
Samir

Emm ... ne voulez-vous pas dire "vous ne pouvez pas faire quelque chose dans le logiciel si le matériel ne le prend pas en charge"?
Samir

Réponses:


18

La section 3.1.2 du manuel VirtualBox indique explicitement que vous avez besoin de la prise en charge de la virtualisation matérielle pour utiliser des systèmes d'exploitation invités 64 bits (non souligné dans l'original):

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 avec prise en charge de la virtualisation matérielle (reportez-vous à la Section 10.3, «Virtualisation matérielle ou logicielle»).

  2. Vous devez activer la virtualisation matérielle pour la machine virtuelle particulière pour laquelle vous souhaitez une prise en charge 64 bits; la virtualisation logicielle n'est pas prise en charge pour les machines virtuelles 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 particulière. Étant donné que la prise en charge de 64 bits sur des hôtes 32 bits entraîne une surcharge supplémentaire, VirtualBox active uniquement cette prise en charge sur demande explicite.

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

La section 10.3 stipule également ceci (non souligné dans l'original):

La prise en charge des invités 64 bits de VirtualBox (ajoutée avec la version 2.0) et le multitraitement (SMP, ajouté avec la version 3.0) nécessitent tous deux la virtualisation matérielle pour être activée . (Ce n'est pas vraiment une limitation puisque la grande majorité des processeurs 64 bits et multicœurs actuels sont livrés avec la virtualisation matérielle de toute façon; les exceptions à cette règle sont par exemple les anciens processeurs Intel Celeron et AMD Opteron.)

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 ).


Ouais ... et c'est malheureux. Je pensais que cela ne faisait référence qu'aux invités 64 bits sur des hôtes 32 bits. Mais à partir du chapitre 10, ils disent spécifiquement que la virtualisation matérielle est une exigence. Je me demande cependant, comment se fait-il que ce ne soit pas une exigence pour les clients 32 bits? Pourquoi seulement 64 bits?
Samir

Je vous ai donné un vote positif même si j'ai déjà posté ce texte exact dans ma propre réponse. Merci pour l'effort! Je fusionnerai ma réponse avec la vôtre si cela vous convient.
Samir

Connaissez-vous un autre logiciel de virtualisation (de préférence gratuit et open source) capable d'émuler un Windows 64 bits sans la prise en charge de la virtualisation matérielle?
Samir

@sammyg il semble que QEMU, Bochs et VMWare Player le supportent tous, voir ma dernière révision.
nc4pk

Pas vrai. Le lecteur VMware nécessite également la virtualisation pour exécuter une estimation 64 bits, tout comme les autres hyperviseurs. Vous ne pouvez exécuter une estimation 64 bits sans virtualisation sur un émulateur tel que Bochs ou qemu ou un logiciel de paravirtualisation tel que Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv

0

Aucun hyperviseur de machine virtuelle ne prend en charge les machines virtuelles 64 bits dans un processeur x86 sans virtualisation, car l' isolation de la machine virtuelle serait impossible sans elle.

La raison a été mentionnée dans Wikipedia (soulignement le mien):

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 , ce qui rendait 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é.

La révision D et les processeurs AMD 64 bits ultérieurs (en règle générale, ceux fabriqués en 90 nm ou moins) ont ajouté une prise en charge de 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 la traduction binaire . Intel n'a pas ajouté de prise en charge de la segmentation à son implémentation x86-64 (Intel 64), ce qui rend la virtualisation 64 bits uniquement logicielle impossible sur les processeurs Intel, mais la prise en charge Intel VT-x rend possible 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

Défis de la virtualisation x86-64

  • L'architecture AMD64 initiale n'incluait pas la segmentation en mode 64 bits
    • Segmentation également manquante dans EM64T

Comment protégeons-nous le VMM?

  • Le support invité 64 bits nécessite une assistance matérielle supplémentaire
    • Vérifications des limites de segment disponibles en mode 64 bits sur les nouveaux processeurs AMD
    • VT-x peut être utilisé pour protéger le VMM sur EM64T
      • Nécessite une approche piège et émulation au lieu de BT

Lire la suite:

Les processeurs Intel nécessitent la prise en charge EM64T et VT dans la puce et dans le BIOS pour exécuter des machines virtuelles 64 bits. Cet article vous aide à vérifier 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


Le seul moyen dans ce cas est d'utiliser 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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.