Wenn Ihre Linux-VM aus irgendeinem Grund nicht zugänglich ist, können Sie sie möglicherweise mit den folgenden Schritten wiederherstellen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die benötigten Berechtigungen zum Wiederherstellen einer VM zu erhalten:
-
Compute-Instanzadministrator (Version 1) (
roles/compute.instanceAdmin.v1
) - VMs, die ein Dienstkonto verwenden:
Dienstkonto-Nutzer (
roles/iam.serviceAccountUser
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Wiederherstellen einer VM erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind für das Wiederherstellen einer VM erforderlich:
compute.instances.create
für das Projektcompute.disks.create
für das Projektcompute.instances.get
für das Projektcompute.disks.createSnapshot
für Laufwerkecompute.instances.attachDisk
auf der neuen VMcompute.disks.use
auf dem Laufwerkcompute.instances.start
auf der neuen und nicht zugänglichen VMcompute.instances.stop
auf der neuen und nicht zugänglichen VM
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
VM wiederherstellen
Wenn Sie keine Verbindung zu Ihrer VM herstellen können oder Ihr Bootlaufwerk voll ist, müssen Sie eine temporäre VM erstellen, um die nicht zugängliche VM wiederherzustellen.
- (Optional) Beenden Sie die nicht zugängliche VM.
- Erstellen Sie einen Snapshot vom Bootlaufwerk der nicht zugänglichen VM. Wenn das Stammdateisystem auf mehrere Laufwerke verteilt ist, müssen Sie für jedes Laufwerk einen Snapshot erstellen.
- Erstellen Sie eine temporäre VM mit einem öffentlichen Image, das dem Betriebssystem der nicht zugänglichen VM am ähnlichsten ist. In einigen Fällen können Sie aufgrund einer Richtlinie für vertrauenswürdige Images keine Bootlaufwerke aus öffentlichen Images erstellen. In solchen Fällen müssen Sie einen Administrator bitten, diese Einschränkung vorübergehend aufzuheben, bevor Sie eine Rettungs-VM erstellen können. Weitere Informationen finden Sie unter Einschränkungen für den Image-Zugriff festlegen.
Erstellen Sie für jeden der zuvor erstellten Snapshots der Bootlaufwerke der nicht zugänglichen VM ein neues Laufwerk aus dem Snapshot und hängen Sie es an die Rettungs-VM an. Gehen Sie dazu so vor:
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie auf den Namen der temporären VM, die Sie erstellt haben.
Klicken Sie auf
Bearbeiten.Klicken Sie unter Zusätzliche Laufwerke auf
Neues Laufwerk hinzufügen und gehen Sie dann so vor:- Fügen Sie den Namen des Laufwerks hinzu, z. B. my-recovery-disk.
- Wählen Sie als Quelltyp den Tab Snapshot aus.
- Wählen Sie im Drop-down-Menü Quell-Snapshot den Snapshot der Quell-VM aus, die Sie zuvor erstellt haben.
- Klicken Sie auf Fertig.
Klicken Sie auf Speichern.
Ermitteln Sie den Namen jedes Laufwerks, das Sie zuvor an die VM angehängt haben, indem Sie den folgenden Befehl ausführen:
lsblk -d -o NAME,SERIAL
Die Ausgabe sieht in etwa so aus:
NAME SERIAL sda rescue-vm sdb my-recovery-disk
In diesem Beispiel ist
rescue-vm
das Bootlaufwerk der Rettungs-VM undmy-recovery-disk
das Bootlaufwerk aus dem Snapshot der nicht zugänglichen VM. Notieren Sie sich dieNAME
der VM, auf die Sie nicht zugreifen können, für den nächsten Schritt.Führen Sie für jedes der Laufwerke, die Sie zuvor an die VM angeschlossen haben, die folgenden Schritte aus:
Ermitteln Sie das Dateisystem jeder Partition mit dem folgenden Befehl:
fdisk -l /dev/NAME -o Device,Size,Type
Ersetzen Sie
NAME
durch den Namen des Bootlaufwerks der nicht zugänglichen VM aus dem vorherigen Schritt. In diesem Beispiel wäre dassdb
.Die Ausgabe sieht in etwa so aus:
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: PersistentDisk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: B31430F1-F041-4555-96B9-B2F43DC057AD Device Size Type /dev/sdb1 2M BIOS boot /dev/sdb2 20M EFI System /dev/sdb3 10G Linux filesystem
In der Spalte
Type
wird das Dateisystem jeder Partition aufgeführt. Wenn der Dateisystemtyp für eine Partition fehlt, führen Sie den folgenden Befehl aus:file -sL /dev/PARTITION_NAME
Ersetzen Sie
NAME
durch den Namen der Partition.Die Ausgabe unterscheidet sich je nach Dateisystemtyp:
Kein Dateisystem: Wenn in der Ausgabe nur
data
angezeigt wird, enthält die Partition kein Dateisystem. Beispielausgabe:/dev/sdb1: data
EFI-Dateisystem: Wenn in der Ausgabe ein DOS/MBR-Bootsektor beschrieben wird, hat die Partition ein EFI-Dateisystem. Beispielausgabe:
dev/sdb2: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 40960 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 40, sectors/ track 32, heads 64, serial number 0xf2af2664, label: "EFI ", FAT (16 bit)
Linux-Dateisystem: Wenn die Ausgabe Dateisystemdaten beschreibt, ist die Partition ein Linux-Dateisystem. Beispielausgabe:
/dev/sdb3: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
Notieren Sie sich den Partitionsnamen des Linux-Dateisystems.
Erstellen Sie einen Bereitstellungspunkt unter
/rescue
:sudo mkdir /rescue
Stellen Sie die Linux-Dateisystempartition unter
/rescue
bereit:sudo mount PARTITION_NAME /rescue
Ersetzen Sie PARTITION_NAME durch den Namen des zuvor notierten Linux-Dateisystems.
Wenn Sie das Stammverzeichnis des Dateisystems mit dem Befehl
chroot
ändern möchten, müssen Sie zusätzlich das virtuelle Dateisystem und die Geräte bereitstellen. Führen Sie dazu die folgenden Befehle aus:sudo mount -t proc /proc /rescue/proc sudo mount -t sysfs /sys /rescue/sys sudo mount -o bind /dev /rescue/dev sudo mount -o bind /dev/pts /rescue/dev/pts sudo mount -o bind /run /rescue/run
Das Dateisystem des nicht zugänglichen Bootlaufwerks wird jetzt unter
/rescue
bereitgestellt. Sie können durch das Dateisystem navigieren, Konfigurationsdateien ändern, Probleme beheben oder die Daten abrufen.
Änderungen rückgängig machen und die nicht zugängliche VM neu starten
Nachdem das Problem behoben wurde oder die Daten abgerufen wurden, müssen Sie die eigentliche VM wiederherstellen. Führen Sie die folgenden Schritte aus, um die ursprüngliche VM wiederherzustellen:
Heben Sie die Bereitstellung des zusätzlichen Laufwerks unter
/rescue
in der temporären VM auf:cd ~ sudo umount /rescue
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wählen Sie die temporäre VM aus, die Sie erstellt haben.
Klicken Sie auf
Bearbeiten.Klicken Sie unter Zusätzliche Laufwerke für das in den vorherigen Schritten erstellte Laufwerk auf
, um das zusätzliche Laufwerk von der temporären VM zu trennen.Klicken Sie auf Speichern.
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wenn die nicht zugängliche VM noch ausgeführt wird, beenden Sie die VM.
Klicken Sie auf den Namen der VM, die Sie gerade beendet haben, und dann auf
Bearbeiten.Klicken Sie unter Bootlaufwerk auf
Bootlaufwerk trennen, um das vorhandene Bootlaufwerk von der nicht zugänglichen VM zu trennen.Klicken Sie als Nächstes auf VM wiederherstellen erstellt und repariert haben.
BOOTLAUFWERK KONFIGURIEREN, um das Laufwerk anzuhängen, das Sie zuvor auf dieser Seite unter- Klicken Sie im Abschnitt Bootlaufwerk auf den Tab Vorhandene Laufwerke.
- Wählen Sie in der Drop-down-Liste das Laufwerk aus, das Sie im vorherigen Abschnitt erstellt haben, z. B.
my-recovery-disk
. - Klicken Sie auf Auswählen und anschließend auf Speichern.
Nun sollten Sie eine Verbindung zur VM über SSH herstellen können.