Para corrigir esse cenário, primeiro é importante separar duas coisas:
- SLAT e extensões de virtualização são recursos de hardware/firmware.
- VBS, Hyper-V e Memory Integrity são recursos do Windows que dependem desse hardware estar disponível e habilitado.
Passos práticos:
- Confirmar se o processador atende aos requisitos
- VBS requer CPU 64 bits com extensões de virtualização, como Intel VT-x ou AMD-V.
- Também requer SLAT: EPT em Intel ou RVI/NPT em AMD.
- Se o processador não oferecer esses recursos, não há ajuste no Windows que resolva.
- Habilitar virtualização e proteção de execução no BIOS/UEFI
- Verificar no firmware se a virtualização por hardware está habilitada.
- Para Hyper-V, também é necessário que a Data Execution Prevention esteja habilitada.
- Se houver alteração no BIOS/UEFI, fazer desligamento completo e ligar novamente. Apenas reiniciar pode não ser suficiente.
- Verificar se o hypervisor está configurado para iniciar
- Em PowerShell elevado, executar:
bcdedit /enum | findstr -i hypervisorlaunchtype - Se o resultado mostrar
hypervisorlaunchtype Off, habilitar com:bcdedit /set hypervisorlaunchtype Auto - Isso permite que o hypervisor do Windows seja iniciado corretamente.
- Em PowerShell elevado, executar:
- Se o sistema estiver rodando dentro de uma VM, habilitar virtualização aninhada
- Em hosts Hyper-V, usar:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true - Sem isso, o sistema convidado pode mostrar extensões de virtualização como desativadas mesmo que o host suporte o recurso.
- Em hosts Hyper-V, usar:
- Verificar conflitos com outros hipervisores
- Aplicativos como VMware e VirtualBox não compartilham as extensões de virtualização com Hyper-V, Memory Integrity ou Credential Guard.
- Se Hyper-V ou recursos baseados nele estiverem ativos, esses aplicativos podem falhar ao iniciar VMs ou entrar em modo mais lento.
- Se houver hipervisores de terceiros instalados, atualizar para versões compatíveis com Hyper-V ou desativá-los.
- Validar o estado de VBS e do hypervisor com o SkTool
- O SkTool incluído no Windows SDK pode mostrar o estado atual do Hypervisor e do VBS e informar por que o VBS iniciou ou não iniciou.
- O executável fica na pasta
bindo Windows SDK, em um caminho típico como:C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\<Arch> - Executar sem parâmetros ou com:
-
/statuspara estado do Hypervisor e Secure Kernel -
/mitigationspara mitigations -
/lkeypara problemas de ESS/Windows Hello
-
- Interpretar erros de compatibilidade do VBS/Memory Integrity
Se o problema estiver sendo reportado como compatibilidade do VBS, alguns bloqueios comuns são:
-
0x00000002= SLAT required -
0x00000004= Secure Boot capability required -
0x00000008= IOMMU required -
0x00000400= Hardware virtualization required -
0x00000020= UEFI Required
-
- Se o objetivo for usar VMware/VirtualBox, considerar desativar recursos baseados em Hyper-V
- Hyper-V, Memory Integrity e Credential Guard podem impedir o funcionamento normal de virtualizadores de terceiros.
- Nesse caso, a correção pode ser o inverso: desabilitar esses recursos dependentes do Hyper-V para liberar as extensões de virtualização ao outro software.
Observações importantes:
- SLAT não é algo que se “ativa” no Windows. Ele precisa existir no processador.
- Extensões de modo de monitor VM normalmente dependem de virtualização por hardware habilitada no BIOS/UEFI e, em VM, de virtualização aninhada.
- Para cenários com SR-IOV, também podem ser exigidos SLAT, DMA remapping e interrupt remapping no chipset.
- Alterações em BIOS/UEFI e em
bcdeditafetam a inicialização e a virtualização do sistema. Fazer essas mudanças com cuidado para evitar impacto em VMs existentes ou em software de virtualização já instalado.
References:
- Virtualization-based Security (VBS)
- A BIOS update may be required for some computers to install the Hyper-V Role and/or start Hyper-V virtual machines
- Memory integrity and VBS enablement
- Troubleshooting Windows Subsystem for Linux
- Virtualization applications don't work together with Hyper-V and Hyper-V-based features