Table of Contents
Problema: `WARNING: neither Intel VT-x or AMD-V found` no PNETLab no KVM
Descrição
A mensagem de erro ocorre quando o PNETLab está sendo executado como máquina virtual no KVM, mas as extensões de virtualização de hardware (Intel VT-x ou AMD-V) não estão sendo expostas para a VM. Isso impede que o PNETLab funcione corretamente.
Causa
- O suporte à virtualização aninhada (Nested Virtualization) não está habilitado no servidor KVM.
- As configurações da máquina virtual do PNETLab não expõem as instruções de virtualização para a VM.
Solução
Passo 1: Habilitar Virtualização Aninhada no Host KVM
No servidor KVM, verifique e habilite a virtualização aninhada conforme o processador.
- Verificar suporte à virtualização aninhada: * Intel:
cat /sys/module/kvm_intel/parameters/nested
* AMD:
cat /sys/module/kvm_amd/parameters/nested
Resultado esperado: `Y` ou `1` (habilitado). Caso contrário, siga os passos abaixo.
- Habilitar virtualização aninhada: * Intel:
echo "options kvm-intel nested=1" | sudo tee /etc/modprobe.d/kvm-intel.conf sudo modprobe -r kvm_intel sudo modprobe kvm_intel
* AMD:
echo "options kvm-amd nested=1" | sudo tee /etc/modprobe.d/kvm-amd.conf sudo modprobe -r kvm_amd sudo modprobe kvm_amd
- Validar: * Intel:
cat /sys/module/kvm_intel/parameters/nested
* AMD:
cat /sys/module/kvm_amd/parameters/nested
Certifique-se de que o resultado seja `Y` ou `1`.
Passo 2: Editar Configuração da VM PNETLab
Edite o XML da máquina virtual do PNETLab para expor as extensões de virtualização.
- Acessar o XML da VM:
sudo virsh edit nome-da-vm
- Adicionar ou modificar a seção `<cpu>`:
<cpu mode="host-passthrough"> <feature policy="require" name="vmx"/> <!-- Para Intel --> <feature policy="require" name="svm"/> <!-- Para AMD --> </cpu>
- Certifique-se de que os recursos básicos estão configurados:
<features> <acpi/> <apic/> <vmport state="off"/> </features>
- Salve e saia.
Passo 3: Reiniciar a Máquina Virtual e Verificar
- Reinicie a VM:
sudo virsh shutdown nome-da-vm sudo virsh start nome-da-vm
- Verifique se o suporte à virtualização está habilitado dentro da VM:
egrep -o '(vmx|svm)' /proc/cpuinfo
Saída esperada: `vmx` (Intel) ou `svm` (AMD).
Conclusão
Após realizar esses passos, a mensagem de erro será eliminada, e o PNETLab funcionará corretamente no KVM.
Notas Adicionais
- Certifique-se de que o KVM e o libvirt estão atualizados.
- Caso esteja utilizando um ambiente de virtualização em nested (VM dentro de outra VM), habilite o suporte de virtualização aninhada no host principal.
