Problemen met een Linux-VM oplossen door de besturingssysteemschijf aan een herstel-VM te koppelen met behulp van de Azure-portal
Als uw Virtuele Linux-computer (VM) een opstart- of schijffout ondervindt, moet u mogelijk probleemoplossingsstappen uitvoeren op de virtuele harde schijf zelf. Een veelvoorkomende voorbeeld is een ongeldige vermelding waarin /etc/fstab wordt voorkomen 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:
- Stop de betreffende VM.
- Maak een momentopname voor de besturingssysteemschijf van de VM.
- Maak een virtuele harde schijf op de momentopname.
- Koppel de virtuele harde schijf aan een andere Linux-VM om problemen op te lossen.
- Verbinding maken het oplossen van problemen met VM. Bestanden bewerken of hulpprogramma's uitvoeren om problemen op de oorspronkelijke virtuele harde schijf op te lossen.
- De virtuele harde schijf loskoppelen en loskoppelen van het probleem met VM.
- Verwissel de besturingssysteemschijf voor de VM.
Notitie
Dit artikel is niet van toepassing op de VM met een niet-bemande schijf. Zie Een versleutelde Linux-schijf ontgrendelen voor offlineherstel voor een versleutelde Linux-schijf.
Problemen met opstarten bepalen
Bekijk de startdiagnose en VM-schermafbeelding om te bepalen waarom uw VM niet correct kan worden opgestart. Een veelvoorkomende 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 + Probleemoplossing . Klik op Diagnostische gegevens opstarten om de consoleberichten te bekijken die vanuit uw VM worden gestreamd. Bekijk de consolelogboeken om te zien of u kunt vaststellen waarom er een probleem is met de VM. In het volgende voorbeeld ziet u een VM die vastzit in de onderhoudsmodus die handmatige interactie vereist:
U kunt ook boven aan het diagnostische opstartlogboek op Schermafbeelding klikken om een opname van de VM-schermafbeelding te downloaden.
Een momentopname maken van de OS-schijf
Een momentopname is een volledige, alleen-lezen kopie van een virtuele harde schijf (VHD). U wordt aangeraden de VM goed af te sluiten voordat u een momentopname maakt, zodat alle processen die worden uitgevoerd, worden geweend. Als u een momentopname van een besturingssysteemschijf wilt maken, gaat u als volgt te werk:
Ga naar Azure Portal. Selecteer Virtuele machines op de zijbalk en selecteer vervolgens de VM met een probleem.
Selecteer in het linkerdeelvenster Schijven en selecteer vervolgens de naam van de besturingssysteemschijf.
Klik op de pagina Overzicht van de besturingssysteemschijf en selecteer momentopname maken.
Maak een momentopname op dezelfde locatie als de besturingssysteemschijf.
Een schijf maken op de momentopname
Als u een schijf wilt maken op de momentopname, gaat u als volgt te werk:
Selecteer Cloud Shell in de Azure-portal.
Voer de volgende PowerShell-opdrachten uit om een beheerde schijf te maken vanaf de momentopname. U moet deze voorbeeldnamen vervangen 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 $diskNameAls de opdrachten zijn uitgevoerd, ziet u de nieuwe schijf in de resourcegroep die u hebt opgegeven.
Schijf aan een andere VM koppelen
Voor de volgende stappen gebruikt u een andere VM voor probleemoplossingsdoeleinden. Nadat u de schijf hebt toegevoegd aan het probleem met VM, kunt u door de inhoud van de schijf bladeren en bewerken. Met dit proces kunt u configuratiefouten corrigeren of aanvullende toepassings- of systeemlogboekbestanden controleren. Als u de schijf wilt koppelen aan een andere VM, gaat u als volgt te werk:
Selecteer uw resourcegroep in de portal en selecteer vervolgens uw probleemoplossing vm. Selecteer Schijven, selecteer Bewerken en klik vervolgens op Gegevensschijf toevoegen:
Selecteer in de lijst Gegevensschijfjes de besturingssysteemschijf van de VM die u hebt geïdentificeerd. Als u de besturingssysteemschijf niet ziet, moet u ervoor zorgen dat het oplossen van problemen met VM en de besturingssysteemschijf zich in dezelfde regio (locatie) bevindt.
Selecteer Opslaan om de wijzigingen toe te passen.
De gekoppelde gegevensschijf bevestigen
Notitie
In de volgende voorbeelden worden de stappen beschreven die zijn vereist voor een Ubuntu-VM. Als u een andere Linux-distro gebruikt, zoals Red Hat Enterprise Linux of SUSE, mount kunnen de logbestandslocaties en -opdrachten iets anders zijn. Raadpleeg de documentatie voor uw specifieke distributie voor de juiste wijzigingen in opdrachten.
SSH voor het oplossen van problemen met VM met de juiste referenties. Als deze schijf de eerste gegevensschijf is die is gekoppeld aan uw probleemoplossing vm, is deze waarschijnlijk verbonden met
/dev/sdc. Gebruikdmsegom bijgevoegde schijven te gebruiken:dmesg | grep SCSIDe 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 diskIn het voorgaande voorbeeld staat de besturingssysteemschijf op en
/dev/sdade tijdelijke schijf die voor elke VM is opgegeven op/dev/sdb. Als u meerdere gegevensschijfjes hebt, moeten deze/dev/sddzich op ,/dev/sdeen ga zo maar door.Maak een adreslijst om uw bestaande virtuele harde schijf te monteren. In het volgende voorbeeld wordt een adreslijst gemaakt met de naam
troubleshootingdisk:sudo mkdir /mnt/troubleshootingdiskAls u meerdere partities op uw bestaande virtuele harde schijf hebt, zet u de vereiste partitie op. In het volgende voorbeeld wordt de eerste primaire partitie op :
/dev/sdc1sudo mount /dev/sdc1 /mnt/troubleshootingdiskNotitie
De beste manier is om gegevensschijfjes op VM's in Azure op te bouwen met behulp van de universeel unieke id (UUID) van de virtuele harde schijf. Voor dit korte probleemoplossingsscenario is het niet nodig om de virtuele harde schijf te gebruiken met de UUID. Bij normaal gebruik kan het
/etc/fstabbewerken van virtuele harde schijven met de naam van het apparaat in plaats van UUID ertoe leiden dat de VM niet kan worden opgestart.
Problemen oplossen op de oorspronkelijke virtuele harde schijf
Met de bestaande virtuele harde schijf is het nu mogelijk om eventuele onderhouds- en probleemoplossingsstappen uit te voeren. Nadat u de problemen hebt opgelost, gaat u verder met de volgende stappen.
De oorspronkelijke virtuele harde schijf loskoppelen en loskoppelen
Wanneer uw fouten zijn opgelost, moet u de bestaande virtuele harde schijf loskoppelen van uw probleemoplossing voor VM. U kunt uw virtuele harde schijf niet gebruiken met andere VM totdat de lease die de virtuele harde schijf aan het probleemoplossings-VM koppelt, is vrijgegeven.
Van de SSH-sessie tot het oplossen van problemen met VM, demonteert u de bestaande virtuele harde schijf. Eerst de bovenliggende adreslijst voor het bevestigingspunt wijzigen:
cd /De bestaande virtuele harde schijf wordt nu losgekoppeld. In het volgende voorbeeld wordt het apparaat losgekoppeld op
/dev/sdc1:sudo umount /dev/sdc1Maak 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:
Wacht totdat de VM de gegevensschijf heeft losgemaakt voordat u verdergaat.
De besturingssysteemschijf verwisselen voor de VM
Azure Portal ondersteunt nu het wijzigen van de besturingssysteemschijf van de VM. Ga hiervoor als volgt te werk:
Ga naar Azure Portal. Selecteer Virtuele machines op de zijbalk en selecteer vervolgens de VM met een probleem.
Selecteer in het linkerdeelvenster Schijven en selecteer vervolgens Schijf van besturingssysteem wisselen.
Kies de nieuwe schijf die u hebt hersteld en typ vervolgens 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 hebt losgemaakt van het probleem met VM. Zorg er ook voor dat de schijf zich op dezelfde locatie bevindt als de VM.
Selecteer OK.
Volgende stappen
Zie SSH-verbindingen met een Azure VM oplossen als er problemen zijn met het maken van verbinding met uw VM. Zie Problemen met de toepassingsconnectiviteit oplossen op een Linux-VM voor problemen met het openen van toepassingen die op uw VM worden uitgevoerd.
Zie Overzicht van Azure Resource Manager voor meer informatie over het gebruik van Resource Manager.