Direkt zum Inhalt

Wie verwende ich EC2Rescue für Linux, um Probleme auf Betriebssystemebene zu beheben?

Lesedauer: 4 Minute
0

Ich kann keine Verbindung zu meiner Linux-Instance in der Amazon Elastic Compute Cloud (Amazon EC2) herstellen oder ich habe Startprobleme. Ich möchte EC2Rescue verwenden, um Probleme mit dem Betriebssystem (OS) zu diagnostizieren und zu beheben.

Kurzbeschreibung

Du kannst EC2Rescue für Linux verwenden, um die folgenden Aktionen durchzuführen:

  • Erfasse Berichte zur Systemnutzung wie vmstat, iostat und mpstat.
  • Erfassen von Protokollen und Details wie syslog, dmesg, Anwendungsfehlerprotokolle und AWS Systems Manager-Protokolle.
  • Erkenne Systemprobleme wie asymmetrisches Routing oder doppelte Bezeichnungen von Root-Geräten.
  • Behebe automatisch Systemprobleme wie OpenSSH-Dateiberechtigungen oder Probleme bei der Aktivierung von Kernelparametern.

Hinweis: Wenn du Zugang zur seriellen EC2-Konsole hast, dann kannst du die Konsole zur Fehlerbehebung bei unterstützten Nitro-basierten Instance-Typen verwenden. Weitere Informationen findest du unter Verbindung mit der seriellen EC2-Konsole herstellen. Du kannst auch das AWSSupport-ExecuteEC2Rescue-Runbook verwenden, um Probleme, die Verbindungsprobleme verursachen, automatisch zu identifizieren und zu beheben. Weitere Informationen findest du unter Ausführen des EC2Rescue-Tools auf nicht erreichbaren Instances.

Lösung

Voraussetzungen: Stelle sicher, dass das System die Betriebssystem- und Softwareanforderungen für EC2Rescue erfüllt.

EC2Rescue verwenden, um Verbindungsprobleme zu beheben

Führe die folgenden Schritte aus:

  1. Verwende das Amazon Machine Image (AMI) der Instance mit Problemen, um eine Rettungs-Instance in der Virtual Private Cloud (VPC) zu starten.
    Hinweis: Stelle sicher, dass sich die neue Instance in derselben Availability Zone befindet wie die Instance mit Problemen. Du kannst auch eine vorhandene Instanz verwenden, die sich in derselben Availability Zone wie die Instance mit Problemen befindet.

  2. Trenne das Amazon Elastic Block Store (Amazon EBS)-Root-Volume von der Instance mit Problemen. Notiere dir den Gerätenamen, z. B. /dev/xvda und /dev/sda1.

  3. Hänge das Amazon EBS-Volume als sekundäres Gerät an die Rettungs-Instance an, z. B. /dev/sdf.
    Hinweis: Wenn das Root-Gerät der Instance ein Volume ist, das von Amazon EBS unterstützt wird, stoppe die Instance und starte sie neu.

  4. Verwende SSH, um eine Verbindung zu der Rettungs-Instance herzustellen.

  5. Führe als Root-Benutzer die folgenden Befehle aus, um den richtigen Gerätenamen zu ermitteln:

    $ sudo -i
    # lsblk
    # rescuedev=/dev/xvdf1

    Hinweis: Wenn du lsblk ausführst, notiere dir den Gerätenamen in der Ausgabe. Ersetze xvsf1 durch den Gerätenamen des Geräts, das an die Rettungs-Instance angeschlossen ist.

  6. Führe die folgenden Befehle aus, um einen vorhandenen temporären Bereitstellungspunkt auszuwählen, der noch nicht verwendet wird:

    # rescuemnt=/mnt
    # mkdir -p $rescuemnt

    Hinweis: Es hat sich bewährt, **/mnt ** als Bereitstellungspunkt zu verwenden.

  7. Führe den folgenden Befehl aus, um das Root-Dateisystem vom angehängten Volume aus zu mounten:

    # mount $rescuedev $rescuemnt

    Wenn die Volume-Bereitstellung fehlschlägt, führe den folgenden Befehl aus:

    dmesg | tail

    Wenn die Protokolle einen universell eindeutige Kennung (UUID) enthalten, der in Konflikt steht, führe den vorherigen Befehl mit der Option**-o nouuid** erneut aus. Beispiel:

    mount -o nouuid $rescuedev $rescuemnt
  8. Führe den folgenden Befehl aus, um spezielle Dateisysteme einzuhängen und das Root-Verzeichnis in das neue Dateisystem zu ändern:

    # for i in proc sys dev run; do mount --bind /$i $rescuemnt/$i ; done
    # chroot $rescuemnt
  9. Lade das EC2Rescue-Tool für Linux herunter und installiere es auf einem Offline-Root-Volume für Linux.

  10. Führe EC2Rescue für Linux ohne Optionen aus, um alle Module auszuführen.

  11. Führe auf der Grundlage der Ergebnisse den folgenden Befehl aus, um die Wiederherstellung für die unterstützten Module zu aktivieren:

# ./ec2rl run --remediate
  1. Um chroot zu beenden und das sekundäre Gerät aufzuheben, führe den folgenden Befehl aus:
# exit
# umount $rescuemnt/{proc,sys,dev,run,}

Hinweis: Wenn der Unmount-Vorgang fehlschlägt, stoppe die Rettungs-Instance oder starte sie neu, bevor du das sekundäre Gerät aufzuheben. Trenne das sekundäre Volume von der Rettungs-EC2-Instance. Hänge das sekundäre Volume /dev/sdf als Root-Volume /dev/xvda oder /dev/sda1 an die Original-Instance an. Starte die Instance und überprüfe dann, ob die Instance wie erwartet funktioniert.

Eine andere Methode zur Problembehandlung verwenden

Gehe wie folgt vor, um auf weitere Probleme auf Betriebssystemebene zu beheben:

Ähnliche Informationen

Wiederherstellen von beeinträchtigten Instances mithilfe von EC2Rescue und Amazon EC2 Systems Manager Automation

Probleme mit Amazon EC2-Windows-Instances beheben