Reparar una máquina virtual de Windows mediante los comandos de reparación de máquinas virtuales de Azure

Si su máquina virtual (VM) Windows en Azure encuentra un error de arranque o de disco, puede que necesite reparar el disco sin conexión. Un ejemplo habitual sería una actualización de aplicación con error que impide que la máquina virtual se pueda arrancar correctamente. En este artículo se detalla cómo utilizar los comandos de reparación de máquinas virtuales de Azure para adjuntar automáticamente un disco del sistema operativo averiado a otra máquina virtual de Windows para su reparación sin conexión. A través de este procedimiento, el disco SO fallido se desbloqueará automáticamente en la segunda MV, llamada MV de reparación, si el disco está cifrado con Azure Disk Encryption. Cuando el disco defectuoso esté conectado a la máquina virtual reparada, podrá corregir cualquier error y, a continuación, reconstruir la máquina virtual original con el disco reparado.

Importante

  • Los scripts de este artículo sólo se aplican a las máquinas virtuales que utilizan Azure Resource Manager.
  • Se requiere conectividad saliente desde la máquina virtual (puerto 443) para que se ejecute el script.
  • Sólo puede ejecutarse un script a la vez.
  • Un script en ejecución no se puede cancelar.
  • El tiempo máximo de ejecución de un script es de 90 minutos.
  • No modifique las etiquetas creadas en la máquina virtual de reparación. Las etiquetas son necesarias para que el comando de restauración funcione correctamente.
  • Para las máquinas virtuales que utilizan Azure Disk Encryption, solo se admiten discos gestionados cifrados con cifrado de una sola pasada (con o sin KEK).

Información general sobre el proceso de reparación

Ahora puede utilizar los comandos de reparación de Azure VM para cambiar el disco del sistema operativo de una máquina virtual, y ya no es necesario eliminar y volver a crear la máquina virtual.

Siga estos pasos para solucionar el problema de la máquina virtual:

  1. Iniciar Azure Cloud Shell
  2. Ejecute la extensión az add/update.
  3. Ejecute az vm repair create.
  4. Ejecute az vm repair run, o realice los pasos de mitigación.
  5. Ejecute az vm repair restore.

Para ver todos los comandos y parámetros de reparación de VM disponibles, consulte az vm repair.

Para ejecutar los comandos, necesita un rol que pueda crear los siguientes tipos de recursos en la suscripción:

  • Grupos de recursos
  • Máquinas virtuales
  • Etiquetas de recursos
  • Redes virtuales
  • Grupos de seguridad de red
  • Interfaces de red
  • Discos
  • Direcciones IP públicas (opcional)

Ejemplo de proceso de reparación

  1. Iniciar Azure Cloud Shell

    Azure Cloud Shell es un shell interactivo gratuito que puede utilizar para ejecutar los pasos de este artículo. Incluye herramientas comunes de Azure preinstaladas y configuradas para utilizarlas con su cuenta. Si ejecuta un script que le llevará más de 20 minutos (por ejemplo: el script win-sfc-sf-corruption), puede que prefiera ejecutar los comandos localmente. Para ejecutar los comandos localmente, se requiere Azure CLI versión 2.0.67 o posterior. Ejecute az --version para encontrar la versión. Si necesita instalar o actualizar su Azure CLI, consulte Instalar Azure CLI.

    Para abrir Cloud Shell, seleccione Probar en la esquina superior derecha de un bloque de código. También puede abrir Cloud Shell en una pestaña separada del navegador visitando https://shell.azure.com.

    Seleccione Copiar para copiar los bloques de código y, a continuación, pegue el código en Cloud Shell y seleccione Intro para ejecutarlo.

    Si prefiere instalar y utilizar la CLI localmente, esta guía rápida requiere la versión 2.0.67 o posterior de Azure CLI. Ejecute az --version para encontrar la versión. Si necesita instalar o actualizar su Azure CLI, consulte Instalar Azure CLI.

    Si necesitas iniciar sesión en Cloud Shell con una cuenta diferente a con la que actualmente has iniciado sesión en el portal de Azure puedes utilizar az loginaz login reference. Para cambiar entre las suscripciones asociadas a su cuenta, puede utilizar az account set --subscriptionaz account set reference.

  2. Si es la primera vez que utiliza los comandos az vm repair, añada la extensión CLI vm-repair.

    az extension add -n vm-repair
    

    Si ha utilizado previamente los comandos az vm repair, aplique cualquier actualización a la extensión vm-repair.

    az extension update -n vm-repair
    
  3. Ejecute az vm repair create. Este comando creará una copia del disco del sistema operativo para la máquina virtual no funcional, creará una máquina virtual de reparación en un nuevo grupo de recursos y adjuntará la copia del disco del sistema operativo. La máquina virtual de reparación tendrá el mismo tamaño y región que la máquina virtual no funcional especificada. El grupo de recursos y el nombre de la máquina virtual utilizados en todos los pasos corresponderán a la máquina virtual no funcional. Si su VM está utilizando Azure Disk Encryption, utilice --unlock-encrypted-vm para desbloquear el disco cifrado de modo que sea accesible cuando se conecte a la VM de reparación. Para obtener más información, consulte confirmar que ADE está activado en el disco. Si necesita reparar su VM en un entorno Hyper-V anidado, utilice --enable-nested y la VM de reparación se creará con el rol Hyper-V habilitado junto con una VM anidada utilizando la copia de disco del SO.

Importante

Los comandos de ejecución y restauración requerirán que todas las entradas se introduzcan utilizando el mismo caso que se utilizó en el comando de creación, tome nota o consulte las etiquetas en la VM de reparación para ver lo que se utilizó.

Ejemplo de la reparación de VM

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --verbose

Ejemplo de reparación de VM con Hyper-V anidado

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --enable-nested --verbose
  1. Ejecute az vm repair run. Este comando ejecutará el script de reparación especificado en el disco adjunto a través de la VM de reparación. Si la guía de solución de problemas que está utilizando especifica un objeto run-id, úselo aquí. De lo contrario, puede utilizar az vm repair list-scripts para ver las secuencias de comandos de reparación disponibles. El grupo de recursos y el nombre de la máquina virtual utilizados aquí corresponden a la máquina virtual no funcional utilizada en el paso 3. Puede encontrar información adicional sobre los scripts de reparación en la biblioteca de scripts de reparación.

    az vm repair run -g MyResourceGroup -n MyVM --run-on-repair --run-id win-hello-world --verbose
    

    Opcionalmente, puede realizar cualquier paso de mitigación manual necesario utilizando la VM de reparación y, a continuación, continuar con el paso 5.

  2. Ejecute az vm repair restore. Este comando intercambiará el disco de SO reparado con el disco de SO original de la VM. El grupo de recursos y el nombre de la máquina virtual utilizados aquí corresponden a la máquina virtual no funcional utilizada en el paso 3.

    az vm repair restore -g MyResourceGroup -n MyVM --verbose
    

Comprobación y habilitación del diagnóstico de arranque

En el ejemplo siguiente se habilita la extensión de diagnóstico en la máquina virtual denominada myVMDeployed en el grupo de recursos myResourceGroup:

Azure CLI

az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/

Pasos siguientes

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.