Risolvere i problemi relativi a una macchina virtuale Linux collegando il disco del sistema operativo a una macchina virtuale di ripristino nel portale di AzureTroubleshoot a Linux VM by attaching the OS disk to a recovery VM using the Azure portal

Se nella VM Linux viene rilevato un errore di avvio o del disco, potrebbe essere necessario eseguire dei passaggi per la risoluzione dei problemi sul disco rigido virtuale stesso.If your Linux virtual machine (VM) encounters a boot or disk error, you may need to perform troubleshooting steps on the virtual hard disk itself. Un esempio comune è una voce non valida in /etc/fstab che impedisce il corretto avvio della macchina virtuale.A common example would be an invalid entry in /etc/fstab that prevents the VM from being able to boot successfully. Questo articolo illustra come usare il portale di Azure per connettere il disco rigido virtuale a un'altra VM Linux per risolvere eventuali errori e quindi ricreare la VM originale.This article details how to use the Azure portal to connect your virtual hard disk to another Linux VM to fix any errors, then re-create your original VM.

Panoramica del processo di ripristinoRecovery process overview

I passaggi per la risoluzione dei problemi sono i seguenti:The troubleshooting process is as follows:

  1. Eliminare la macchina virtuale su cui si riscontrano i problemi, mantenendo i dischi rigidi virtuali.Delete the VM encountering issues, keeping the virtual hard disks.
  2. Collegare e montare il disco rigido virtuale in un'altra VM Linux per risolvere i problemi riscontrati.Attach and mount the virtual hard disk to another Linux VM for troubleshooting purposes.
  3. Connettersi alla macchina virtuale usata per la risoluzione dei problemi.Connect to the troubleshooting VM. Modificare i file o eseguire eventuali strumenti per risolvere i problemi nel disco rigido virtuale originale.Edit files or run any tools to fix issues on the original virtual hard disk.
  4. Smontare e scollegare il disco rigido virtuale dalla macchina virtuale usata per la risoluzione dei problemi.Unmount and detach the virtual hard disk from the troubleshooting VM.
  5. Creare una VM usando il disco rigido virtuale originale.Create a VM using the original virtual hard disk.

Individuare i problemi di avvioDetermine boot issues

Esaminare la diagnostica di avvio e la schermata della VM per determinare perché la macchina virtuale non è in grado di avviarsi correttamente.Examine the boot diagnostics and VM screenshot to determine why your VM is not able to boot correctly. Un esempio comune è una voce non valida in /etc/fstab, oppure l'eliminazione o lo spostamento di un disco rigido virtuale sottostante.A common example would be an invalid entry in /etc/fstab, or an underlying virtual hard disk being deleted or moved.

Nel portale, selezionare la macchina virtuale e quindi scorrere verso il basso fino alla sezione Supporto e risoluzione dei problemi.Select your VM in the portal and then scroll down to the Support + Troubleshooting section. Fare clic su Diagnostica di avvio per i visualizzare i messaggi della console originati dalla VM.Click Boot diagnostics to view the console messages streamed from your VM. Esaminare i registri della console per cercare di determinare la causa del problema riscontrato nella macchina virtuale.Review the console logs to see if you can determine why the VM is encountering an issue. L'esempio seguente mostra una macchina virtuale bloccata in modalità di manutenzione che richiede l'intervento manuale:The following example shows a VM stuck in maintenance mode that requires manual interaction:

Visualizzazione dei registri della console nella diagnostica di avvio della macchina virtuale

È anche possibile fare clic su Schermata nella parte superiore del log della diagnostica di avvio per scaricare una schermata della macchina virtuale.You can also click Screenshot across the top of the boot diagnostics log to download a capture of the VM screenshot.

Visualizzare i dettagli del disco rigido virtuale esistenteView existing virtual hard disk details

Prima di collegare il disco rigido virtuale a un'altra macchina virtuale, è necessario identificare il nome del disco rigido virtuale.Before you can attach your virtual hard disk to another VM, you need to identify the name of the virtual hard disk (VHD).

Selezionare il gruppo di risorse dal portale, quindi selezionare il proprio account di archiviazione.Select your resource group from the portal, then select your storage account. Fare clic su BLOB, come nell'esempio seguente:Click Blobs, as in the following example:

Selezionare il BLOB di archiviazione

In genere è presente un contenitore denominato vhds che contiene i dischi rigidi virtuali.Typically you have a container named vhds that stores your virtual hard disks. Selezionare il contenitore per visualizzare un elenco dei dischi rigidi virtuali.Select the container to view a list of virtual hard disks. Annotare il nome del disco rigido virtuale desiderato. Il prefisso è in genere il nome della propria macchina virtuale:Note the name of your VHD (the prefix is usually the name of your VM):

Identificare il disco rigido virtuale nel contenitore di archiviazione

Selezionare il disco rigido virtuale esistente dall'elenco e copiare l'URL, che verrà usato nei passaggi seguenti:Select your existing virtual hard disk from the list and copy the URL for use in the following steps:

Copiare l'URL del disco rigido virtuale esistente

Eliminare la VM esistenteDelete existing VM

In Azure, i dischi rigidi virtuali e le macchine virtuali sono due risorse distinte.Virtual hard disks and VMs are two distinct resources in Azure. In un disco rigido virtuale sono archiviati il sistema operativo, le applicazioni e le configurazioni.A virtual hard disk is where the operating system itself, applications, and configurations are stored. La macchina virtuale è invece costituita da metadati che definiscono le dimensioni o il percorso, e da risorse di riferimento, ad esempio un disco rigido virtuale o una scheda di interfaccia di rete virtuale.The VM itself is just metadata that defines the size or location, and references resources such as a virtual hard disk or virtual network interface card (NIC). A ogni disco rigido virtuale associato a una macchina virtuale viene assegnato un lease.Each virtual hard disk has a lease assigned when attached to a VM. È possibile collegare e scollegare i dischi dati anche quando la macchina virtuale è in esecuzione, mentre non è possibile scollegare il disco del sistema operativo, a meno che la risorsa di macchina non sia stata eliminata.Although data disks can be attached and detached even while the VM is running, the OS disk cannot be detached unless the VM resource is deleted. Il lease continua ad associare il disco del sistema operativo e la macchina virtuale anche quando questa viene arrestata e deallocata.The lease continues to associate the OS disk with a VM even when that VM is in a stopped and deallocated state.

Il primo passaggio per ripristinare la macchina virtuale consiste nell'eliminare la risorsa della macchina virtuale stessa.The first step to recover your VM is to delete the VM resource itself. Anche se si elimina la macchina virtuale, i dischi rigidi virtuali restano nell'account di archiviazione.Deleting the VM leaves the virtual hard disks in your storage account. Dopo aver eliminato la macchina virtuale, il disco rigido virtuale viene collegato a un'altra macchina virtuale per diagnosticare e risolvere gli errori.After the VM is deleted, you attach the virtual hard disk to another VM to troubleshoot and resolve the errors.

Selezionare la macchina virtuale nel portale, quindi fare clic su Elimina:Select your VM in the portal, then click Delete:

Schermata di diagnostica di avvio della macchina virtuale che mostra un errore di avvio

Attendere il completamento dell'eliminazione della macchina virtuale prima di collegare il disco rigido virtuale a un'altra macchina virtuale.Wait until the VM has finished deleting before you attach the virtual hard disk to another VM. Il lease del disco rigido virtuale che lo associa alla macchina virtuale deve essere rilasciato prima di poter collegare il disco a un'altra macchina.The lease on the virtual hard disk that associates it with the VM needs to be released before you can attach the virtual hard disk to another VM.

Collegare il disco rigido virtuale esistente a un'altra macchina virtualeAttach existing virtual hard disk to another VM

Nei passaggi successivi viene utilizzata un'altra macchina virtuale per la risoluzione dei problemi.For the next few steps, you use another VM for troubleshooting purposes. Il disco rigido virtuale esistente viene collegato alla macchina virtuale usata per la risoluzione dei problemi, grazie alla quale è possibile individuare e modificare il contenuto del disco.You attach the existing virtual hard disk to this troubleshooting VM to be able to browse and edit the disk's content. Questo processo consente, ad esempio, di correggere eventuali errori di configurazione, di esaminare applicazioni aggiuntive o file del registro di sistema.This process allows you to correct any configuration errors or review additional application or system log files, for example. Scegliere o creare un'altra macchina virtuale da usare per la risoluzione dei problemi.Choose or create another VM to use for troubleshooting purposes.

  1. Nel portale, selezionare il gruppo di risorse e quindi la macchina virtuale da usare per la risoluzione dei problemi.Select your resource group from the portal, then select your troubleshooting VM. Selezionare Dischi e quindi fare clic su Collega esistente:Select Disks and then click Attach existing:

    Collegare un disco esistente nel portale

  2. Per selezionare il disco rigido virtuale esistente, fare clic su File VHD:To select your existing virtual hard disk, click VHD File:

    Cercare il disco rigido virtuale esistente

  3. Selezionare l'account e il contenitore di archiviazione, quindi fare clic sul disco rigido virtuale esistente.Select your storage account and container, then click your existing VHD. Fare clic sul pulsante Seleziona per confermare la scelta:Click the Select button to confirm your choice:

    Selezionare il disco rigido virtuale esistente

  4. Dopo aver selezionato il disco rigido virtuale, fare clic su OK per collegare il disco rigido virtuale esistente:With your VHD now selected, click OK to attach the existing virtual hard disk:

    Confermare il collegamento del disco rigido virtuale esistente

  5. Dopo alcuni secondi, il riquadro Dischi della macchina virtuale esistente mostra il disco rigido virtuale esistente collegato come disco dati:After a few seconds, the Disks pane for your VM lists your existing virtual hard disk connected as a data disk:

    Disco rigido virtuale esistente collegato come disco dati

Montare il disco dati collegatoMount the attached data disk

Nota

Gli esempi seguenti mostrano in dettaglio i passaggi necessari in una VM Ubuntu.The following examples detail the steps required on an Ubuntu VM. Se si usa una diversa distribuzione Linux, ad esempio Red Hat Enterprise Linux o SUSE, i percorsi dei file di log e i comandi mount potrebbero differire.If you are using a different Linux distro, such as Red Hat Enterprise Linux or SUSE, the log file locations and mount commands may be a little different. Consultare la documentazione relativa alla distribuzione specifica per le opportune modifiche ai comandi.Refer to the documentation for your specific distro for the appropriate changes in commands.

  1. Eseguire SSH nella macchina virtuale di cui risolvere i problemi usando le credenziali appropriate.SSH to your troubleshooting VM using the appropriate credentials. Se questo disco è il primo disco dati collegato alla macchina virtuale di cui risolvere i problemi, è probabilmente connesso a /dev/sdc.If this disk is the first data disk attached to your troubleshooting VM, it is likely connected to /dev/sdc. Usare dmseg per elencare i dischi collegati:Use dmseg to list attached disks:

    dmesg | grep SCSI
    

    L'output è simile all'esempio seguente:The output is similar to the following example:

    [    0.294784] SCSI subsystem initialized
    [    0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [    7.110271] sd 2:0:0:0: [sda] Attached SCSI disk
    [    8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk
    [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
    

    Nell'esempio precedente, il disco del sistema operativo è in /dev/sda e il disco temporaneo fornito per ogni macchina virtuale è in /dev/sdb.In the preceding example, the OS disk is at /dev/sda and the temporary disk provided for each VM is at /dev/sdb. Se sono presenti più dischi dati, devono trovarsi in /dev/sdd, /dev/sde, e così via.If you had multiple data disks, they should be at /dev/sdd, /dev/sde, and so on.

  2. Creare una directory per montare il disco rigido virtuale esistente.Create a directory to mount your existing virtual hard disk. L'esempio seguente crea una directory denominata troubleshootingdisk:The following example creates a directory named troubleshootingdisk:

    sudo mkdir /mnt/troubleshootingdisk
    
  3. Se sul disco rigido virtuale esistente sono presenti più partizioni, montare la partizione richiesta.If you have multiple partitions on your existing virtual hard disk, mount the required partition. L'esempio seguente monta la prima partizione primaria in /dev/sdc1:The following example mounts the first primary partition at /dev/sdc1:

    sudo mount /dev/sdc1 /mnt/troubleshootingdisk
    

    Nota

    Si consiglia di montare i dischi dati nelle macchine virtuali in Azure usando l'identificatore univoco universale (UUID) del disco rigido virtuale.Best practice is to mount data disks on VMs in Azure using the universally unique identifier (UUID) of the virtual hard disk. Per questo scenario, non è necessario montare il disco rigido virtuale usando il relativo l'UUID.For this short troubleshooting scenario, mounting the virtual hard disk using the UUID is not necessary. Durante il normale utilizzo, invece, modificare /etc/fstab per montare i dischi rigidi virtuali usando il nome di dispositivo anziché l'UUID può impedire il corretto avvio della macchina virtuale.However, under normal use, editing /etc/fstab to mount virtual hard disks using device name rather than UUID may cause the VM to fail to boot.

Risolvere i problemi del disco rigido virtuale originaleFix issues on original virtual hard disk

Dopo aver montato il disco rigido virtuale eseguire tutte le operazioni di manutenzione e i passaggi necessari per la risoluzione dei problemi.With the existing virtual hard disk mounted, you can now perform any maintenance and troubleshooting steps as needed. Dopo avere risolto i problemi, continuare con la procedura seguente.Once you have addressed the issues, continue with the following steps.

Smontare e scollegare il disco rigido virtuale originaleUnmount and detach original virtual hard disk

Dopo aver risolto gli errori, scollegare il disco rigido virtuale esistente dalla macchina virtuale usata per la risoluzione dei problemi.Once your errors are resolved, detach the existing virtual hard disk from your troubleshooting VM. Non è possibile usare il disco rigido virtuale con altre macchine virtuali finché non viene rilasciato il lease che collega il disco rigido virtuale alla macchina virtuale usata per la risoluzione dei problemi.You cannot use your virtual hard disk with any other VM until the lease attaching the virtual hard disk to the troubleshooting VM is released.

  1. Dalla sessione SSH nella macchina virtuale usata per la risoluzione dei problemi, smontare il disco rigido virtuale esistente.From the SSH session to your troubleshooting VM, unmount the existing virtual hard disk. Modificare innanzitutto la directory padre del punto di montaggio:Change out of the parent directory for your mount point first:

    cd /
    

    A questo punto smontare il disco rigido virtuale esistente.Now unmount the existing virtual hard disk. Nell'esempio viene smontato il dispositivo in /dev/sdc1:The following example unmounts the device at /dev/sdc1:

    sudo umount /dev/sdc1
    
  2. Scollegare il disco rigido virtuale dalla macchina virtuale.Now detach the virtual hard disk from the VM. Selezionare la macchina virtuale nel portale, quindi fare clic su Dischi.Select your VM in the portal and click Disks. Selezionare il disco rigido virtuale esistente quindi fare clic su Scollega:Select your existing virtual hard disk and then click Detach:

    Scollegare il disco rigido virtuale esistente

    Attendere che il disco dati sia completamente scollegato dalla macchina virtuale prima di continuare.Wait until the VM has successfully detached the data disk before continuing.

Creare una macchina virtuale dal disco rigido originaleCreate VM from original hard disk

Per creare una macchina virtuale dal disco rigido virtuale originale, usare questo modello di Azure Resource Manager.To create a VM from your original virtual hard disk, use this Azure Resource Manager template. Il modello distribuisce una macchina virtuale in una rete virtuale esistente, usando l'URL del disco rigido virtuale del comando precedente.The template deploys a VM into an existing virtual network, using the VHD URL from the earlier command. Fare clic sul pulsante Distribuisci in Azure come indicato di seguito:Click the Deploy to Azure button as follows:

Distribuire una macchina virtuale da un modello di GitHub

Il modello viene caricato nel portale di Azure per la distribuzione.The template is loaded into the Azure portal for deployment. Immettere i nomi della nuova macchina virtuale e delle risorse di Azure esistenti e incollare l'URL del disco rigido virtuale esistente.Enter the names for your new VM and existing Azure resources, and paste the URL to your existing virtual hard disk. Per avviare la distribuzione, fare clic su Acquista:To begin the deployment, click Purchase:

Distribuire una macchina virtuale dal modello

Riabilitare la diagnostica di avvioRe-enable boot diagnostics

Quando si crea la macchina virtuale dal disco rigido virtuale esistente, la diagnostica di avvio potrebbe non essere abilitata automaticamente.When you create your VM from the existing virtual hard disk, boot diagnostics may not automatically be enabled. Per controllare lo stato della diagnostica di avvio e attivarla se necessario, selezionare la macchina virtuale nel portale.To check the status of boot diagnostics and turn on if needed, select your VM in the portal. In Monitoraggio, fare clic su Impostazioni di diagnostica.Under Monitoring, click Diagnostics settings. Verificare che lo stato sia Attivo e che il segno di spunta accanto a Diagnostica di avvio sia selezionato.Ensure the status is On, and the check mark next to Boot diagnostics is selected. Se si apportano modifiche, fare clic su Salva:If you make any changes, click Save:

Aggiornare le impostazioni di diagnostica di avvio

Passaggi successiviNext steps

Se si sono verificati problemi durante la connessione alla macchina virtuale, vedere l'articolo sulla risoluzione dei problemi di connessione SSH a una macchina virtuale di Azure.If you are having issues connecting to your VM, see Troubleshoot SSH connections to an Azure VM. Per problemi relativi all'accesso alle applicazioni in esecuzione nella macchina virtuale, vedere Risolvere i problemi di connettività delle applicazioni in una macchina virtuale di Azure per Linux.For issues with accessing applications running on your VM, see Troubleshoot application connectivity issues on a Linux VM.

Per altre informazioni sull'uso di Resource Manager, vedere Panoramica di Azure Resource Manager.For more information about using Resource Manager, see Azure Resource Manager overview.