Risolvere i problemi del disco del sistema operativo della VMTroubleshoot a VMs operating system disk

Questo script consente di montare il disco del sistema operativo di una macchina virtuale in cui si è verificato un errore o un problema come disco dati in una seconda macchina virtuale.This script mounts the operating system disk of a failed or problematic virtual machine as a data disk to a second virtual machine. Può essere utile quando si esegue la risoluzione dei problemi del disco o il ripristino di dati.This can be useful when troubleshooting disk issues or recovering data.

Per eseguire questo esempio, verificare di aver installato l'ultima versione dell'interfaccia della riga di comando di Azure 2.0.To run this sample, make sure you have installed the latest Azure CLI 2.0. Per iniziare, eseguire az login per creare una connessione con Azure.To start, run az login to create a connection with Azure.

Questo esempio funziona in una shell Bash.This sample works in a Bash shell. Per le opzioni sull'esecuzione di script dell'interfaccia della riga di comando di Azure nel client Windows, vedere Running the Azure CLI in Windows (Esecuzione dell'interfaccia della riga di comando di Azure in Windows).For options on running Azure CLI scripts on Windows client, see Running the Azure CLI in Windows.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Script di esempioSample script

#!/bin/bash

# Source virtual machine details.
sourcevm=<Replace with vm name>
resourcegroup=<Replace with resource group name>

# Get the disk id for the source VM operating system disk.
diskid="$(az vm show -g $resourcegroup -n $sourcevm --query [storageProfile.osDisk.managedDisk.id] -o tsv)"
 
# Delete the source virtual machine, this will not delete the disk.
az vm delete -g $resourcegroup -n $sourcevm --yes

# Create a new virtual machine, this creates SSH keys if not present.
az vm create --resource-group $resourcegroup --name myVM --image UbuntuLTS --generate-ssh-keys

# Attach disk as a data disk to the newly created VM.
az vm disk attach --resource-group $resourcegroup --vm-name myVM --disk $diskid

# Configure disk on new VM.
ip=$(az vm list-ip-addresses --resource-group $resourcegroup --name myVM --query '[].virtualMachine.network.publicIpAddresses[0].ipAddress' -o tsv)
ssh $ip 'sudo mkdir /mnt/remountedOsDisk'
ssh $ip 'sudo mount -t ext4 /dev/sdc1 /mnt/remountedOsDisk'

Spiegazione dello scriptScript explanation

Questo script usa i comandi seguenti per creare un gruppo di risorse, la macchina virtuale e tutte le risorse correlate.This script uses the following commands to create a resource group, virtual machine, and all related resources. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.Each command in the table links to command specific documentation.

ComandoCommand NoteNotes
az vm showaz vm show Recupera un elenco di macchine virtuali.Return a list of virtual machines. In questo caso, l'opzione di query viene usata per restituire il disco del sistema operativo della macchina virtuale.In this case, the query option is used to return the virtual machine operating system disk. Questo valore viene quindi aggiunto a un nome di variabile 'uri'.This value is then added to a variable name ‘uri’.
az vm deleteaz vm delete Consente di eliminare una macchina virtuale.Deletes a virtual machine.
az vm createaz vm create Consente di creare una macchina virtuale.Creates a virtual machine.
az vm disk attachaz vm disk attach Collega un disco a una macchina virtuale.Attaches a disk to a virtual machine.
az vm list-ip-addressesaz vm list-ip-addresses Restituisce gli indirizzi IP di una macchina virtuale.Returns the IP addresses of a virtual machine.

Passaggi successiviNext steps

Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere la documentazione sull'interfaccia della riga di comando di Azure.For more information on the Azure CLI, see Azure CLI documentation.

Altri esempi di script dell'interfaccia della riga di comando della macchina virtuale sono reperibili nella documentazione della VM Linux di Azure.Additional virtual machine CLI script samples can be found in the Azure Linux VM documentation.