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

Si la máquina virtual (VM) de Windows en Azure encuentra un error de arranque o de disco, es posible que tenga que 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 usar comandos de reparación de máquinas virtuales de Azure para conectar automáticamente un disco del sistema operativo roto a otra máquina virtual Windows para su reparación sin conexión. Mediante este procedimiento, el disco del sistema operativo con errores se desbloqueará automáticamente en la segunda máquina virtual, denominada máquina virtual de reparación, si el disco se cifra con Azure Disk Encryption. Cuando el disco con errores está conectado a la máquina virtual de reparación, puede corregir los errores y, a continuación, volver a compilar la máquina virtual original con el disco reparado.

Importante

  • Los scripts de este artículo solo se aplican a las máquinas virtuales que usan Azure Resource Manager.
  • La conectividad saliente desde la máquina virtual (puerto 443) es necesaria para que se ejecute el script.
  • Solo se puede ejecutar un script a la vez.
  • No se puede cancelar un script en ejecución.
  • El tiempo máximo que se puede ejecutar un script es de 90 minutos, después del cual se agotará el tiempo de espera.
  • No modifique las etiquetas que se crean en la máquina virtual de reparación. Las etiquetas son necesarias para que el comando restore funcione correctamente.
  • En el caso de las máquinas virtuales que usan Azure Disk Encryption, solo se admiten los discos administrados cifrados con cifrado de paso único (con o sin KEK).

Información general sobre el proceso de reparación

Ahora puede usar comandos de reparación de máquinas virtuales de Azure 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. Inicio de Azure Cloud Shell
  2. Ejecute az extension 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 máquinas virtuales 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. Inicio de Azure Cloud Shell

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

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

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

    Si prefiere instalar y usar la CLI localmente, este inicio rápido requiere la versión 2.0.67 o posterior de la CLI de Azure. Ejecute az --version para buscar la versión. Si necesita instalar o actualizar la CLI de Azure, consulte Instalación de la CLI de Azure.

    Si necesita iniciar sesión en Cloud Shell con una cuenta diferente a la que ha iniciado sesión actualmente en la Azure Portal con puede usar az login az login reference. Para cambiar entre suscripciones asociadas a la cuenta, puede usar az account set --subscription az account set reference.

  2. Si es la primera vez que usa los az vm repair comandos, agregue la extensión de la CLI vm-repair.

    az extension add -n vm-repair
    

    Si ha usado anteriormente los az vm repair comandos, aplique las actualizaciones 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 nombre del grupo de recursos y de la máquina virtual que se usa en todos los pasos será para la máquina virtual no funcional. Si la máquina virtual usa Azure Disk Encryption, use --unlock-encrypted-vm para desbloquear el disco cifrado para que sea accesible cuando esté conectado a la máquina virtual de reparación. Para obtener más información, consulte Confirmación de que ADE está habilitado en el disco. Si necesita solucionar problemas de la máquina virtual en un entorno anidado de Hyper-V, use --enable-nested y la máquina virtual de reparación se creará con el rol de Hyper-V habilitado junto con una máquina virtual anidada mediante la copia del disco del sistema operativo.

Importante

Los comandos de ejecución y restauración requerirán que todas las entradas se escriban con el mismo caso que se usó en el comando create, anote o consulte las etiquetas de la máquina virtual de reparación para ver lo que se usó.

Ejemplo de reparación de máquina virtual

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

Ejemplo de reparación de máquina virtual 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 conectado a través de la máquina virtual de reparación. Si la guía de solución de problemas que usa especifica un identificador de ejecución, úsela aquí. De lo contrario, puede usar az vm repair list-scripts para ver los scripts de reparación disponibles. El grupo de recursos y el nombre de máquina virtual que se usan aquí son para la máquina virtual no funcional que se usa 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 los pasos de mitigación manual necesarios mediante la máquina virtual de reparación y, a continuación, continuar con el paso 5.

  2. Ejecute az vm repair restore. Este comando intercambiará el disco del sistema operativo reparado con el disco del sistema operativo original de la máquina virtual. El grupo de recursos y el nombre de máquina virtual que se usan aquí son para la máquina virtual no funcional que se usa 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.