Nicht zugängliche VM wiederherstellen


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:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff 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 Projekt
  • compute.disks.create für das Projekt
  • compute.instances.get für das Projekt
  • compute.disks.createSnapshot für Laufwerke
  • compute.instances.attachDisk auf der neuen VM
  • compute.disks.use auf dem Laufwerk
  • compute.instances.start auf der neuen und nicht zugänglichen VM
  • compute.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.

  1. (Optional) Beenden Sie die nicht zugängliche VM.
  2. Erstellen Sie einen Snapshot vom Bootlaufwerk der nicht zugänglichen VM.
  3. Erstellen Sie eine temporäre VM mit einem öffentlichen Image, das dem Betriebssystem der nicht zugänglichen VM am ähnlichsten ist.
  4. Prüfen Sie, ob Sie eine Verbindung zur temporären VM über SSH herstellen können.
  5. Fügen Sie der temporären VM ein zusätzliches Laufwerk hinzu. Gehen Sie dazu so vor:

    1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

      Zur Seite „VM-Instanzen“

    2. Klicken Sie auf den Namen der temporären VM, die Sie erstellt haben.

    3. Klicken Sie auf  Bearbeiten.

    4. Klicken Sie unter Zusätzliche Laufwerke auf  Neues Laufwerk hinzufügen und gehen Sie dann so vor:

      1. Fügen Sie den Namen des Laufwerks hinzu, z. B. my-recovery-disk.
      2. Wählen Sie als Quelltyp den Tab Snapshot aus.
      3. Wählen Sie im Drop-down-Menü Quell-Snapshot den Snapshot der Quell-VM aus, die Sie zuvor erstellt haben.
      4. Klicken Sie auf Fertig.
    5. Klicken Sie auf Speichern.

  6. Stellen Sie eine SSH-Verbindung zur temporären VM her.

  7. Führen Sie folgenden Befehl aus:

    ls -l /dev/disk/by-id/google-*

    Die Ausgabe sollte in etwa so aussehen:

      /dev/disk/by-id/google-my-vm -> ../../sda
      /dev/disk/by-id/google-my-vm-part1 -> ../../sda1
      /dev/disk/by-id/google-my-vm-part14 -> ../../sda14
      /dev/disk/by-id/google-my-vm-part15 -> ../../sda15
      /dev/disk/by-id/google-my-recovery-disk -> ../../sdb
      /dev/disk/by-id/google-my-recovery-disk-part1 -> ../../sdb1
      /dev/disk/by-id/google-my-recovery-disk-part2 -> ../../sdb2
      /dev/disk/by-id/google-my-recovery-disk-part5 -> ../../sdb5
    

    Verwenden Sie die Symlinks (/dev/disk/by-id/google-my-recovery-disk-partN), um das zugrunde liegende Gerät und die Partitionen für das neu hinzugefügte Laufwerk zu finden, z. B. /dev/sdb1.

    Der Symlink des Laufwerks ist entweder google-DISK_NAME oder, wenn Sie einen benutzerdefinierten Gerätenamen für das Laufwerk angegeben haben, google-DEVICE_NAME. Notieren Sie sich den Gerätenamen, auf den das neue Laufwerk verweist.

  8. Erstellen Sie einen Bereitstellungspunkt unter /mnt/newdisk:

    sudo mkdir /mnt/newdisk

  9. Stellen Sie die zusätzliche Laufwerkspartition für den Bereitstellungspunkt /mnt/newdisk bereit:

     sudo mount -o discard,defaults DISK_NAME /mnt/newdisk

    Ersetzen Sie DISK_NAME durch den Gerätenamen, den Sie zuvor notiert haben, z. B. /dev/sdb1.

    Wenn die Fehler Filesystem has duplicate UUID XXXXXX - can't mount, mount: /mnt/newdisk: wrong fs type, bad option oder bad superblock on /dev/sdb angezeigt werden, verwenden Sie den folgenden Befehl:

     sudo mount -o nouuid DISK_NAME /mnt/newdisk

    Das Dateisystem der nicht zugänglichen VM wird jetzt unter /mnt/newdisk 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:

  1. Heben Sie die Bereitstellung des zusätzlichen Laufwerks unter /mnt/newdisk in der temporären VM auf:

     cd ~
     sudo umount /mnt/newdisk

  2. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

    1. Wählen Sie die temporäre VM aus, die Sie erstellt haben.

    2. Klicken Sie auf Bearbeiten.

    3. 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.

    4. Klicken Sie auf Speichern.

  3. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zur Seite „VM-Instanzen“

    1. Wenn die nicht zugängliche VM noch ausgeführt wird, beenden Sie die VM.

    2. Klicken Sie auf den Namen der VM, die Sie gerade beendet haben, und dann auf  Bearbeiten.

    3. Klicken Sie unter Bootlaufwerk auf Bootlaufwerk trennen, um das vorhandene Bootlaufwerk von der nicht zugänglichen VM zu trennen.

    4. Klicken Sie als Nächstes auf BOOTLAUFWERK KONFIGURIEREN, um das Laufwerk anzuhängen, das Sie zuvor auf dieser Seite unter VM wiederherstellen erstellt und repariert haben.

      1. Klicken Sie im Abschnitt Bootlaufwerk auf den Tab Vorhandene Laufwerke.
      2. Wählen Sie in der Drop-down-Liste das Laufwerk aus, das Sie im vorherigen Abschnitt erstellt haben, z. B. my-recovery-disk.
      3. Klicken Sie auf Auswählen und anschließend auf Speichern.
    5. Starten Sie die VM.

  4. Nun sollten Sie eine Verbindung zur VM über SSH herstellen können.