Si alguna vez has tenido una máquina virtual Hyper-V que no se apaga ni se inicia correctamente y los botones habituales no funcionan o muestran errores, es bastante frustrante. A veces, la máquina virtual se bloquea en los estados de detención, inicio o copia de seguridad, y las herramientas de administración simplemente no hacen nada. Claro que a Windows le encanta complicar las cosas, así que aquí te explicamos cómo restablecer el orden sin reiniciar todo, porque nadie quiere esperar a que se reinicie todo el servidor si no es necesario.
- La máquina virtual Hyper-V se quedó atascada en un estado extraño
- Cómo forzar el apagado de una máquina virtual bloqueada en Hyper-V
- Uso de PowerShell para eliminar un proceso de máquina virtual congelado
- Manejo de máquinas virtuales bloqueadas en estado de copia de seguridad
- Cuando Hyper-V no cambia el estado de la máquina virtual: consejos para la solución de problemas
La máquina virtual Hyper-V está atascada en el estado de detención, inicio o copia de seguridad
En primer lugar, si tu máquina virtual se bloquea con el estado «Deteniendo» o «Copiando» y no responde, es probable que el sistema operativo invitado tampoco responda. Verás que los botones Apagar, Apagar o Restablecer están atenuados y muestran errores como:
The application encountered an error while attempting to change the state of VM. Failed to change state. The operation cannot be performed while the object is in its current state.
Además, si su Administrador de Hyper-V muestra el error «Conectando al servicio de administración de máquinas virtuales» o no muestra sus máquinas virtuales, no se preocupe. Solo necesita reiniciar el servicio de administración de Hyper-V, vmms.exe. Esto suele ser seguro y, a menudo, reiniciar este proceso puede solucionar el bloqueo sin tener que reiniciar todo el host. Para hacerlo fácilmente:
- Abra Ejecutar ( Win + R) y escriba
services.msc - Busque Hyper-V Virtual Machine Management o vmms en la lista
- Haga clic derecho y seleccione Reiniciar
Si el reinicio del servicio no funciona o no ve ningún cambio, puede hacerlo a través de PowerShell:
Get-Service vmms | Restart-Service
O de forma más brutal, deteniéndolo directamente:
Stop-Service vmms -Force
No sé por qué, pero a veces, con solo cerrar y reiniciar el servicio, se restablece todo el estado. Vale la pena intentarlo.
Cómo forzar el apagado de una máquina virtual bloqueada en Hyper-V
Si reiniciar el servicio no solucionó el problema, el siguiente paso es forzar la finalización del proceso de trabajo de la máquina virtual. Cada máquina virtual se ejecuta bajo un proceso llamado vmwp.exe (Proceso de Trabajo de Máquina Virtual).Para finalizarlo, primero debe obtener el GUID de la máquina virtual. Normalmente, este se encuentra en los archivos de configuración de la máquina virtual almacenados en el disco. Revise la configuración del Servidor en la Ubicación del archivo para ver dónde se encuentran las configuraciones, quizás en D:\VMstore.
Navega a esa carpeta, busca la carpeta de tu máquina virtual bloqueada y copia el GUID del archivo de configuración que termina en » .vmcx. Parece una cadena larga de caracteres».
A continuación, abra el Administrador de tareas (Ctrl + Mayús + Esc), vaya a la pestaña Detalles y busque todos los procesos vmwp.exe. Verá que la columna Nombre de usuario a veces incluye el GUID, o puede buscar coincidencias más adelante con la información de la Línea de comandos.
Busca un proceso con el GUID de la máquina virtual, haz clic derecho y selecciona Finalizar tarea. Es un poco forzado, pero efectivo. La máquina virtual se apagará inmediatamente y podrás empezar de cero.
Alternativamente, para una herramienta más avanzada, puede utilizar Process Explorer:
- Ejecute Process Explorer como administrador.
- Presione Ctrl + F o seleccione Buscar > Identificador o DLL.
- Escriba la ruta al archivo de disco de su VM (*.vhdx) o el GUID para encontrar los procesos asociados.
- Una vez encontrado, haga clic derecho en el proceso y seleccione Eliminar proceso.
Esto ignora las protecciones habituales de Windows y elimina el proceso de la máquina virtual bloqueado. En algunas configuraciones, es la forma más rápida de recuperarse de una máquina virtual bloqueada.
Uso de PowerShell para eliminar un proceso de máquina virtual congelado
Si prefiere usar scripts o hacerlo remotamente, PowerShell puede encargarse del trabajo sucio. Hay una salvedad: el comando estándar Stop-VM -Force a veces se bloquea si la máquina virtual o el host se encuentran en un estado inusual. Ahí es donde entra en juego la eliminación directa del proceso.
Primero, toma el GUID de la VM por su nombre:
$VMGuid = (Get-VM "YourVMName").ID
Para encontrar el proceso asociado con esa VM, enumere todos los procesos vmwp.exe y haga coincidir el GUID en la línea de comando:
$VMProcess = Get-WmiObject Win32_Process | Where-Object { $_. Name -eq 'vmwp.exe' -and $_. CommandLine -match $VMGuid }
Si no aparece nada, vuelva a verificar el nombre y el GUID de su máquina virtual. Luego, para finalizar el proceso:
Stop-Process -Id $VMProcess. ProcessId -Force
Esto fuerza el cierre de la máquina virtual, eliminando el proceso bloqueado. Tenga en cuenta que esto cierra la máquina virtual sin un apagado ordenado, así que hágalo solo si es necesario.
Manejo de máquinas virtuales bloqueadas en estado de copia de seguridad
A veces, una máquina virtual se bloquea en el estado «Copia de seguridad» durante las instantáneas o las copias de seguridad. La máquina virtual sigue funcionando, pero no se puede detener ni iniciar con normalidad. Primero, compruebe el estado del escritor VSS:
vssadmin list writers
Si funciona correctamente, reinicie el servicio de administración de Hyper-V, vmms.exe. Abra un símbolo del sistema de PowerShell con permisos de administrador y ejecute:
Get-Service vmms | Stop-Service
Si se niega, es posible que tengas que buscar y matar el proceso directamente:
Get-Process -Name vmms | Stop-Process -Force
Una vez que esté muerto, reinícialo:
Start-Service vmms
Esto suele solucionar problemas de interbloqueo durante las copias de seguridad. Tenga en cuenta que esto podría deshabilitar temporalmente otras máquinas virtuales o servicios que dependen de la administración de Hyper-V.
Cuando la máquina virtual no cambia de estado: consejos para la solución de problemas
Si incluso después de todo esto, la máquina virtual sigue resistiéndose y se niega a iniciarse o detenerse, verifique algunas causas comunes:
- Asegúrese de tener suficiente espacio en el disco donde se almacenan los archivos de la máquina virtual: sin espacio, no hay solución.
- Si se monta un DVD ISO virtual, verifique que la ruta realmente exista y sea accesible.
- Verifique los adaptadores de red: deben estar conectados a conmutadores virtuales válidos y no debe haber íconos de «Error de configuración».
- Verifique que el servicio VMMS esté ejecutándose sin interrupciones.
- Consulte los registros: abra Visor de eventos > Registros de aplicaciones y servicios > Microsoft > Windows > Hyper-V-Worker para obtener pistas.
- Si usa Windows Defender u otro antivirus, incluya en la lista blanca las carpetas y los archivos del disco de la máquina virtual. A veces, el software antivirus bloquea el acceso o elimina archivos necesarios.
- Y por último, deshabilite cualquier modo de suspensión o hibernación en los sistemas operativos invitados: a veces, Hyper-V se bloquea si el sistema operativo de la máquina virtual intenta suspenderse o hibernar durante una operación crítica.
Si nada de esto funciona…bueno, quizá sea hora de reiniciar. Porque, claro, Hyper-V sigue complicando las cosas más de lo necesario.
Con suerte, esta idea de cerrar procesos y reiniciar servicios liberará tu máquina virtual sin tener que reiniciar el host por completo. Con un poco de caos asincrónico, recuperarás el control.