Beheben von Problemen einer Linux-VM durch Anfügen des Betriebssystemdatenträgers an eine Wiederherstellungs-VM mithilfe der Azure CLI
Gilt für: ✔️ Linux-VMs
Wenn für Ihren virtuellen Linux-Computer (VM) ein Start- oder Datenträgerfehler auftritt, müssen Sie möglicherweise Schritte zur Problembehebung auf der virtuellen Festplatte selbst ausführen. Ein gängiges Beispiel wäre ein ungültiger Eintrag in /etc/fstab
, der den erfolgreichen Start der VM verhindert. In diesem Artikel wird erläutert, wie die Azure CLI die Verbindung zwischen Ihrer virtuellen Festplatte und einer anderen Linux-VM herstellt, um alle Fehler zu beheben und dann Ihre ursprüngliche VM neu zu erstellen.
Übersicht über den Wiederherstellungsprozess
Der Problembehebungsprozess sieht wie folgt aus:
- Beenden Sie die betroffene VM.
- Erstellen Sie eine Momentaufnahme des Betriebssystemdatenträgers der VM.
- Erstellen Sie einen Datenträger aus der Momentaufnahme vom Betriebssystemdatenträger.
- Ordnen Sie den neuen Betriebssystemdatenträger zu einer anderen Linux-VM zu, die als Problembehebungs-VM fungieren soll, und binden Sie den neuen Datenträger in diese VM ein.
- Stellen Sie eine Verbindung mit der Problembehebungs-VM her. Bearbeiten Sie Dateien, oder führen Sie ein beliebiges Tool aus, um die Probleme auf dem neuen Betriebssystemdatenträger zu beheben.
- Heben Sie die Einbindung des neuen Betriebssystemdatenträgers in die Problembehebungs-VM auf, und trennen Sie diesen Datenträger von der Problembehebungs-VM.
- Ändern Sie den Betriebssystemdatenträger für die betroffene VM.
Zum Ausführen dieser Schritte zur Problembehandlung muss die neueste Azure CLI installiert sein, und Sie müssen mit az login bei einem Azure-Konto angemeldet sein.
Sie können die VM-Reparaturbefehle verwenden, um die Schritte 1, 2, 3, 4, 6 und 7 zu automatisieren. Weitergehende Dokumentation und Anleitungen finden Sie unter Reparieren eines virtuellen Linux-Computers mit den Reparaturbefehlen virtueller Azure-Computer.
Wichtig
Die Skripts in diesem Artikel gelten nur für VMs, die verwaltete Datenträger verwenden.
Ersetzen Sie in den folgenden Beispielen die Parameternamen durch Ihre eigenen Werte, beispielsweise myResourceGroup
und myVM
.
Bestimmen von Problemen beim Start
Überprüfen Sie die serielle Ausgabe, um zu bestimmen, warum Ihre VM nicht ordnungsgemäß starten kann. Ein gängiges Beispiel ist ein ungültiger Eintrag in /etc/fstab
oder eine zugrunde liegende virtuelle Festplatte, die gelöscht oder verschoben wird.
Rufen Sie mit az vm boot-diagnostics get-boot-log die Startprotokolle ab. Im folgenden Beispiel wird die serielle Ausgabe der VM namens myVM
in der Ressourcengruppe namens myResourceGroup
aufgerufen:
az vm boot-diagnostics get-boot-log --resource-group myResourceGroup --name myVM
Überprüfen Sie die serielle Ausgabe, um zu bestimmen, warum die VM nicht startet. Wenn die serielle Ausgabe keine Auskunft bietet, müssen Sie möglicherweise Protokolldateien in /var/log
überprüfen, nachdem Sie die virtuelle Festplatte mit der Problembehebungs-VM verbunden haben.
Beenden des virtuellen Computers
Im folgenden Beispiel wird die VM myVM
in der Ressourcengruppe myResourceGroup
angehalten:
az vm stop --resource-group MyResourceGroup --name MyVm
Erstellen Sie eine Momentaufnahme des Betriebssystemdatenträgers der betroffenen VM.
Eine Momentaufnahme ist eine vollständige, schreibgeschützte Kopie einer VHD. Sie kann nicht an eine VM angefügt werden. Im nächsten Schritt erstellen Sie aus dieser Momentaufnahme einen Datenträger. Das folgende Beispiel erstellt eine Momentaufnahme namens mySnapshot
vom Betriebssystemdatenträger der VM mit dem Namen „myVM“.
#Get the OS disk Id
$osdiskid=(az vm show -g myResourceGroup -n myVM --query "storageProfile.osDisk.managedDisk.id" -o tsv)
#creates a snapshot of the disk
az snapshot create --resource-group myResourceGroupDisk --source "$osdiskid" --name mySnapshot
Erstellen eines Datenträgers aus der Momentaufnahme
Dieses Skript erstellt einen verwalteten Datenträger mit dem Namen myOSDisk
aus der Momentaufnahme namens mySnapshot
.
#Provide the name of your resource group
$resourceGroup="myResourceGroup"
#Provide the name of the snapshot that will be used to create Managed Disks
$snapshot="mySnapshot"
#Provide the name of the Managed Disk
$osDisk="myNewOSDisk"
#Provide the size of the disks in GB. It should be greater than the VHD file size.
$diskSize=128
#Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS.
$storageType="Premium_LRS"
#Provide the OS type
$osType="linux"
#Get the snapshot Id
$snapshotId=(az snapshot show --name $snapshot --resource-group $resourceGroup --query id -o tsv)
# Create a new Managed Disks using the snapshot Id.
az disk create --resource-group $resourceGroup --name $osDisk --sku $storageType --size-gb $diskSize --source $snapshotId
Wenn sich die Ressourcengruppe und die Quellmomentaufnahme nicht in derselben Region befinden, wird beim Ausführen von az disk create
der Fehler „Ressource wurde nicht gefunden“ angezeigt. In diesem Fall müssen Sie --location <region>
angeben, um den Datenträger in derselben Region wie die Quellmomentaufnahme zu erstellen.
Nun haben Sie eine Kopie des ursprünglichen Betriebssystemdatenträgers. Sie können diesen neuen Datenträger in eine andere Windows-VM zu Problembehandlungszwecken einbinden.
Zuordnen der neuen virtuellen Festplatte zu einer anderen VM
Verwenden Sie eine andere Problembehebungs-VM für die nächsten Schritte. Ordnen Sie den Datenträger zu dieser Problembehebungs-VM zu, um den Inhalt des Datenträgers zu durchsuchen und zu bearbeiten. Durch diesen Prozess können Sie alle Konfigurationsfehler beheben oder zusätzliche Anwendungs- oder Systemprotokolldateien überprüfen.
Mit diesem Skript wird der Datenträger myNewOSDisk
der VM MyTroubleshootVM
zugeordnet:
# Get ID of the OS disk that you just created.
$myNewOSDiskid=(az disk show -g $resourceGroup -n $osDisk --query id -o tsv)
# Attach the disk to the troubleshooting VM
az vm disk attach --disk $myNewOSDiskid --resource-group $resourceGroup --size-gb $diskSize --sku $storageType --vm-name MyTroubleshootVM
Bereitstellen des hinzugefügten Datenträgers
Notiz
In den folgenden Beispielen sind die Schritte beschrieben, die auf einer Ubuntu-VM erforderlich sind. Bei Verwendung einer anderen Linux-Distribution, z.B. Red Hat Enterprise Linux oder SUSE, sind die Speicherorte für Protokolldateien und mount
-Befehle ggf. etwas anders. Nähere Informationen zu Ihrer spezifischen Distribution für die entsprechenden Änderungen in Befehlen finden Sie in der Dokumentation.
Stellen Sie mithilfe von SSH und den entsprechenden Anmeldeinformationen eine Verbindung zu Ihrer Problembehebungs-VM her. Wenn dieses Laufwerk der erste Datenträger ist, der zu Ihrer Problembehebungs-VM hinzugefügt wurde, ist es wahrscheinlich mit
/dev/sdc
verbunden. Verwenden Siedmesg
, um hinzugefügte Datenträger anzuzeigen:dmesg | grep SCSI
Die Ausgabe sieht in etwa wie das folgende Beispiel aus:
[ 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
Im vorherigen Beispiel befindet sich der Betriebssystemdatenträger in
/dev/sda
, und der temporäre Datenträger, der für jede VM bereitgestellt ist, befindet sich in/dev/sdb
. Wenn Sie mehrere Datenträger haben, müssen Sie in/dev/sdd
,/dev/sde
usw. vorhanden sein.Erstellen Sie ein Verzeichnis, um Ihre vorhandene virtuelle Festplatte bereitzustellen. Im folgenden Beispiel wird ein Verzeichnis namens
troubleshootingdisk
erstellt:sudo mkdir /mnt/troubleshootingdisk
Wenn Sie über mehrere Partitionen auf Ihrer vorhandenen virtuellen Festplatte verfügen, stellen Sie die erforderliche Partition bereit. Das folgende Beispiel stellt die erste primäre Partition in
/dev/sdc1
bereit:sudo mount /dev/sdc1 /mnt/troubleshootingdisk
Notiz
Die bewährte Methode ist das Bereitstellen von Datenträgern auf VMs in Azure mithilfe des Universally Unique Identifiers (UUID) der virtuellen Festplatte. In diesem kurzen Szenario zur Problembehebung ist das Bereitstellen der virtuellen Festplatte mithilfe von UUID nicht erforderlich. Wenn allerdings unter normalen Bedingungen
/etc/fstab
bearbeitet wird, um virtuelle Festplatten mithilfe des Gerätenamens anstatt des UUID bereitzustellen, dann wird die VM möglicherweise nicht erfolgreich starten können.
Beheben von Problemen auf dem neuen Betriebssystemdatenträger
Nun, da die vorhandene virtuelle Festplatte bereitgestellt ist, können Sie jetzt alle Schritte zur Wartung und Problembehebung ausführen. Fahren Sie mit den folgenden Schritte fort, nachdem Sie die Probleme behoben haben.
Aufheben der Einbindung (Bereitstellung) und Trennen des neuen Betriebssystemdatenträgers
Sobald Ihre Fehler behoben sind, heben Sie die Bereitstellung auf, und trennen Sie die vorhandene virtuelle Festplatte von Ihrer Problembehebungs-VM. Sie können Ihre virtuelle Festplatte nicht mit einer anderen VM nutzen, bis die Lease freigegeben wird, die die virtuelle Festplatte zur Problembehebungs-VM hinzufügt.
Aufheben der Bereitstellung der vorhandenen virtuellen Festplatte von der SSH-Sitzung bis zu Ihrer Problembehebungs-VM. Wechseln Sie aus dem übergeordneten Verzeichnis zu Ihrem Bereitstellungspunkt:
cd /
Heben Sie die Bereitstellung der vorhandenen virtuellen Festplatte auf. Im folgenden Beispiel wird die Bereitstellung des Geräts in
/dev/sdc1
aufgehoben:sudo umount /dev/sdc1
Trennen Sie die virtuelle Festplatte von der VM. Beenden Sie die SSH-Sitzung zu Ihrer Problembehebungs-VM:
az vm disk detach -g MyResourceGroup --vm-name MyTroubleShootVm --name myNewOSDisk
Ändern des Betriebssystemdatenträgers für die betroffene VM
Sie können die Azure-Befehlszeilenschnittstelle verwenden, um die Betriebssystemdatenträger zu tauschen. Sie müssen den virtuellen Computer nicht löschen und neu erstellen.
Dieses Beispiel beendet die VM myVM
und weist den Datenträger myNewOSDisk
als neuen Betriebssystemdatenträger zu.
# Stop the affected VM
az vm stop -n myVM -g myResourceGroup
# Get ID of the OS disk that is repaired.
$myNewOSDiskid=(az disk show -g $resourceGroup -n $osDisk --query id -o tsv)
# Change the OS disk of the affected VM to "myNewOSDisk"
az vm update -g myResourceGroup -n myVM --os-disk $myNewOSDiskid
# Start the VM
az vm start -n myVM -g myResourceGroup
Nächste Schritte
Wenn Probleme beim Herstellen einer Verbindung mit Ihrer VM auftreten, finden Sie unter Problembehandlung von SSH-Verbindungen mit einer Azure-VM Hilfestellungen. Konsultieren Sie Beheben von Anwendungskonnektivitätsproblemen auf einer Linux-VM bei Problemen mit dem Zugriff auf Anwendungen, die auf Ihrer VM ausgeführt werden.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.