06 febrero, 2019

Habilitar virtualización anidada VT-x/AMD-V en Virtualbox cuando no se puede activar (nested virtualization)

[1] - Habilitar la virtualización a nivel de BIOS/UEFI en el host anfitrión. Opción VT-x (procesadores Intel) o AMD-v (procesadores AMD).

[2] - Comprobar que no haya otro hypervisor (VMware o Hyper-V por ejemplo) usándose o con una mayor prioridad que no sea Virtualbox instalado en el host anfitrión.

[3] - La característica de viritualización anidad o nested virtualization en Virtualbox solo está disponible en versiones igual o superior a 6.0.

Esta característica es visible y se puede habilitar en: Sistemas > Procesador > Habilitar PAE/NX y Habilitar VT-x/AMD-V anidado.

En la siguiente screenshot se muestra como la característica es visible pero no nos permite habilitarla, pero esta opción se puede forzar para habilitarla en la máquina virtual seleccionada.

Figura 1: Caracteristica extendida - No es posible habilitar la virtualización aninada para la VM seleccionada.

[4] - Listar el nombre e ID de las VMs creadas con Virtualbox en nuestro host afitrión, esto lo haremos con la utilizada de comandos de VBoxManage.exe de Virtualbox. En el caso de Windows, desde una CMD accedemos a la ruta donde se encuentra este binario.
C:\Program Files\Oracle\VirtualBox
[5] - Listamos las VMs disponibles.
VBoxManage list vms
[6] - Modificamos la característica de la VM seleccionada, forzando así que se habilite la virtualización anidada con el parámetro --nested-hw-virt on.
VBoxManage modifyvm "Nombre-VM o {ID-VM}" --nested-hw-virt on
Referencia: https://docs.oracle.com/cd/E97728_01/F12469/html/nested-virt.html

Figura 2: Virtualización anidada habilitada para la VM seleccionada.

[7] - Si se habilitó correctamente la virtualización anidada podemos comprobarlo desde la VM seleccionada.

En el caso de usar un procesador Intel.
cat /proc/cpuinfo | grep vmx
En el caso de usar un procesador AMD.
cat /proc/cpuinfo | grep svm
Si todo a salido correctamente se debería mostrar contenido resultante que contiene "vmx" (en este caso de ejemplo se trataba de un procesador Intel). De no estar habilitada la virtualización anidada para la máquina virtual seleccionada no nos mostraría nada como resultado del cat.
 
Figura 3: Comprobación de que la virtualización anidada está habilitada en la VM seleccionada.

Saludos!

8 comentarios:

  1. Gracias!! Fue de mucha ayuda.

    Saludos desde Honduras

    ResponderEliminar
  2. no se como alguien me explica?

    ResponderEliminar
  3. En el caso de AMD es:

    cat /proc/cpuinfo | grep svm

    No "smv".
    Gracias.

    ResponderEliminar
  4. Gracias broder, me sirvió

    ResponderEliminar
  5. Muchas gracias me sirvio, donde se puede validar "vmx" ese comando en Windows 10? saludos,

    ResponderEliminar
    Respuestas
    1. Hola Nico, en Windows puedes verlo desde el "Administrador de tareas > Rendimiento" o en las propiedades de Equipo.

      Si te refieres en línea de comandos:
      cmd> systeminfo | findstr Intel
      powershell> Get-ComputerInfo | Select-Object CsProcessors

      Saludos,
      Adrián.

      Eliminar