Virtualización anidada en AMD Ryzen con host Linux, invitado Windows

Virtualización anidada en AMD Ryzen con host Linux, invitado Windows

Tengo host Ubuntu 18 con QEMU KVM. Máquina virtual Windows 10 (habilitado para Hyper-V)

Quiero ejecutar el emulador de Android Studio en una máquina virtual de Windows.

En el host tengo kvm_amd anidado = 1

Configuración de máquina virtual n.º 1:

<vcpu placement='static'>8</vcpu>

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

con esta configuración Windows VM tiene:

  • Virtualización en Firmaware: Sí
  • Extensión del modo VM Monitor: No

Configuración de máquina virtual n.º 2:

<vcpu placement='static'>8</vcpu>
<cpu mode='host-passthrough' check='none'/>

con esta configuración VM tiene:

  • Virtualización en Firmaware: Sí
  • Extensión del modo VM Monitor: Sí
  • pero la VM es muy lenta, no puedo trabajar en ella
  • Si cambio la topología a otra distinta a la predeterminada, la VM ingresa al bucle de arranque

Por favor, avíseme si se necesitaría información adicional. Usted me podría ayudar ?

Respuesta1

Finalmente logré que qemu-kvm funcionara con un cliente Windows 11 Professional con Hyper-V y Docker Desktop funcionando sin problemas.

Esta es mi configuración, tal vez ayude a otros. ¡NO SE PRETENDE PUBLICIDAD! Hardware:

Gigabyte X570 I AORUS PRO WIFI
BIOS-Version F37a (Virtualization enabled, Hyperthreading disabled)
AMD Ryzen 9 3950X 16-Core Processor
64Gb RAM

Software:

OS: Centos Stream 8
Kernel: 4.18.0-448.el8.x86_64
libvirt 8.0.0
QEMU 6.2.0

/etc/modprobe.d/kvm.conf

options kvm ignore_msrs=1
options kvm_amd nested=1

configuración de virsh:

<memory unit='KiB'>16777216</memory>
<currentMemory unit='KiB'>16777216</currentMemory>
<vcpu placement='static'>12</vcpu>
<resource>
  <partition>/machine</partition>
</resource>
<os>
  <type arch='x86_64' machine='pc-q35-rhel8.2.0'>hvm</type>
</os>
<features>
  <acpi/>
  <apic/>
  <hyperv mode='custom'>
    <relaxed state='on'/>
    <vapic state='on'/>
    <spinlocks state='on' retries='8191'/>
    <vpindex state='on'/>
    <runtime state='on'/>
    <synic state='on'/>
    <stimer state='on'/>
    <reset state='on'/>
    <vendor_id state='on' value='1234567890ab'/>
    <frequencies state='on'/>
    <reenlightenment state='on'/>
    <tlbflush state='on'/>
    <ipi state='on'/>
    <evmcs state='off'/>
  </hyperv>
  <kvm>
    <hidden state='on'/>
    <hint-dedicated state='on'/>
    <poll-control state='on'/> 
  </kvm>
  <vmport state='off'/>
  <smm state='on'/>
</features>
<cpu mode='host-passthrough' check='none' migratable='off'>
  <topology sockets='1' dies='1' cores='12' threads='1'/>
  <cache mode='passthrough'/>
  <feature policy='require' name='topoext'/>
  <feature policy='require' name='svm'/>
  <feature policy='require' name='x2apic'/>
  <feature policy='require' name='hypervisor'/>
  <feature policy='require' name='invtsc'/>
</cpu>
<clock offset='localtime'>
  <timer name='rtc' tickpolicy='catchup'/>
  <timer name='pit' tickpolicy='delay'/>
  <timer name='hpet' present='no'/>
  <timer name='hypervclock' present='yes'/>
  <timer name='tsc' present='yes' mode='native'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
  <suspend-to-mem enabled='no'/>
  <suspend-to-disk enabled='no'/>
</pm>

Instalé Windows 11 Pro sin SecureBoot ni TPM. Detalles de Google por favor.

Shift+F10 to launch cmd in windows setup regedit goto “HKEY_LOCAL_MACHINE\SYSTEM\Setup” 
right-click “New ⇒ Key ⇒ LabConfig” “New ⇒ DWORD (32-bit) ⇒ 
BypassTPMCheck ⇒ 1” same for “BypassRAMCheck” and “BypassSecureBootCheck”

información relacionada