Ocultar el estado de la máquina virtual del sistema operativo invitado

1

Host OS: Fedora SO invitado: Windows 10 Virtualización: KVM

Entonces, la idea es ejecutar una máquina host de Windows 10 que no sepa que es una máquina virtual. Entonces, cuando abro el administrador de tareas en la máquina de Windows invitada, y bajo la pestaña de ejecución, la etiqueta "Máquina virtual" está configurada en "NO". Hasta ahora he llegado a comprender que el administrador de tareas realiza determinaciones basadas en estos dos parámetros:

  1. Probando el bit presente del hipervisor CPUID
  2. Prueba de la información de DMI del BIOS virtual y el puerto del hipervisor

Deseo ejecutar Windows 10 en una VM (como invitado) y tenerlo convencido de que no está en una VM. Realmente hay muchas razones: paso de GPU, interruptores de eliminación de controladores, pruebas, etc.

¿Alguien puede ayudarme a configurar esta máquina virtual para que ya no sea consciente de que es una máquina virtual?

También estoy usando Virt-Manager.

La respuesta a continuación de Michael resuelve el problema y proporciona directrices claras. Sin embargo, a pesar de que se ha logrado el propósito y en el administrador de tareas esto ya no se informa como una máquina virtual cuando se ejecuta un comando "systeminfo" dentro del PowerShell, todo es como debería ser, excepto por la "Versión del BIOS" que dice algo así como " SeaBios -... fedora28 ..... "y" Fabricante del sistema "que lee" QEMU ".

¿Se pueden cambiar estos parámetros también?

Gracias por tu tiempo y esfuerzo.

ChronicUser
fuente
2
¿Por qué quieres hacer esto? La solución puede depender de lo que realmente desea hacer, que debe incluir en su pregunta.
Michael Hampton
¿Desea ejecutar Windows 10 en una máquina virtual (como invitado) y está convencido de que no está en una máquina virtual? ¿O desea ejecutar Windows 10 como host y no saber que se está ejecutando una máquina virtual?
Xen2050

Respuestas:

1

Hay dos cosas que debe hacer para ocultar el hipervisor del sistema operativo invitado:

  • Oculta la característica de la CPU del hipervisor.
  • Ocultar el hipervisor CPUID deja.

Ninguno de estos puede hacerse completamente en virt-manager; Tendrá que editar la máquina virtual XML.

Por defecto, la CPU está configurada en "Hipervisor por defecto":

virt-manager CPU selection of Hypervisor default

Esto se traduce en una "CPU virtual QEMU versión 2.5+"

Task Manager with QEMU virtual CPU

Primero, deberá configurar un tipo de CPU en virt-manager. La CPU virtual QEMU predeterminada no puede tener su marca de hipervisor eliminada dentro de libvirt.

Para obtener el mejor rendimiento y funcionalidad, solo debe seleccionar "Copiar la configuración de la CPU del host" y "Aplicar". Esto le permitirá utilizar la virtualización anidada, ejecutando máquinas virtuales aceleradas de 64 bits dentro de esta máquina virtual.

virt-manager CPU setting Copy host CPU configuration

Ahora habrá una sección de CPU en la máquina virtual XML que puede editar. correr sudo virsh edit <vmname>. La sección de CPU se verá así:

  <cpu mode='host-model' check='partial'>
    <model fallback='allow'/>
  </cpu>

Debe agregar un elemento para eliminar la característica de la CPU del hipervisor, haciendo que se vea así:

  <cpu mode='host-model' check='partial'>
    <model fallback='allow'/>
    <feature policy='disable' name='hypervisor'/>
  </cpu>

Ahora también necesitas deshabilitar las hojas de CPUID del hipervisor. Esto permite que algunas otras cosas como los controladores NVIDIA funcionen.

Esto se hace agregando un nuevo elemento dentro del <features> elemento.

Justo arriba:

  </features>

Usted debe agregar:

  <kvm>
    <hidden state='on'/>
  </kvm>

Ahora, apague la máquina virtual y vuelva a iniciarla (un reinicio no es suficiente; se requiere un cierre completo).

En este punto, el Administrador de tareas muestra:

Task Manager with Copy host model CPU

También puedes correr systeminfo en un PowerShell o símbolo del sistema. En la parte inferior, si todo está bien, verá todas las respuestas Sí en la sección 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

Ahora puedes hacer lo que quieras hacer.

Michael Hampton
fuente
Gracias @ Michael Hampton, esto funciona bien. Quiero decir que estoy agradecido por un post tan largo y detallado, gracias por el tiempo y el esfuerzo que también he votado.
ChronicUser