Pourquoi VirtualBox ou VMware ne peuvent-ils pas fonctionner avec Hyper-V activé sur Windows 10?

58

J'utilise Windows 10 Pro 64 bits avec la technologie de virtualisation Hyper-V et Intel VT-x activée. Lorsque j'essaie d'exécuter VirtualBox 64 bits, Windows passe dans un BSOD. Lorsque je lance VMware, cela indique une erreur.

Pourquoi VirtualBox et VMware ne peuvent-ils pas fonctionner avec Hyper-V activé? S'il vous plaît expliquer avec tous les détails que vous avez, y compris le matériel et les logiciels. Je veux connaître la cause interne de cette erreur.

Voici quelques découvertes miennes. La plupart des sites suggèrent d'ajouter une entrée de démarrage avec BCDedit ou de désactiver Hyper-V avec BCDedit. Par exemple, en créant une entrée de démarrage "sans hyperviseur" , exécutez Hyper-V et VirtualBox sur le même ordinateur . Mais je peux exécuter QEMU avec Hyper-V . Qemu ne montre aucune erreur avec Hyper-V et fonctionne correctement.

Biswapriyo
la source
2
Hyper-V ne prend pas en charge la virtualisation imbriquée (avec accélération matérielle). Cependant, il ne tombera pas en panne dans des circonstances normales. VirtualBox se plaindrait de l'impossibilité d'exécuter des invités x64, et c'est tout. Donc, quelque chose ne va pas, comme un pilote de périphérique défectueux ou autre.
Daniel B
Je vois, ça tombe en effet. Cependant, encore une fois: ce n'est pas normal. Un accident n'est jamais normal. Il semble que ce soit un bogue dans Hyper-V. Vous devriez probablement contacter Microsoft à ce sujet.
Daniel B
A noter que QEMU n'est pas un hyperviseur. Hyper-V prend en charge la virtualisation imbriquée.
Ramhound,

Réponses:

67

VirtualBox et VMware Workstation (et VMware Player) sont des "hyperviseurs de niveau 2". Hyper-V et VMware ESXi sont des "hyperviseurs de niveau 1".

La principale différence est qu'un hyperviseur de niveau 2 est une application qui s'exécute dans un système d'exploitation existant, tandis qu'un hyperviseur de niveau 1 correspond au système d'exploitation lui-même.

Cela signifie que lorsque vous activez Hyper-V, votre "hôte" Windows 10 est devenu un ordinateur virtuel. Un spécial, mais néanmoins une machine virtuelle.

Votre question serait donc plus judicieuse: "Pourquoi VirtualBox et VMware Workstation ne fonctionnent-ils pas dans une machine virtuelle Hyper-V?" On peut répondre car, en tant que machine virtuelle, l'instruction Intel VT-X n'est plus accessible à partir de votre machine virtuelle, seul l'hôte y a accès.

QEMU fonctionne car il ne fait pas de virtualisation mais d'émulation, ce qui est complètement différent et explique pourquoi QEMU est terriblement lent. La virtualisation est le processus permettant d’exécuter une machine isolée complète dans une autre, mais avec l’aide du processeur. Cela nécessite que la machine virtuelle et l'hôte soient compatibles avec les instructions.

L'émulation est le processus permettant d'exécuter n'importe quelle machine dans un système d'exploitation en cours d'exécution. Il n'y a aucune restriction de plate-forme. C'est pourquoi QEMU peut exécuter une machine ARM sur une plate-forme amd64.

Remarque: QEMU a 2 modes de fonctionnement:

  • il peut fonctionner comme un émulateur, c'est ce mode expliqué ci-dessus
  • il peut fonctionner comme logiciel de virtualisation à l'aide de KVM si l'architecture de l'invité est compatible avec celle de l'hôte et si l'instruction VT est bien sûr présente.
Veovis
la source
1
La virtualisation crée un "faux" système complet, à l'exception du processeur où l'hyperviseur limitera uniquement la quantité de temps de traitement que la machine virtuelle peut utiliser. Ainsi, vous ne pouvez virtualiser arm que sur un hôte arm, x86 sur un hôte x86 / amd64, amd64 sur un hôte amd64, etc. QEMU appartient à la même famille que les émulateurs de console par exemple (psx, dolphin, virtualboy, project64, MAME ...)
Veovis
La virtualisation (oui, pas l' émulation) est disponible bien avant la virtualisation assistée par matériel. Il peut être imbriqué comme souhaité.
Daniel B
2
Pourquoi VirtualBox ne peut-il pas tirer parti de "Nested VT-x / AMD-V"? Est-ce une limitation du matériel? De l'hyper-v?
user643011
21

À partir de la version Windows Redstone 4, QEMU pourra s’exécuter sous Hyper-V en utilisant l’ API Windows Hypervisor Platform .

L'accélérateur WHPX (Windows Hypervisor Platform) est en cours d'intégration dans les correctifs QEMU qui sont soumis à la fusion .

L'API Windows Hypervisor Platform sera inclus dans Redstone 4 build

Le support expérimental pour WHPX est inclus dans QEMU 2.12

Mise à jour: Virtualbox 6.0 a ajouté la prise en charge de WHPX Virtualbox 6.0 Changelog .

Mise à jour 2: VMWare ajoutera une prise en charge de WHPX dans la prochaine version de VMWare Workstation and Fusion. VMware Workstation et Hyper-V - Travailler ensemble

nkef
la source
3
En théorie, cette API pourrait également être utilisée par VMWare et VirtualBox.
Ramhound
@Ramhound Peut-on le faire avec VirtualBox ou VMware? Cet article ne mentionne que qemu.
Biswapriyo
@Biswapriyo, j’ai déterminé que VMWare et VirtualBox étaient possibles directement à partir de la documentation. Cependant, VMWare et VirtualBox devraient apporter les modifications nécessaires à leur application
Ramhound
Pouvez-vous expliquer en quoi cela diffère de Nested VT-x / AMD-V?
user643011
Le support WHPX de Virtualbox 6.0 est une qualité très alpha. Cela fonctionne à peine en ce moment.
user643011