133 votes

Pourquoi VirtualBox ou VMware ne peut-il pas s'exécuter avec Hyper-V activé sous Windows 10

Je cours Windows 10 Pro 64 bits avec Hyper-V et la technologie de virtualisation Intel VT-x activée. Lorsque j'essaie d'exécuter VirtualBox 64 bits, Windows passe en BSOD. Lorsque j'exécute VMware, une erreur s'affiche.

Pourquoi VirtualBox et VMware ne peuvent-ils pas s'exécuter avec Hyper-V activé ? Veuillez expliquer avec tous les détails que vous avez, y compris le matériel et le logiciel. Je veux connaître la cause interne de cette erreur.

Voici quelques conclusions que j'ai tirées. 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, Création d'une entrée de démarrage "no hypervisor", Exécuter Hyper-V et VirtualBox sur la même machine. Mais je peux exécuter QEMU avec Hyper-V. Qemu ne montre aucune erreur avec Hyper-V et s'exécute en douceur.

2 votes

Hyper-V ne prend pas en charge la virtualisation imbriquée (avec accélération matérielle). Cependant, cela ne provoquera pas de crash dans des circonstances normales. VirtualBox se plaindrait qu'il ne peut pas exécuter de clients x64 et c'est tout. Donc, il y a probablement autre chose de mal comme un pilote de périphérique défectueux ou autre chose.

1 votes

Je vois, en effet, cela plante. Cependant, une fois de plus : Ce n'est pas normal. Un plantage n'est jamais normal. Il semblerait que ce soit un bug dans Hyper-V. Vous devriez probablement contacter Microsoft à ce sujet.

1 votes

Il convient de souligner que QEMU n'est pas un hyperviseur. Hyper-V supporte la virtualisation imbriquée.

148voto

user264313 Points 41

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 s'exécutant à l'intérieur 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 "hôte" Windows 10 devient une machine virtuelle. Une spéciale, mais néanmoins une machine virtuelle.

Donc, votre question serait plus appropriée : "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 à partir de votre machine virtuelle, seul l'hôte y a accès.

QEMU fonctionne car il n'effectue pas de virtualisation mais de l'émulation, ce qui explique pourquoi QEMU est extrêmement lent. La virtualisation est le processus d'exécution d'une machine complètement isolée à l'intérieur d'une autre, mais avec l'aide du processeur. Cela nécessite une compatibilité d'instructions entre la machine virtuelle et l'hôte.

L'émulation est le processus d'exécution de n'importe quelle machine à l'intérieur d'un système d'exploitation en cours d'exécution, il n'y a aucune restriction de plateforme, c'est pourquoi QEMU peut exécuter une machine ARM sur une plateforme amd64.

Remarque : QEMU a 2 modes de fonctionnement :

  • il peut fonctionner comme un émulateur, c'est le mode expliqué ci-dessus
  • il peut fonctionner comme un logiciel de virtualisation avec l'aide de KVM si l'architecture du client est compatible avec celle de l'hôte et si l'instruction VT est bien sûr présente.

3 votes

La virtualisation crée un système entier "factice", sauf pour le processeur où l'hyperviseur se contente de limiter la quantité de temps processeur que la machine virtuelle peut utiliser. Ainsi, vous pouvez virtualiser ARM uniquement sur un hôte ARM, x86 sur un hôte x86/amd64, amd64 sur un hôte amd64, etc. Un émulateur va recompiler chaque instruction d'un programme compilé pour une plateforme spécifique afin de le faire fonctionner sur une autre plateforme. QEMU appartient à la même famille que les émulateurs de console, par exemple (psx, dolphin, virtualboy, project64, MAME...).

1 votes

Virtualisation (oui, non emulation) était disponible bien avant que la virtualisation assistée par le matériel ne soit disponible. Elle peut être imbriquée selon les besoins.

5 votes

Pourquoi VirtualBox ne peut-il pas profiter de "Nested VT-x/AMD-V"? Est-ce une limitation du matériel? De Hyper-V?

43voto

kthornbloom Points 101

À 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 Windows Hypervisor Platform (WHPX) est intégré à QEMU, des patchs sont soumis pour fusion.

L'API Windows Hypervisor Platform sera incluse dans la version Redstone 4

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

Mise à jour : Virtualbox 6.0 a ajouté le support pour WHPX Journal des changements Virtualbox 6.0

Mise à jour 2 : VMWare ajoutera le support pour WHPX dans la prochaine version de VMWare Workstation et Fusion. VMware Workstation et Hyper-V – Travailler ensemble

Mise à jour 3 : Publication initiale de VMWare Workstation avec le support WHPX. Les exigences logicielles sont un minimum de la version Windows Insiders 19041. Les exigences matérielles sont un processeur Intel Haswell ou plus récent, un processeur AMD Bulldozer ou plus récent. VMware Workstation Tech Preview 20H1 — Support Hyper-V/Host VBS

4 votes

Cette API théoriquement pourrait également être utilisée par VMWare et VirtualBox.

0 votes

@Ramhound Est-ce possible avec VirtualBox ou VMware? Cet article mentionne seulement qemu.

1 votes

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

5voto

Abdelouahab Points 111

Vmware 15.5+ fonctionnera même si Hyper-v est activé

Avec la sortie de VMware Workstation/Player 15.5.5, nous sommes très heureux et fiers d'annoncer le support des hôtes Windows avec le mode Hyper-V activé ! Comme vous le savez peut-être, il s'agit d'un projet commun de Microsoft et VMware.

3voto

beadon Points 1

Voici ce qui a fonctionné pour moi.

Vous devez vérifier pour vous assurer que Hyper-V n'est pas en cours d'exécution.

Le test révélateur consiste à exécuter "systeminfo" depuis l'invite de commandes et si vous voyez 'Un hyperviseur a été détecté. Les fonctionnalités requises pour Hyper-V ne seront pas affichées' - alors il n'est toujours pas désactivé.

Étapes à suivre pour désactiver

  1. Accédez au BIOS de votre machine, généralement UEFI aujourd'hui, et désactivez TPM ! Sinon, aucune des étapes ci-dessous ne fonctionnera !!

Démarrez l'ordinateur en utilisant F2 pour accéder au mode de configuration du BIOS (les touches alternatives incluent 'Entrée' ou 'Suppr'). Ou utilisez la méthode Windows pour y accéder en utilisant l'application Paramètres (référence : https://www.maketecheasier.com/boot-uefi-from-windows10/)

Une fois dans le BIOS UEFI : Localisez l'option "Sécurité" et développez Localisez l'option "TPM" imbriquée sous le paramètre "Sécurité" Pour effacer le TPM, vous devez cocher la case indiquant : "Effacer" pour effacer le TPM, ou "Désactiver" selon le fabricant de votre matériel

Sauvegardez ces paramètres dans l'interface UEFI, le BIOS vous demandera probablement de redémarrer (suivez ces étapes)

Démarrez normalement ... vous ne verrez probablement aucune différence.

Vérifiez : systeminfo Il devrait toujours se plaindre de Hyper-V

  1. Ouvrez Powershell en mode administrateur, saisissez : Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor -All

attendez que cela se termine... cela vous indiquera que l'action est terminée, mais pas que l'action a réussi.

  1. En Powershell, saisissez également : DISM /Online /Disable-Feature:Microsoft-Hyper-V

attendez que cela se termine... cela vous indiquera que l'action est terminée, mais pas que l'action a réussi.

Vérifiez de nouveau systeminfo -- Hyper-V est probablement toujours en cours d'exécution.. continuez.

  1. Désactiver Windows Credential Guard Cela semble démarrer Hyper-V quelles que soient les paramètres.

Les étapes pour le faire sont dans le lien fourni, mais je vais en extraire les points saillants :

https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage

Ouvrez l'application "Éditeur de stratégie de groupe local" de Microsoft, elle fait déjà partie du système d'exploitation.

Dans la Console de gestion de stratégie de groupe, accédez à Configuration de l'ordinateur -> Modèles d'administration -> Système -> Garde de périphériques.

Modifiez "Activer la sécurité fondée sur la virtualisation" et réglez cette option sur "Désactivé".

  1. Maintenant, redémarrez en passant par le processus d'arrêt habituel de Windows.

  2. Une fois connecté à nouveau, exécutez systeminfo, il DEVRAIT vous montrer

Quelque chose comme ceci maintenant :

Exigences Hyper-V : Extension du mode moniteur VM : Oui Virtualisation activée dans le micrologiciel : Oui Traduction d'adresses de niveau 2 : Oui Prévention de l'exécution des données disponible : Oui

Cela signifie que les extensions de CPU VT-x ne sont pas volées par Hyper-V, et les moteurs de virtualisation de type 2 comme VirtualBox peuvent utiliser directement VT-x pour accélérer considérablement les choses.

Je prévois que d'autres technologies de machines virtuelles bénéficieront également de cela, Hyper-V volant l'interface VT-x des autres technologies de VM garantit presque que les plateformes Windows NE seront PAS utilisées comme système d'exploitation hôte à l'avenir.

C'est incroyablement difficile à désactiver pour l'utilisateur moyen et décourage malheureusement vraiment toute personne utilisant la technologie de machine virtuelle sur Windows car toute virtualisation s'exécute assez lentement.

Bonne chance. Ajoutez des instructions si vous pensez que cela nécessite plus de détails.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X