Problemen met een Linux-VM oplossen door de besturingssysteemschijf te koppelen aan een herstel-VM met behulp van de Azure Portal

Als uw virtuele Linux-machine (VM) een opstart- of schijffout ondervindt, moet u mogelijk stappen voor probleemoplossing uitvoeren op de virtuele harde schijf zelf. Een veelvoorkomend voorbeeld is een ongeldige vermelding in /etc/fstab die voorkomt dat de VM kan worden opgestart. In dit artikel wordt beschreven hoe u de Azure Portal gebruikt om uw virtuele harde schijf te verbinden met een andere Linux-VM om eventuele fouten op te lossen en vervolgens uw oorspronkelijke VM opnieuw te maken.

Overzicht van herstelproces

Het probleemoplossingsproces is als volgt:

  1. Stop de betreffende VM.
  2. Maak een momentopname van de besturingssysteemschijf van de VM.
  3. Maak een virtuele harde schijf op basis van de momentopname.
  4. Koppel en koppel de virtuele harde schijf aan een andere Linux-VM voor probleemoplossingsdoeleinden.
  5. Maak verbinding met de VM voor probleemoplossing. Bewerk bestanden of voer hulpprogramma's uit om problemen op de oorspronkelijke virtuele harde schijf op te lossen.
  6. De virtuele harde schijf ontkoppelen en loskoppelen van de VM voor probleemoplossing.
  7. Vervang de besturingssysteemschijf voor de VM.

Opmerking

Dit artikel is niet van toepassing op de VM met onbeheerde schijf. Zie Een versleutelde Linux-schijf ontgrendelen voor offlineherstel voor een versleutelde Linux-schijf.

Opstartproblemen vaststellen

Bekijk de opstartdiagnose en de schermafbeelding van de VM om te bepalen waarom uw VM niet correct kan worden opgestart. Een veelvoorkomend voorbeeld is een ongeldige vermelding in /etc/fstabof een onderliggende virtuele harde schijf die wordt verwijderd of verplaatst.

Selecteer uw VM in de portal en schuif omlaag naar de sectie Ondersteuning en probleemoplossing . Klik op Diagnostische gegevens over opstarten om de consoleberichten weer te geven die vanaf uw VM zijn gestreamd. Bekijk de consolelogboeken om te zien of u kunt bepalen waarom de VM een probleem ondervindt. In het volgende voorbeeld ziet u een VM die vastloopt in de onderhoudsmodus waarvoor handmatige interactie is vereist:

Schermopname van het weergeven van de logboeken van de V M-console voor diagnostische opstartgegevens.

U kunt ook klikken op Schermopname bovenaan het diagnostische logboek voor opstarten om een opname van de vm-schermopname te downloaden.

Een momentopname van de besturingssysteemschijf maken

Een momentopname is een volledige, alleen-lezen kopie van een virtuele harde schijf (VHD). U wordt aangeraden de VIRTUELE machine netjes af te sluiten voordat u een momentopname maakt, om alle processen die worden uitgevoerd, te wissen. Voer de volgende stappen uit om een momentopname van een besturingssysteemschijf te maken:

  1. Ga naar Azure Portal. Selecteer Virtuele machines in de zijbalk en selecteer vervolgens de VM die een probleem heeft.

  2. Selecteer schijven in het linkerdeelvenster en selecteer vervolgens de naam van de besturingssysteemschijf.

    Schermopname van de naam van de schijf van het besturingssysteem.

  3. Selecteer op de pagina Overzicht van de besturingssysteemschijf de optie Momentopname maken.

  4. Maak een momentopname op dezelfde locatie als de besturingssysteemschijf.

Een schijf maken op de momentopname

Voer de volgende stappen uit om een schijf te maken vanuit de momentopname:

  1. Selecteer Cloud Shell in de Azure Portal.

    Schermopname van de knop Cloud Shell in de Azure Portal.

  2. Voer de volgende PowerShell-opdrachten uit om een beheerde schijf te maken op basis van de momentopname. Vervang deze voorbeeldnamen door de juiste namen.

    #Provide the name of your resource group
    $resourceGroupName ='myResourceGroup'
    
    #Provide the name of the snapshot that will be used to create Managed Disks
    $snapshotName = 'mySnapshot' 
    
    #Provide the name of theManaged Disk
    $diskName = 'newOSDisk'
    
    #Provide the size of the disks in GB. It should be greater than the VHD file size. In this sample, the size of the snapshot is 127 GB. So we set the disk size to 128 GB.
    $diskSize = '128'
    
    #Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS.
    $storageType = 'Standard_LRS'
    
    #Provide the Azure region (e.g. westus) where Managed Disks will be located.
    #This location should be same as the snapshot location
    #Get all the Azure location using command below:
    #Get-AzLocation
    $location = 'westus'
    
    $snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName 
    
    $diskConfig = New-AzDiskConfig -AccountType $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id
    
    New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName
    
  3. Als de opdrachten worden uitgevoerd, ziet u de nieuwe schijf in de resourcegroep die u hebt opgegeven.

Schijf koppelen aan een andere VM

Voor de volgende stappen gebruikt u een andere VM voor probleemoplossingsdoeleinden. Nadat u de schijf hebt gekoppeld aan de VM voor probleemoplossing, kunt u de inhoud van de schijf bladeren en bewerken. Met dit proces kunt u configuratiefouten corrigeren of aanvullende toepassings- of systeembestanden bekijken. Voer de volgende stappen uit om de schijf aan een andere VM te koppelen:

  1. Selecteer uw resourcegroep in de portal en selecteer vervolgens uw VM voor probleemoplossing. Selecteer Schijven, selecteer Bewerken en klik vervolgens op Gegevensschijf toevoegen:

    Schermopname van de optie Gegevensschijf toevoegen in de Azure Portal.

  2. Selecteer in de lijst Gegevensschijven de besturingssysteemschijf van de vm die u hebt geïdentificeerd. Als u de besturingssysteemschijf niet ziet, controleert u of het oplossen van problemen met de VM en de besturingssysteemschijf zich in dezelfde regio (locatie) bevindt.

  3. Selecteer Opslaan om de wijzigingen toe te passen.

De gekoppelde gegevensschijf koppelen

Opmerking

In de volgende voorbeelden worden de stappen beschreven die vereist zijn op een Ubuntu-VM. Als u een andere Linux-distributie gebruikt, zoals Red Hat Enterprise Linux of SUSE, zijn de locaties en mount opdrachten van het logboekbestand mogelijk iets anders. Raadpleeg de documentatie voor uw specifieke distributie voor de juiste wijzigingen in opdrachten.

  1. SSH naar uw VM voor probleemoplossing met behulp van de juiste referenties. Als deze schijf de eerste gegevensschijf is die is gekoppeld aan uw VM voor probleemoplossing, is deze waarschijnlijk verbonden met /dev/sdc. Gebruik dmseg om gekoppelde schijven weer te geven:

    dmesg | grep SCSI
    

    De uitvoer is vergelijkbaar met het volgende voorbeeld:

    [    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
    

    In het voorgaande voorbeeld bevindt de besturingssysteemschijf zich op /dev/sda en bevindt de tijdelijke schijf die voor elke VM is opgegeven zich op /dev/sdb. Als u meerdere gegevensschijven hebt, moeten deze zich op /dev/sdd, /dev/sde, enzovoort bevinden.

  2. Maak een map om uw bestaande virtuele harde schijf te koppelen. In het volgende voorbeeld wordt een map gemaakt met de naam troubleshootingdisk:

    sudo mkdir /mnt/troubleshootingdisk
    
  3. Als u meerdere partities op uw bestaande virtuele harde schijf hebt, koppelt u de vereiste partitie. In het volgende voorbeeld wordt de eerste primaire partitie gekoppeld aan /dev/sdc1:

    sudo mount /dev/sdc1 /mnt/troubleshootingdisk
    

    Opmerking

    Het beste is om gegevensschijven te koppelen aan VM's in Azure met behulp van de UUID (Universally Unique Identifier) van de virtuele harde schijf. Voor dit korte probleemoplossingsscenario is het koppelen van de virtuele harde schijf met behulp van de UUID niet nodig. Bij normaal gebruik /etc/fstab kan bewerken om virtuele harde schijven te koppelen met behulp van de apparaatnaam in plaats van UUID ertoe leiden dat de VM niet kan worden opgestart.

Problemen oplossen op de oorspronkelijke virtuele harde schijf

Als de bestaande virtuele harde schijf is gekoppeld, kunt u nu zo nodig onderhouds- en probleemoplossingsstappen uitvoeren. Zodra u de problemen hebt opgelost, gaat u verder met de volgende stappen.

De oorspronkelijke virtuele harde schijf ontkoppelen en loskoppelen

Zodra uw fouten zijn opgelost, koppelt u de bestaande virtuele harde schijf los van uw VM voor probleemoplossing. U kunt de virtuele harde schijf pas met een andere VM gebruiken als de lease die de virtuele harde schijf koppelt aan de VM voor probleemoplossing is vrijgegeven.

  1. Ontkoppel de bestaande virtuele harde schijf van de SSH-sessie naar uw VM voor probleemoplossing. Wijzig eerst uit de bovenliggende map voor uw koppelpunt:

    cd /
    

    Ontkoppel nu de bestaande virtuele harde schijf. In het volgende voorbeeld wordt het apparaat ontkoppeld op /dev/sdc1:

    sudo umount /dev/sdc1
    
  2. Koppel nu de virtuele harde schijf los van de VM. Selecteer uw VM in de portal en klik op Schijven. Selecteer uw bestaande virtuele harde schijf en klik vervolgens op Loskoppelen:

    Schermopname om de virtuele harde schijf los te koppelen van de V M.

    Wacht totdat de VM de gegevensschijf heeft losgekoppeld voordat u doorgaat.

De besturingssysteemschijf wisselen voor de VM

Azure Portal ondersteunt nu het wijzigen van de besturingssysteemschijf van de VM. Ga hiervoor als volgt te werk:

  1. Ga naar Azure Portal. Selecteer Virtuele machines in de zijbalk en selecteer vervolgens de VM die een probleem heeft.

  2. Selecteer schijven in het linkerdeelvenster en selecteer vervolgens Besturingssysteemschijf wisselen.

    Schermopname van de optie O S-schijf wisselen in de Azure Portal.

  3. Kies de nieuwe schijf die u hebt hersteld en typ de naam van de VM om de wijziging te bevestigen. Als u de schijf niet in de lijst ziet, wacht u 10 ~ 15 minuten nadat u de schijf loskoppelt van de VM voor probleemoplossing. Zorg er ook voor dat de schijf zich op dezelfde locatie bevindt als de VM.

  4. Selecteer OK.

Volgende stappen

Als u problemen ondervindt bij het maken van verbinding met uw VM, raadpleegt u Problemen met SSH-verbindingen met een Azure-VM oplossen. Zie Problemen met toepassingsconnectiviteit oplossen op een Linux-VM voor problemen met het openen van toepassingen die worden uitgevoerd op uw VM.

Zie Overzicht van Azure Resource Manager voor meer informatie over het gebruik van Resource Manager.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.