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 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.
- Erstellen Sie eine temporäre VM mit einem öffentlichen Image, das dem Betriebssystem der nicht zugänglichen VM am ähnlichsten ist.
- Prüfen Sie, ob Sie eine Verbindung zur temporären VM über SSH herstellen können.
Fügen Sie der temporären VM ein zusätzliches Laufwerk hinzu. 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.
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.
Erstellen Sie einen Bereitstellungspunkt unter
/mnt/newdisk
:sudo mkdir /mnt/newdisk
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
oderbad 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:
Heben Sie die Bereitstellung des zusätzlichen Laufwerks unter
/mnt/newdisk
in der temporären VM auf:cd ~ sudo umount /mnt/newdisk
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.