Share via


Ripristinare una macchina virtuale Windows usando i comandi di riparazione di macchine virtuali di Azure

Se la macchina virtuale (VM) Windows in Azure rileva un errore di avvio o del disco, potrebbe essere necessario riparare il disco offline. Un esempio comune potrebbe essere un aggiornamento dell'applicazione non riuscito che impedisce alla macchina virtuale di avviarsi correttamente. Questo articolo descrive in dettaglio come usare i comandi di ripristino delle macchine virtuali di Azure per collegare automaticamente un disco del sistema operativo danneggiato a un'altra macchina virtuale Windows per il ripristino offline. Attraverso questa procedura, il disco del sistema operativo in errore verrà sbloccato automaticamente nella seconda macchina virtuale, denominata macchina virtuale di riparazione, se il disco è crittografato con Crittografia dischi di Azure. Quando il disco guasto viene collegato alla VM riparata, è possibile correggere eventuali errori e quindi ricostruire la VM originale con il disco riparato.

Importante

  • Gli script in questo articolo si applicano solo alle macchine virtuali che usano Azure Resource Manager.
  • La connettività in uscita dalla macchina virtuale (porta 443) è necessaria per l'esecuzione dello script.
  • È possibile eseguire un solo script alla volta.
  • Uno script in esecuzione non può essere annullato.
  • Il tempo massimo di esecuzione di uno script è di 90 minuti, al termine dei quali terminerà l'esecuzione.
  • Non modificare i tag creati nella VM di riparazione. I tag sono necessari per il corretto funzionamento del comando di ripristino.
  • Per le macchine virtuali che usano Crittografia dischi di Azure, sono supportati solo i dischi gestiti crittografati con crittografia a passaggio singolo (con o senza KEK).

Panoramica del processo di riparazione

È ora possibile usare i comandi di ripristino della macchina virtuale di Azure per modificare il disco del sistema operativo per una macchina virtuale e non è più necessario eliminare e ricreare la macchina virtuale.

Segui questi passaggi per risolvere il problema della VM:

  1. Avvia Azure Cloud Shell
  2. Eseguire az extension add/update.
  3. Eseguire az vm repair create.
  4. Eseguire az vm repair run, o eseguire passaggi di mitigazione.
  5. Eseguire az vm repair restore.

Per visualizzare tutti i comandi e i parametri di riparazione VM disponibili, vedere az vm repair.

Per eseguire i comandi, è necessario un ruolo in grado di creare i seguenti tipi di risorse nella sottoscrizione:

  • Gruppi di risorse
  • Macchine virtuali
  • Tag delle risorse
  • Reti virtuali
  • Gruppi di sicurezza di rete
  • Interfacce di rete
  • Dischi
  • Indirizzi IP pubblici (opzionale)

Esempio di processo di riparazione

  1. Avvia Azure Cloud Shell

    Azure Cloud Shell è una shell interattiva gratuita che puoi usare per eseguire i passaggi descritti in questo articolo. Include gli strumenti comuni di Azure preinstallati e configurati per l'uso con il tuo account. Se esegui uno script che richiede più di 20 minuti (ad esempio: script win-sfc-sf-corruption), potresti preferire eseguire i comandi localmente. Per eseguire i comandi in locale, è necessaria la versione 2.0.67 o successiva dell'interfaccia della riga di comando di Azure. Eseguire az --version per trovare la versione. Se è necessario installare o aggiornare l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure.

    Per aprire Cloud Shell, seleziona Prova nell'angolo in alto a destra di un blocco di codice. È anche possibile aprire Cloud Shell in una scheda separata del browser visitando https://shell.azure.com.

    Seleziona Copia per copiare i blocchi di codice, quindi incolla il codice in Cloud Shell e seleziona Invio per eseguirlo.

    Se preferisci installare e usare l'interfaccia della riga di comando in locale, questo argomento di avvio rapido richiede l'interfaccia della riga di comando di Azure versione 2.0.67 o successiva. Eseguire az --version per trovare la versione. Se è necessario installare o aggiornare l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure.

    Se è necessario accedere a Cloud Shell con un account diverso da quello con cui si è attualmente connessi al Portale di Azure, è possibile utilizzare az loginaz login reference. Per passare da una sottoscrizione all'altra associata al proprio account, è possibile utilizzare az account set --subscriptionaz account set reference.

  2. Se è la prima volta che si utilizzano i comandi az vm repair, aggiungere l'estensione CLI vm-repair.

    az extension add -n vm-repair
    

    Se in precedenza sono stati utilizzati i comandi az vm repair, applicare eventuali aggiornamenti all'estensione vm-repair.

    az extension update -n vm-repair
    
  3. Eseguire az vm repair create. Questo comando creerà una copia del disco del sistema operativo per la macchina virtuale non funzionante, creerà una macchina virtuale di riparazione in un nuovo gruppo di risorse e collegherà la copia del disco del sistema operativo. La VM di riparazione avrà le stesse dimensioni e la stessa area della VM non funzionante specificata. Il gruppo di risorse e il nome della macchina virtuale usati in tutti i passaggi saranno per la macchina virtuale non funzionante. Se la macchina virtuale di Azure utilizza la crittografia del disco, utilizzare --unlock-encrypted-vm per sbloccare il disco crittografato in modo che sia accessibile quando è collegato alla macchina virtuale di ripristino. Per ulteriori informazioni, consulta conferma che ADE è abilitato sul disco. Se è necessario risolvere i problemi della macchina virtuale in un ambiente Hyper-V annidato, utilizzare --enable-nested e la macchina virtuale di ripristino verrà creata con il ruolo Hyper-V abilitato insieme a una macchina virtuale annidata che utilizza la copia del disco del sistema operativo.

Importante

I comandi di esecuzione e ripristino richiederanno l'immissione di tutti gli input utilizzando lo stesso caso utilizzato nel comando di creazione, prendere nota o fare riferimento ai tag sulla VM di riparazione per vedere cosa è stato utilizzato.

Esempio di riparazione della macchina virtuale

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

Esempio di riparazione della macchina virtuale con Hyper-V nidificato

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --enable-nested --verbose
  1. Eseguire az vm repair run. Questo comando eseguirà lo script di riparazione specificato sul disco collegato tramite la VM di riparazione. Se la guida alla risoluzione dei problemi che stai utilizzando specifica un run-id, usalo qui. Altrimenti, è possibile utilizzare az vm repair list-scripts per visualizzare gli script di riparazione disponibili. Il gruppo di risorse e il nome della macchina virtuale usati qui sono per la macchina virtuale non funzionante usata nel passaggio 3. Ulteriori informazioni sugli script di riparazione sono disponibili nella libreria degli script di riparazione.

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

    Facoltativamente, puoi eseguire qualsiasi passaggio di mitigazione manuale necessario utilizzando la macchina virtuale di riparazione, quindi procedere al passaggio 5.

  2. Eseguire az vm repair restore. Questo comando sostituirà il disco del sistema operativo riparato con il disco del sistema operativo originale della VM. Il gruppo di risorse e il nome della macchina virtuale usati qui sono per la macchina virtuale non funzionante usata nel passaggio 3.

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

Verificare e abilitare la diagnostica di avvio

L'esempio seguente abilita l'estensione di diagnostica sulla macchina virtuale denominata myVMDeployed nel gruppo di risorse denominato myResourceGroup:

Interfaccia della riga di comando di Azure

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

Passaggi successivi

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.