Il y a deux choses que vous devez faire pour masquer l'hyperviseur du système d'exploitation invité :
- Masquer l'indicateur de fonctionnalité du processeur de l'hyperviseur.
- Masquer les feuilles CPUID de l'hyperviseur.
Ni l'un ni l'autre ne peut être fait entièrement dans virt-manager; vous devrez éditer le XML de la machine virtuelle.
Par défaut, le CPU est défini sur "Hyperviseur par défaut" :
Cela se traduit par un "CPU virtuel QEMU version 2.5+"
Tout d'abord, vous devrez définir un type de CPU dans virt-manager. Le processeur virtuel QEMU par défaut ne peut pas voir son indicateur d'hyperviseur supprimé dans libvirt.
Pour de meilleures performances et fonctionnalités, vous devez simplement sélectionner "Copier la configuration du processeur hôte" et "Appliquer". Cela vous permettra d'utiliser la virtualisation imbriquée, en exécutant des machines virtuelles accélérées 64 bits à l'intérieur de cette machine virtuelle.
Il y aura maintenant une section CPU dans le XML de la machine virtuelle que vous pourrez modifier. Exécutez sudo virsh edit <vmname>
. La section CPU ressemblera à ceci :
<cpu mode='host-model' check='partial'>
<model fallback='allow'/>
</cpu>
Vous devez ajouter un élément pour supprimer la fonctionnalité de processeur de l'hyperviseur, ce qui lui donnera l'aspect suivant :
<cpu mode='host-model' check='partial'>
<model fallback='allow'/>
<feature policy='disable' name='hypervisor'/>
</cpu>
Maintenant, vous devez également désactiver les feuilles CPUID de l'hyperviseur. Cela permet à d'autres choses comme les pilotes NVIDIA de fonctionner.
Cela se fait en ajoutant un nouvel élément à l'intérieur du <features>
élément.
Juste au-dessus :
</features>
Vous devez ajouter :
<kvm>
<hidden state='on'/>
</kvm>
Maintenant, arrêtez la machine virtuelle et redémarrez-la (un redémarrage n'est pas suffisant ; un arrêt complet est requis).
À ce stade, le Gestionnaire des tâches affiche :
Vous pouvez également exécuter systeminfo
dans un PowerShell ou une invite de commande. En bas, si tout va bien, vous verrez toutes les réponses Oui dans la section Hyper-V :
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
Maintenant, vous pouvez faire tout ce que vous vouliez faire.