Las aplicaciones de virtualización no son activas: ¿qué se puede hacer?

Al instalar una aplicación de virtualización en un equipo con Windows en el que estén instalados Hyper-V o servicios relacionados, es frecuente que se produzcan errores. Los errores que se producen al ejecutar máquinas virtuales en aplicaciones de virtualización distintas de Hyper-V provocan problemas importantes. En esta entrada del blog se explica qué causa estos errores, cómo solucionarlos y cómo ejecutar otras aplicaciones de virtualización en un ordenador con Hyper-V.

NAKIVO para backup de Hyper-V

NAKIVO para backup de Hyper-V

Copias de seguridad sin agente y coherentes con las aplicaciones para Hyper-V. Protección contra el ransomware, inicio instantáneo de máquinas virtuales desde la copia de seguridad, compatibilidad con otras plataformas virtuales y físicas, y mucho más.

Contexto y Principio de Funcionamiento

Después de instalar VMware Workstation, VMware Player o Oracle VirtualBox en una máquina con Windows, es posible que se presenten errores al iniciar una máquina virtual en estas aplicaciones de virtualización. Los errores ocurren incluso si las máquinas virtuales de Hyper-V no están ejecutándose en ese momento. Se puede instalar VMware Workstation y VirtualBox, y ejecutar máquinas virtuales de VMware y máquinas virtuales de VirtualBox en la misma computadora, pero no simultáneamente. ¿Qué causa este problema con Hyper-V? Echemos un vistazo más de cerca.

VMware Workstation, VMware Player y VirtualBox son hypervisores de tipo 2, mientras que Hyper-V es un hypervisor de tipo 1. Un hypervisor de tipo 2 se instala en el sistema operativo que está ejecutándose en el hardware. Un hypervisor de tipo 1 se instala encima del hardware. Todos los hypervisores requieren extensiones de virtualización del procesador, que son conjuntos de instrucciones para la virtualización de hardware – Intel VT-x o AMD-V. Hyper-V toma el control de las extensiones de virtualización cuando Windows se inicia. Estas extensiones de virtualización no están disponibles para VMware Workstation y VirtualBox cuando Windows se carga. Solo un componente de software puede usar Intel VT-x o AMD-V a la vez.

How Hyper-V and Windows applications work on a computer

Esta incompatibilidad es causada por Hyper-V porque las extensiones de virtualización no se exponen a los hypervisores de tipo 2 instalados en una máquina con Windows donde el rol de Hyper-V está habilitado.

Errores de VMware Workstation:

VMware Workstation and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Workstation.

VMware Workstation and Device/Credential Guard are not compatible. VMware Workstation can be run after disabling Device/Credential guard.

Errores de VirtualBox:

BSOD, such as BSOD with SYSTEM_SERVICE_EXCEPTION

VT-x is not available (VER_VMX_NO_VMX). E_FAIL (0x80004005).

A VirtualBox VM works too slowly and uses the paravirtualisation (emulation) mode.

La situación más interesante es cuando un usuario no instala Hyper-V y aún encuentra uno de los errores mencionados anteriormente al usar VMware Workstation o VirtualBox. El error ocurre cuando las actualizaciones automáticas de Windows están habilitadas. Con las actualizaciones (Windows 10 v1607 y las versiones adecuadas de Windows Server a partir de Windows Server 2016), algunas nuevas funciones relacionadas con Hyper-V se instalan y habilitan automáticamente sin el consentimiento del usuario de Windows. Estas funciones son Device Guard y Credential Guard. Las actualizaciones de Windows corrigen vulnerabilidades conocidas pero pueden agregar problemas y destruir una configuración funcional. Por eso a muchos usuarios no les gustan las actualizaciones automáticas.

Device Guard es un grupo de funciones de seguridad en Windows. La idea de implementar esta función es reforzar la ejecución de códigos maliciosos. Device Guard está disponible en Windows 10, Windows Server 2019 y Windows Server 2019. Los requisitos principales son: UEFI ejecutándose en modo nativo y Secure Boot habilitado. Credential Guard Es una función que minimiza el impacto de los ataques en caso de que ya se esté ejecutando código malicioso, aislando los secretos del sistema y del usuario para que resulte más difícil comprometerlos.

Virtual Secure Mode (VSM) es una función que aprovecha las extensiones de virtualización del procesador para proteger los datos en una región aislada de la memoria. HVCI son las siglas de «Hypervisor-protected code integrity» (integridad del código protegida por el hipervisor). LSA son las siglas de «Local Security Authority» (autoridad de seguridad local).

La seguridad basada en la virtualización (VBS) es una clase de tecnologías que utiliza extensiones de virtualización, incluido VSM, para proporcionar seguridad en Windows. Se requiere el rol de Hyper-V para que estas funciones funcionen (no se necesitan herramientas de gestión de Hyper-V).

El hipervisor (Hyper-V) se carga primero y, a continuación, se carga el sistema operativo (Windows). Hyper-V proporciona una capa de abstracción entre el hardware y el sistema operativo. Un VSM permite etiquetar procesos críticos específicos y la memoria que estos utilizan, ya que pertenecen a un sistema operativo independiente y separado controlado por Hyper-V. El principio es similar al aislamiento de dos máquinas virtuales que se ejecutan en un host de Hyper-V, en el que cada máquina virtual solo puede utilizar los recursos de hardware que se le han asignado.

Virtualization Applications Are Not Working: What Do You Do?

Nota: Si necesitas un hipervisor de tipo 1 de VMware, utiliza VMware ESXi y el entorno VMware vSphere. Más información en estas entradas de blog: Hyper-V frente a VMware, VMware Workstation frente a VMware Playery Cómo instalar ESXi en Hyper-V.

Veamos en detalle cómo resolver el problema de incompatibilidad entre Hyper-V y otras aplicaciones de virtualización.

Método 1: Desinstalar Hyper-V desde la interfaz gráfica de usuario

Comprueba la información del sistema sobre la configuración de Windows ejecutando el siguiente comando en el CMD:

msinfo32.exe

Se abrirá una ventana de «Información del sistema». En la siguiente captura de pantalla, se puede ver que Hyper-V está habilitado (se ha detectado un hipervisor) y que la seguridad basada en Device Guard Virtualizationestá ejecutándose. Ahora puede eliminar estas funciones.

Viewing system information in Windows

Debe tener en cuenta que las siguientes funciones relacionadas con Hyper-V no estarán disponibles después de eliminar Hyper-V:

  • Hyper-V
  • Credential Guard and Device Guard
  • Virtual Machine Platform
  • Windows Sandbox
  • WSL2.

Elimine la función Hyper-V en la interfaz gráfica de usuario (GUI) utilizando Control Panel, Add Roles, y el asistente Features .

En Windows 10, abra Control Panel, haga clic en Programs and Featuresy, a continuación, haga clic en Turn Windows features on or off.

Se abrirá la ventana Windows Features .

Desmarque la casilla de verificación Hyper-V y haga clic en OK.

Para finalizar la eliminación de Hyper-V, reinicie el equipo.

Removing Hyper-V in Windows 10 to allow other virtualization applications to work properly

Los pasos para eliminar Hyper-V en Windows 10 y Windows Server 2016 son similares.

En Windows Server 2016, abra Server Manager y haga clic en Manage > Remove Roles and Features. En el Asistente Remove Roles and Features , vaya al paso Server Roles, y deseleccione Hyper-V. Presione Next en cada paso para continuar. Se requiere reiniciar para finalizar la eliminación del rol de Hyper-V.

Removing Hyper-V in the Remove Roles and Features wizard

Método 2: Use PowerShell para deshabilitar la función de Hyper-V

Puede realizar una acción similar utilizando la interfaz de línea de comandos en lugar de la GUI.

Inicie sesión en PowerShell como Administrador y ejecute el comando para deshabilitar la función de Hyper-V:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

Reinicie su máquina anfitriona:

shutdown -r -t 0

Método 3: Deshabilite Hyper-V usando BCDedit

La idea detrás de este método es editar los datos de configuración de inicio y desactivar el arranque de Hyper-V sin desinstalar el rol de Hyper-V.

Inicie sesión en PowerShell como Administrador o ejecute el comando desde un símbolo del sistema elevado para deshabilitar Hyper-V:

bcdedit /set hypervisorlaunchtype off

Si necesita volver a habilitar Hyper-V y restablecer el valor predeterminado, ejecute este comando:

bcdedit /set hypervisorlaunchtype auto

Para más control y conveniencia, desactive el inicio rápido en Windows 10. Abra el Editor del Registro de Windows, y vaya a:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPower 

Fije el parámetro HiberbootEnabled a 0

Si necesita usar las máquinas virtuales de Hyper-V a veces, cree dos entradas para un cargador de arranque de Windows: una para iniciar Windows con Hyper-V y otra para iniciar Windows sin Hyper-V. Luego, seleccione la opción necesaria antes de iniciar Windows. Este enfoque lo detiene de ejecutar comandos en PowerShell manualmente cada vez que necesita habilitar o deshabilitar Hyper-V.

bcdedit /copy "{current}" /d "No Hyper-V"

"The entry was successfully copied to {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}."

Copie y pegue su valor en lugar de xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

bcdedit /set "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" hypervisorlaunchtype off

Editing boot configuration in Windows

Reinicie el ordenador.

Una vez que su ordenador se haya reiniciado, debería ver dos opciones en el Administrador de Arranque de Windows.

Two boot options in Windows Boot Manager

Si desea eliminar la entrada No Hyper-V de inicio, use la opción /delete para bcdedit.

Obtenga una lista de las entradas actuales de inicio:

bcdedit /v

Una lista de todas las entradas con sus identificadores se muestra en la salida. Copie la identificación de la entrada que desea eliminar, y ejecute el siguiente comando:

bcdedit /delete "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"

Método 4: Desinstalar el rol de Hyper-V en PowerShell con dism.exe

La idea detrás de este método es usar la herramienta de Servicio y Gestión de Imágenes de Despliegue en la interfaz de línea de comandos para desinstalar Hyper-V.

Inicie sesión en CMD o PowerShell como Administrador. Ejecute el siguiente comando para desinstalar Hyper-V:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

Si desea Instalar Hyper-V nuevamente, utilice este comando:

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

How to uninstall Hyper-V in the command line interface

Método 5: Apagar la seguridad basada en virtualización en Windows

Este método se utiliza para desactivar Device Guard y Credential Guard, que son funciones relacionadas con Hyper-V. Abre el Editor de políticas de grupo de un equipo local. El Editor de políticas de grupo está disponible en Windows 10 Pro, Enterprise y Education. En la línea de comandos, ejecuta gpedit.msc

Ve a Local Computer Policy > Computer Configuration > Administrative Templates > System > Device Guard

Haz doble clic en Turn On Virtualization Based Security.. De forma predeterminada, el estado de esta configuración es Not configured.

Turn Off Virtualization Based Security that uses Hyper-V

En la ventana que se abre, selecciona Disabled y pulsa OK para guardar los ajustes y cerrar la ventana.

Close the Group Policy Editor and restart your computer to make changes take effect

Como alternativa, edita el Registro:

En Windows 10 Home, donde no está presente el Editor de políticas de grupo, puedes desactivar la «Seguridad basada en la virtualización» en el Registro de Windows.

Crea un backup del Registro de Windows antes de modificar los ajustes del mismo para evitar errores y problemas.

Abre el Editor del Registro. Ejecuta regedit en la línea de comandos , que debe abrirse como administrador.

Vaya a HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > DeviceGuard

Cree la entrada EnableVirtualizationBasedSecurity si no existe. Para crear una nueva entrada, haga clic con el botón derecho en un espacio vacío del directorio DeviceGuard y, en el menú contextual, haga clic en New > DWORD (32-bit) Value. Introduzca el nombre EnableVirtualizationBasedSecurity para esta entrada del Registro. De forma predeterminada, el valor de esta entrada debe ser 0 (véase la siguiente captura de pantalla). Puede hacer doble clic en EnableVirtualizationBasedSecurity y establecer 0 manualmente.

Editing registry to disable Virtualization Based Security in Windows

Vaya a HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Lsa

Cree una nueva entrada de registro en el directorio Lsa. Haga clic con el botón derecho en un espacio vacío del panel derecho de la ventana Registry Editor. En el menú contextual, haga clic en New > DWORD (32-bit) Value.

Introduzca el nombre LsaCfgFlags para este valor. Este valor debe establecerse en 0.

How to disable LSA in Windows Registry

Cierre el Editor del Registro y reinicie el ordenador.

Puede ejecutar los siguientes comandos en PowerShell (como administrador) para desactivar Device Guard y Credential Guard en el siguiente inicio de Windows.

Monte una partición del sistema UEFI en la unidad X: (seleccione un volumen sin usar):

mountvol X: /s

Copie el archivo C:WindowsSystem32SecConfig.efi to X:EFIMicrosoftBootSecConfig.efi con la opción de sobrescribir el archivo si ya existe. Este archivo es una imagen de inicio para la herramienta de configuración de seguridad de Windows.

copy %WINDIR%System32SecConfig.efi X:EFIMicrosoftBootSecConfig.efi /Y

Cree una nueva opción en el menú de inicio con el ID {0cb3b571-2f2e-4343-a879-d86a476d7215} y el nombre DebugTool:

bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader

Configure la opción de inicio que ha creado en el paso anterior para que arranque en EFIMicrosoftBootSecConfig.efi:

bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "EFIMicrosoftBootSecConfig.efi"

Configure el Gestor de arranque de Windows para que la nueva entrada sea la predeterminada en el siguiente reinicio. Después de eso, reinicia tu Windows; debería volver a iniciar con normalidad.

bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}

Configura el gestor de arranque para que pase las opciones DISABLE-LSA-ISO,DISABLE-VBS al archivo SecConfig.efi cuando el gestor de arranque ejecute dicho archivo.

bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS

Establece la partición de la unidad de inicio como la unidad X: :

bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:

Desmonta la unidad X: del sistema:

mountvol X: /d

Método 6: Actualice VMware Workstation

Si tiene Windows 10 versión 2004 (20H1) compilación 19041 o más reciente en su computadora física, puede actualizar VMware Workstation a VMware Workstation 15.5.6 o más reciente y ejecutar máquinas virtuales de VMware en su máquina con Windows sin deshabilitar/desinstalar las funciones de Seguridad Basada en Virtualización (VBS), incluyendo Función de Dispositivo y Función de Credenciales.

Debido a muchas quejas de clientes, Microsoft y VMware decidieron desarrollar un proyecto conjunto que adopta las APIs de la Plataforma de Hipervisor de Microsoft Windows (WHP) para permitir que los hipervisores tipo 2, como VMware Workstation, se ejecuten en un host donde Hyper-V está habilitado. Estas APIs permiten que las aplicaciones gestionen recursos de CPU, lean/escriban valores del registro, terminen operaciones de CPU, y generen interrupciones.

VMware Workstation antes de la versión 15.5.5 utiliza un Monitor de Máquina Virtual (VMM) que tiene acceso directo a la CPU y a los conjuntos de instrucciones de virtualización (Intel VT-x o AMD-V). Un VMM opera en un modo privilegiado. Si las funciones de Seguridad Basada en Virtualización están habilitadas en un host de Windows, entonces se añade una capa adicional de hipervisor (Hyper-V) entre el hardware y Windows. Hyper-V tiene acceso directo a las funciones de CPU utilizadas para la virtualización de hardware, y VMM no tiene acceso a las funciones de virtualización de CPU.

VMware realizó cambios en la arquitectura de VMware Workstation 15.5.6 para permitir que su producto use las APIs de WHP de Microsoft y solucione el problema de compatibilidad. VMM ahora puede ejecutarse a nivel de usuario (no en modo privilegiado) utilizando las APIs de WHP y ejecutar máquinas virtuales sin acceso directo a las extensiones de virtualización de CPU. Este modo se llama Monitor de Nivel de Usuario (ULM) o modo Host VBS. Si desinstala funciones relacionadas con Hyper-V de su host de Windows, VMware Workstation lo detecta automáticamente, y VMM cambia a acceso directo de las extensiones de virtualización de CPU (funcionando en modo privilegiado).

La Plataforma de Hipervisor de Windows (WHP) debe estar instalada en una máquina física con Windows donde Hyper-V esté habilitado para permitir que VMware Workstation ejecute máquinas virtuales de VMware en esta máquina. Instale la función Windows Hypervisor Platform en el Panel de control haciendo clic en Turn Windows features on or off.

Así, puede actualizar Windows 10 y VMware Workstation en su máquina física a versiones que soportan ejecutar funciones relacionadas con Hyper-V y máquinas virtuales de VMware en la misma máquina.

Limitaciones del modo Host VBS:

  • La Plataforma de Hipervisor de Windows no es compatible con Windows Server 2016 y otras versiones y ediciones de Windows Server. Como consecuencia, VMware Workstation no puede ejecutar máquinas virtuales en modo VBS del host en máquinas físicas que ejecuten Windows Server.
  • No se admite la virtualización anidada. No se pueden ejecutar máquinas virtuales anidadas (máquinas virtuales dentro de máquinas virtuales de VMware Workstation).
  • Las máquinas virtuales de VMware pueden funcionar más lentamente.
  • No se admiten los contadores de supervisión del rendimiento (PMC) de x86.
  • La función de claves de protección en modo usuario (PKU) no está disponible.
  • Las funciones de memoria transaccional restringida (RTM) y omisión de bloqueo de hardware (HLE) no están disponibles.

VirtualBox e Hyper-V

VirtualBox puede coexistir con Hyper-V, Device Guard y Credential Guard a partir de la versión 6.0 de VirtualBox. VirtualBox 6 puede funcionar con las API de Hyper-V de forma similar a VMware Workstation en Windows 10 v1803 x64.

Estas funciones deben estar habilitadas en una máquina host con Windows para que VirtualBox pueda funcionar con las API de Hyper-V:

  • Hyper-V
  • Plataforma de hipervisor de Windows

Si la función Hyper-V está habilitada, pero la función «Plataforma de hipervisor de Windows» está deshabilitada, en System > Acceleration en el resumen de la configuración de la máquina virtual, se puede ver que la opción Paravirtualisation mode está activada. Si intentas iniciar una máquina virtual, VirtualBox te recuerda que debes habilitar la Plataforma de hipervisor de Windows y muestra el mensaje de error.

El mensaje de error:
WHvCapabilityCodeHypervisorPresent is FALSE! Make sure you have enabled the 'Windows Hypervisor Platform' feature.

(VERR_NEM_NOT_AVAILABLE).

VT-x is not available (VERR_VMX_NO_VMX).

Si las funciones relacionadas con Hyper-V necesarias en Windows están habilitadas, se muestra la siguiente información para la máquina virtual en la sección «Sistema»:

Acceleration: VT-x/AMD-v, Nested Paging, Paravirtualization Hyper-V

Hyper-V and VirtualBox are installed on the same Windows host

La máquina virtual debería iniciarse correctamente. Aparece un icono de una tortuga verde en el panel inferior de la ventana de VirtualBox. Este icono indica que una máquina virtual se está ejecutando en el modo de paravirtualización de Hyper-V, en lugar del modo nativo que suele utilizar VirtualBox cuando interactúa directamente con las extensiones de virtualización de la CPU. El rendimiento de las máquinas virtuales de VirtualBox se ve reducido en equipos en los que están habilitados Hyper-V y las funciones relacionadas. Puede desactivar o eliminar Hyper-V tal y como se ha explicado anteriormente para ejecutar máquinas virtuales en VirtualBox en modo nativo utilizando directamente las extensiones de virtualización de la CPU.

Lea también la comparación en VirtualBox frente a Hyper-V y la comparación en VirtualBox frente a VMware.

Conclusión

Las nuevas funciones de Windows, como la seguridad basada en la virtualización (Device Guard y Credential Guard), Windows Sandbox y WSL, que utilizan el motor Hyper-V, causan muchos problemas a los usuarios, administradores y desarrolladores de software que utilizan otros hipervisores, como VMware Workstation, VirtualBox, QEMU y el emulador de Android de Google, en equipos con Windows. Existen dos formas de resolver estos problemas de incompatibilidad: desactivar o desinstalar Hyper-V, o bien utilizar nuevas versiones de aplicaciones de virtualización compatibles con las API de Hyper-V, como la API de la plataforma de hipervisor de Windows que ofrece Microsoft.

La ejecución de máquinas virtuales en VirtualBox, VMware Workstation y otros hipervisores en equipos con Hyper-V mediante el uso de API puede reducir el rendimiento de las máquinas virtuales que no sean de Hyper-V. La copia de seguridad de los datos es fundamental en caso de que las aplicaciones de virtualización fallen. Si aún no ha elegido la mejor solución de backup de Hyper-V para su entorno, considere NAKIVO Backup & Replication. La solución ofrece copias de seguridad robustas, protección contra el ransomware, recuperación ante desastres y mucho más. Descargue la edición gratuita para ver la solución en acción.

Prueba NAKIVO Backup & Replication

Prueba NAKIVO Backup & Replication

Solicita una versión de prueba gratuita para descubrir todas las funciones de protección de datos de la solución. 15 días gratis. Sin limitaciones de funciones ni de capacidad. No es necesario facilitar un número de tarjeta de crédito.

Artículos recomendados