Cómo desactivar una máquina virtual Hyper-V atascada en el estado de arranque/parada
Hyper-V es una plataforma de virtualización de hardware muy conocida y popular porque es el hipervisor nativo de Windows. La virtualización ofrece muchas ventajas y ejecutar máquinas virtuales es muy cómodo. Sin embargo, pueden producirse errores. Puede ocurrir que aparezca el error «Hyper-V failed to change state» y la máquina virtual se quede bloqueada al intentar encenderla o apagarla. Los botones de inicio, parada y reinicio no funcionan para la VM en este caso.
No puede editar los ajustes de la máquina virtual ni utilizarla hasta que resuelva este problema. Si ya estás buscando cómo desactivar Hyper-V o cómo desinstalar Hyper-V, no te apures. Esta entrada de blog explica las posibles razones para obtener el error «Hyper-V failed to change state» y los métodos para resolver este problema.
Explicación del error
Los botones de inicio, parada y reinicio no suelen estar disponibles en la interfaz gráfica de usuario. Si intenta hacer clic en estos botones, aparecerá un mensaje de error. A continuación se muestra el texto completo del mensaje de error Hyper-V VM atascado que aparece al intentar iniciar o detener una máquina virtual en Hyper-V:
La aplicación encontró un error al intentar cambiar el estado de la máquina virtual.
VM-name Fallo en el cambio de estado.
La operación no puede realizarse mientras el objeto se encuentra en su estado actual.
El mensaje «Hyper-V failed to change state» también puede contener esta frase:
El estado no se puede cambiar.
Las razones comunes para el error de inicio/parada de la VM son fallos de almacenamiento, configuración incorrecta de la red, configuración de enrutamiento y acceso remoto, opciones de energía de la VM y permisos insuficientes para acceder a los archivos de la VM.
Acabar con el proceso de la máquina virtual problemática
Cuando se encuentra con un error de inicio/parada de VM, no puede simplemente matar la VM tradicionalmente matando el Proceso de Trabajador de Máquina Virtual(vmwp.exe), que es uno de los servicios / procesos Hyper-V importantes. Necesita conocer el Identificador Único Global (GUID) de la VM problemática porque en Windows se ejecutan múltiples instancias del proceso vmwp.exe y cada instancia está relacionada con la VM apropiada. Si intentas adivinar el vmwp.exe necesario y matar cada instancia de vmwp.exe, puedes matar una VM desconocida cada vez, y podrías acabar matando casi todas las VMs antes de encontrar la correcta.
Método 1: Utilizar herramientas GUI nativas
Puede utilizar la interfaz gráfica de usuario (GUI) de Windows e Hyper-V para identificar el proceso vmwp.exe necesario y finalizar este proceso. Hyper-V Manager es una herramienta con una interfaz gráfica de usuario para la gestión de máquinas virtuales en el entorno Windows Hyper-V.
Obtenga el GUID de la VM en Hyper-V Manager. Haga clic con el botón derecho en el nombre de su host Hyper-V en Hyper-V Manager y en el menú contextual seleccione Ajustes de Hyper-V.
En la ventana Ajustes de Hyper-V, haga clic en Máquinas virtuales en el panel izquierdo para buscar la ruta donde se encuentran por defecto los archivos VM en el host Hyper-V. En nuestro ejemplo, la ruta es E:\VMs\.
Cuando conozca la ubicación donde se almacenan los archivos VM, vaya a esta carpeta en el Explorador de Windows. Busque la subcarpeta donde se encuentran los archivos de la máquina virtual congelada. En mi caso, el nombre de la máquina virtual es «Ubuntu Hyper-V». Abra la carpeta VM, y debería ver una subcarpeta y archivos con un nombre largo formado por dígitos y letras. Este es el GUID de la VM necesario para identificar el proceso vmwp.exe y forzar la parada de la VM. En mi ejemplo, el GUID de la VM es 3C555937-A999-4542-B77E-FD69488B8579.
Si no puede detectar el GUID de la VM en la interfaz gráfica de usuario de Windows e Hyper-V, puede utilizar Process Explorer o PowerShell (consulte las secciones siguientes).
Una vez que haya encontrado el ID, puede finalizar la tarea vmwp exe relacionada con la máquina virtual Hyper-V problemática.
Abra el Administrador de tareas de Windows en el sistema operativo anfitrión. Haga clic en Inicio > Ejecutar o pulse Win+R, escriba taskmgr y pulse Intro.
Busque el proceso vmwp.exe con el GUID necesario en la columna Nombre de usuario. Haga clic con el botón derecho en el proceso vmwp exe correspondiente y, en el menú contextual, seleccione Finalizar tarea para apagar la máquina virtual y obtener el estado correcto de detención de la máquina virtual.
Nota: Puede hacer clic con el botón derecho del ratón en la cabecera de la columna, por ejemplo, Nombre de usuario, y hacer clic en Seleccionar columnas. Seleccione las casillas Línea de comandos y Descripción en la ventana Seleccionar columnas y, a continuación, haga clic en Aceptar. Después de eso, puede ver el GUID de la VM para cada proceso vmwp exe en la columna Línea de comandos del administrador de tareas.
Método 2: Utilizar el Explorador de Procesos
Puede identificar la instancia necesaria del proceso vmwp exe relacionada con la máquina virtual problemática con Process Explorer, que es una herramienta gratuita proporcionada por Microsoft. Descargue Process Explorer, que contiene opciones avanzadas no incluidas en el administrador de tareas estándar, del sitio web de Microsoft. Descomprima los archivos del Explorador de procesos en una carpeta personalizada.
Abra Hyper-V Manager, abra los ajustes de la máquina virtual para su máquina virtual problemática y seleccione las opciones del disco duro virtual. Copie la ruta completa a un archivo del disco duro virtual. En nuestro caso esta ruta es:
«E:\VMs\Ubuntu Hyper-V\Discos Duros Virtuales\Ubuntu Hyper-V.vhdx»
Inicie Process Explorer ejecutando el archivo de ejecución adecuado(procexp64.exe en nuestro caso).
Haga clic en el icono binocular y pegue la ruta al archivo del disco virtual de la máquina virtual atascada en el campo Mango o subcadena DLL y, a continuación, haga clic en Buscar.
Se ha encontrado la instancia de vmwp.exe necesaria. Haga clic en vmwp .exe que se encontró en la ventana de búsqueda y la instancia apropiada del proceso vmwp exe se seleccionará automáticamente en el Explorador de procesos.
Haga clic con el botón derecho en el proceso vmwp.exe seleccionado y, en el menú contextual, haga clic en Matar proceso.
Método 3: Usar PowerShell para matar el proceso VM
Abramos PowerShell y solucionemos el error. Si intenta ejecutar el comando Stop-VM -Force
se puede ver que este comando no funciona para detener la máquina virtual después de que ésta se bloquea. Utilice este comando para identificar el ID único de la máquina virtual:
Get-VM "VM-name" | fl *
Como alternativa más elegante, puede utilizar estos comandos para comprobar el ID:
$VMGUID = (Get-VM "Ubuntu Hyper-V").ID
Get-VM | Select Name, Id
En nuestro caso, necesitamos conocer el GUID de la VM «Ubuntu Hyper-V». El GUID de esta VM se guarda como la variable $VMGUID en la memoria de esta sesión PowerShell.
Ejecute estos comandos para matar el proceso y detener la VM:
$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})
Stop-Process ($VMWMProc.ProcessId) -Force
Ahora el proceso problemático de la VM es eliminado y la VM se detiene. Puedes intentar editar los ajustes de la máquina virtual y ejecutarla.
Otros métodos para solucionar el error Hyper-V failed to change state
Puede ocurrir que haya matado el proceso de la VM colgada en Hyper-V pero la VM no pueda arrancar. En este caso, si intenta iniciar la máquina virtual, podría obtener el error de Hyper-V:
Conexión de Máquina Virtual:
Error al cambiar de estado.
A continuación, proporciono otras posibles razones del error «Hyper-V failed to change state», métodos que pueden ayudar a solucionar el error y cómo apagar completamente las máquinas virtuales Hyper-V después de obtener este error.
Ajustes de la unidad de DVD
Abra los ajustes de la VM y compruebe las opciones de DVD para la VM. Si la máquina virtual no puede acceder a la imagen ISO, puede producirse el error. Asegúrese de que el archivo ISO existe y de que la ruta está definida correctamente. También puede desactivar una unidad de DVD virtual si esta unidad no se utiliza en una máquina virtual.
Errores de almacenamiento
Compruebe si hay suficiente espacio en disco en el almacenamiento VM. Si no hay suficiente espacio en disco para almacenar los archivos de la VM, el fallo de almacenamiento puede provocar que la VM se quede bloqueada y muestre un error «Hyper-V failed to change state». Si el fallo de la máquina virtual se produjo debido a la falta de espacio de almacenamiento, es posible que tenga que ejecutar estos comandos para corregir los errores de disco dentro de las máquinas virtuales:
sfc /scannow
dism /online /cleanup-image /restorehealth
Si no puede iniciar una VM normalmente o hay una VM atascada en un bucle continuo, inserte una imagen ISO de instalación de Windows en una unidad de DVD virtual, arranque una VM desde esta imagen ISO (abra BIOS/UEFI virtual y seleccione DVD-ROM como primer dispositivo de arranque), seleccione el modo Reparar, inicie CMD y ejecute el comando:
chkdsk /f /r /x c:
Cuando la comprobación del disco haya terminado y los errores de disco estén corregidos, reinicie la VM, arranque desde una unidad de disco duro virtual (la VM debería arrancar ahora) y ejecute los comandos mencionados anteriormente dentro del SO invitado:
sfc /scannow
dism /online /cleanup-image /restorehealth
También puede ser necesario comprobar los discos físicos utilizados para el almacenamiento de Hyper-V en un host Hyper-V.
Errores de configuración de la red
Compruebe los ajustes del adaptador de red virtual de la máquina virtual. Si se muestra el estado Adaptador de red – Error de configuración para al menos un adaptador de red, es posible que tenga problemas de inicio/parada de VM en Hyper-V. Los adaptadores de red de la máquina virtual deben estar conectados a los conmutadores virtuales existentes para un funcionamiento normal. Este error puede aparecer si la configuración de la red ha cambiado o se ha dañado.
Detección de problemas en los registros
Compruebe los registros de eventos de Windows y los errores relacionados con Hyper-V. Ejecute compmgmt.msc
y, a continuación, vaya a Visor de sucesos > Registros de aplicaciones y servicios > Microsoft > Windows > Hyper-V-Worker. Si ves mensajes de error en los registros, la explicación del error puede indicarte el origen del problema.
Bloqueo del acceso mediante software antivirus
Compruebe los ajustes de su software antivirus. El antivirus no debe bloquear el acceso a los archivos de Hyper-V VM. Si el antivirus bloquea el acceso a los archivos de la VM, añada las carpetas donde se almacenan los archivos de la VM a las exclusiones en los ajustes del antivirus. Hyper-V debe tener acceso completo a las carpetas y archivos de las máquinas virtuales.
Opciones de alimentación VM
Compruebe las opciones de energía en los ajustes del sistema operativo invitado. El modo de reposo y la hibernación deben estar desactivados. En el invitado de Windows, abra el Panel de control, vaya a Opciones de energía y asegúrese de que la opción » Poner el ordenador en reposo» está en Nunca. Si Ubuntu Linux está instalado como sistema operativo invitado, utilice el comando para desactivar el modo de suspensión:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Comprobación de VMMS
vmms.exe es un proceso utilizado por Hyper-V. Asegúrese de que el Hyper-V Virtual Management Service (VMMS), que es uno de los servicios importantes de Hyper-V, se está ejecutando correctamente y el VMMS no se atasca y no está en el estado de arranque o parada (estado). El estado del servicio debe ser Ejecutando.
El servicio VMMS está relacionado con el proceso vmms.exe.
Desactivar RRAS
Una mala configuración del Servicio de Enrutamiento y Acceso Remoto (RRAS) puede ser la causa de que una máquina virtual Hyper-V se bloquee debido a una configuración de red incorrecta. Intente desactivar RRAS en Windows Server funcionando como host Hyper-V.
Pulse Win+R para abrir el cuadro de diálogo Ejecutar.
Escriba services.msc
y pulsa Intro.
Busque el Servicio de enrutamiento y acceso remoto en la ventana Servicios, haga clic con el botón derecho del ratón en el servicio y, en el menú contextual, haga clic en Propiedades. En la pestaña General de la ventana de propiedades de Enrutamiento y acceso remoto, haga clic en Detener y cambie el tipo de inicio a Desactivado.
Reiniciar el equipo host Hyper-V
Si alguno de los métodos anteriores no ayuda, intente reiniciar el equipo host Hyper-V. Si tiene otros hosts Hyper-V o un clúster Hyper-V de alta disponibilidad, puede migrar las máquinas virtuales en ejecución a otros hosts y luego apagar el host Hyper-V con la máquina virtual problemática.
Arreglar una máquina virtual Hyper-V atascada en el estado guardado
Hyper-V VM atascándose puede ocurrir no sólo en el estado de inicio/parada de la VM, sino también en el estado guardado de la VM. Los síntomas son similares y no se puede cambiar el estado de la máquina virtual problemática. Los botones Start/Stop VM no funcionan. Si cierra Hyper-V mientras se está haciendo una copia de seguridad de una VM, puede conseguir que la VM Hyper-V se quede atascada en el estado guardado. Esto puede ocurrir si se interrumpe el proceso de backup y una máquina virtual se pone en estado guardado. En este caso, la máquina virtual puede corromperse o dañarse. Exploremos las razones más comunes de este error y los métodos para solucionarlo.
Errores de disco
Si se desenchufa un disco con archivos de la VM mientras se está ejecutando una VM, se puede producir el error para una VM y la VM se pone en el estado guardado. Este error es más plausible para los usuarios domésticos de Hyper-V que almacenan archivos VM en discos USB. Sin embargo, los administradores de las organizaciones deben ser conscientes de que este error puede deberse a problemas de almacenamiento. En caso de que el espacio en disco sea insuficiente, una VM se cuelga y también se puede poner en estado guardado. Si ha configurado una máquina virtual para utilizar hardware virtual que no es compatible con un sistema operativo invitado, la máquina virtual puede quedarse atascada en el estado guardado. Este problema puede ocurrir si crea una nueva máquina virtual e importa un disco virtual existente con el sistema operativo invitado instalado. Edite las opciones de la máquina virtual, seleccione el controlador de almacenamiento correcto y otras opciones de disco. Para más información, lea la diferencia entre las máquinas virtuales de Generación 1 y las de Generación 2.
Recursos de hardware insuficientes
Si ejecuta varias máquinas virtuales que consumen muchos recursos en un host Hyper-V, en caso de que la memoria y el rendimiento de la CPU sean insuficientes, una máquina virtual puede bloquearse y quedar en estado guardado. A continuación, debe hacer un esfuerzo para arreglar la máquina virtual bloqueada. Para evitar este problema, actualice su hardware o no ejecute varias máquinas virtuales pesadas en el host con bajo rendimiento. Si es posible, migre la máquina virtual a otro host Hyper-V.
Permisos de carpeta incorrectos
Si no hay suficientes permisos para las carpetas y archivos de la máquina virtual, ésta puede quedarse atascada en el estado Guardado. Abra las propiedades de la carpeta donde se almacenan los archivos de la VM. Compruebe las pestañas Seguridad y Compartir (si una máquina virtual está en una carpeta compartida en el almacenamiento compartido). Establezca los permisos en Permitir todo para el usuario o grupo necesario.
Eliminación de la máquina virtual
Este es otro método para resolver el problema de la VM atascada en el Estado de Arranque/Parada/Guardado si otros métodos no ayudaron. No querrás perder datos y, por este motivo, debes copiar los archivos del disco virtual en una ubicación segura. A continuación, elimine la VM problemática, incluidos los archivos de configuración de la VM, de la ubicación original (haga clic con el botón derecho en la VM y pulse Eliminar en Hyper-V Manager). Cree una nueva VM, copie los discos virtuales de una copia de seguridad a la ubicación de la nueva VM y seleccione un disco virtual existente al crear una nueva VM en Hyper-V.
Una máquina virtual está atascada en el estado «Haciendo backup de».
Otro problema similar es la máquina virtual Hyper-V atascada en el estado Running con el estado Backing up. No puede iniciar y detener máquinas virtuales en este estado en Hyper-V Manager. Reiniciar el host Hyper-V suele ayudar a resolver este problema, pero no se desea reiniciar porque otras máquinas virtuales que se ejecutan en el host deben ser apagadas o migradas.
La posible causa de este error es un problema con el servicio Microsoft Hyper-V VSS Writer en el host Hyper-V.
Abra la línea de comandos (CMD) como administrador y ejecute este comando para comprobar el estado de los escritores VSS:
vssadmin list writers
Si no hay errores, la salida para cada escritor VSS es similar a la salida mostrada en la captura de pantalla de abajo.
El servicio Microsoft Hyper-V VSS Writer depende del servicio principal Hyper-V Virtual Machine Management. Por este motivo, debe reiniciar el servicio Hyper-V Virtual Machine Management para reiniciar el servicio VSS necesario y solucionar el problema.
La forma más rápida de reiniciar el servicio Hyper-V Virtual Machine Management es abrir Servicios en Administración de equipos o ejecutar services.msc
haga clic con el botón derecho en el nombre del servicio y seleccione Reiniciar.
Si Hyper-V VSS Writer se cuelga y no responde, debe finalizar manualmente el proceso vmms.exe en el Administrador de tareas. Abra el Administrador de tareas, haga clic con el botón derecho en vmms.exe y seleccione Finalizar proceso en el menú contextual.
Después de finalizar el proceso vmms.exe, las máquinas virtuales deberían desaparecer en Hyper-V Manager. Inicie el servicio Hyper-V Virtual Machine Management, y debería volver a ver la lista de sus máquinas virtuales y el estado de copia de seguridad de la máquina virtual problemática debería haber desaparecido. El reinicio de estos servicios Hyper-V debería resolver el problema.
Conclusión
El error Hyper-V failed to change state es un error desagradable para usuarios y administradores cuando utilizan máquinas virtuales. Afortunadamente, hay una alta probabilidad de solucionar el error relacionado con la Hyper-V VM atascada cuando no puede detener las VM que son problemáticas. En esta entrada de blog se analizaron las razones más comunes y los métodos posibles para solucionar los errores «Hyper-V failed to change state» y «failed to restore virtual machine state».
Debe tener en cuenta que a veces los datos de la VM pueden corromperse tras este error, otros errores y fallos de hardware. Por esta razón, se recomienda hacer backups de Hyper-V VM con regularidad para evitar la pérdida de datos. Utilice NAKIVO Backup & Replication para hacer backup de sus máquinas virtuales Hyper-V con un rendimiento óptimo y funciones de ahorro de espacio.