J’utilise Windows 10 Pro 64 bits avec Hyper-V et la technologie de virtualisation Intel VT-x activées. Lorsque j’essaie d’exécuter VirtualBox 64 bits, Windows affiche un écran bleu (BSOD). Lorsque j’exécute VMware, une erreur s’affiche.
Pourquoi VirtualBox et VMware ne peuvent-ils pas fonctionner avec Hyper-V activé ? Veuillez expliquer avec tous les détails dont vous disposez, y compris le matériel et le logiciel. Je souhaite connaître la cause interne de cette erreur.
Voici certaines de mes découvertes. 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 : Creating a “no hypervisor” boot entry, Run Hyper-V and VirtualBox on the same machine. Mais je peux exécuter QEMU avec Hyper-V. QEMU n’affiche aucune erreur avec Hyper-V et fonctionne parfaitement.
VirtualBox et VMware Workstation (ainsi que 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 s’exécutant au sein d’un système d’exploitation existant, tandis qu’un hyperviseur de niveau 1 est le système d’exploitation lui-même.
Cela signifie que lorsque vous activez Hyper-V, votre Windows 10 « hôte » devient une machine virtuelle. Une machine spéciale, certes, mais néanmoins une machine virtuelle.
Votre question serait donc plus justement formulée ainsi : « Pourquoi VirtualBox et VMware Workstation ne fonctionnent-ils pas à l’intérieur d’une machine virtuelle Hyper-V ? » On peut répondre que, en tant que machine virtuelle, les instructions Intel VT-X ne sont plus accessibles depuis votre machine virtuelle ; seul l’hôte y a accès.
QEMU fonctionne parce qu’il ne fait pas de virtualisation mais de l’émulation, ce qui est complètement différent et explique pourquoi QEMU est extrêmement lent. La virtualisation est le processus d’exécution d’une machine isolée complète à l’intérieur d’une autre, mais avec l’aide du processeur. Cela nécessite que la machine virtuelle et l’hôte soient compatibles au niveau des instructions.
L’émulation est le processus d’exécution de n’importe quelle machine au sein d’un système d’exploitation en cours d’exécution ; il n’y a pas de restriction de plateforme, et c’est pourquoi QEMU peut exécuter une machine ARM sur une plateforme amd64.
Remarque : QEMU dispose de 2 modes de fonctionnement :
il peut fonctionner en tant qu’émulateur, c’est le mode expliqué ci-dessus
il peut fonctionner comme logiciel de virtualisation avec l’aide de KVM si l’architecture invité est compatible avec celle de l’hôte et si les instructions VT sont présentes, bien entendu.