Beheben Sie Probleme mit Ihrer EC2 Amazon-Instance mithilfe der EC2 seriellen Konsole - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beheben Sie Probleme mit Ihrer EC2 Amazon-Instance mithilfe der EC2 seriellen Konsole

Mithilfe der EC2 seriellen Konsole können Sie Boot-, Netzwerkkonfigurations- und andere Probleme beheben, indem Sie eine Verbindung zur seriellen Schnittstelle Ihrer Instance herstellen.

Verwenden Sie die Anleitung für das Betriebssystem Ihrer Instance und für das Tool, das Sie auf Ihrer Instance konfiguriert haben.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie die Voraussetzungen erfüllt haben, einschließlich der Konfiguration des von Ihnen ausgewählten Tools zur Fehlerbehebung.

(Linux-Instances) GRUB verwenden, um Fehler in Ihrer Instance zu beheben

GNU GRUB (kurz für GNU GRand Unified Bootloader, allgemein als GRUB bezeichnet) ist der Standard-Bootloader für die meisten Linux-Betriebssysteme. Im GRUB-Menü können Sie auswählen, in welchen Kernel Sie booten möchten oder Menüeinträge ändern, um den Bootvorgang des Kernels zu ändern. Dies kann bei der Problembehandlung einer fehlerhaften Instance nützlich sein.

Das GRUB-Menü wird während des Startvorgangs angezeigt. Das Menü ist nicht über normales SSH zugänglich, aber Sie können es über die serielle Konsole aufrufen. EC2

Sie können in den Einzelbenutzermodus oder in den Notfallmodus starten. Der Einzelbenutzermodus bootet den Kernel auf ein niedrigeres Runlevel. Zum Beispiel könnte es das Dateisystem einhängen, aber das Netzwerk nicht aktivieren, was Ihnen die Möglichkeit gibt, die Wartung durchzuführen, die zum Reparieren der Instance erforderlich ist. Der Notfallmodus ähnelt dem Einzelbenutzermodus, mit der Ausnahme, dass der Kernel auf dem niedrigsten möglichen Runlevel läuft.

So booten Sie in den Einzelbenutzermodus
  1. Stellen Sie eine Verbindung mit der seriellen Konsole der Instance her.

  2. Starten Sie die Instance mit dem folgenden Befehl neu.

    [ec2-user ~]$ sudo reboot
  3. Wenn während des Neustarts das GRUB-Menü angezeigt wird, drücken Sie eine beliebige Taste, um den Bootvorgang zu beenden.

  4. Verwenden Sie im GRUB-Menü die Pfeiltasten, um den zu bootenden Kernel auszuwählen, und drücken Sie e auf Ihrer Tastatur.

  5. Verwenden Sie die Pfeiltasten, um den Cursor in der Zeile zu finden, die den Kernel enthält. Die Zeile beginnt mit linux oder linux16, abhängig von dem AMI, das zum Starten der Instance verwendet wurde. Für Ubuntu beginnen zwei Zeilen mit linux, die beide im nächsten Schritt geändert werden müssen.

  6. Am Ende der Zeile fügen Sie das Wort single hinzu.

    Im Folgenden finden Sie ein Beispiel für Amazon Linux 2.

    linux /boot/vmlinuz-4.14.193-149.317.amzn2.aarch64 root=UUID=d33f9c9a-\ dadd-4499-938d-ebbf42c3e499 ro console=tty0 console=ttyS0,115200n8 net.ifname\ s=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.she\ ll=0 single
  7. Drücken Sie Strg+X, um in den Einzelbenutzermodus zu starten.

  8. Geben Sie an der login-Eingabeaufforderung den Benutzernamen des passwortbasierten Benutzers ein, den Sie vorher eingerichtet haben, und drücken Sie dann die Eingabetaste.

  9. Geben Sie an der Password-Eingabeaufforderung das Passwort ein und drücken Sie dann die Eingabetaste.

 

In den Notfallmodus starten

Gehen Sie genauso vor wie im Einzelbenutzermodus, fügen Sie jedoch in Schritt 6 das Wort emergency anstelle von single hinzu.

(Linux-Instanzen) Verwenden Sie diese Option SysRq , um Fehler in Ihrer Instanz zu beheben

Der Schlüssel System Request (SysRq), der manchmal auch als SysRq „Magic“ bezeichnet wird, kann verwendet werden, um dem Kernel direkt außerhalb einer Shell einen Befehl zu senden, und der Kernel wird antworten, unabhängig davon, was der Kernel tut. Wenn die Instanz beispielsweise nicht mehr reagiert, können Sie den SysRq Schlüssel verwenden, um dem Kernel mitzuteilen, dass er abstürzen oder neu starten soll. Weitere Informationen finden Sie unter Magic SysRq Key in Wikipedia.

Sie können SysRq Befehle im browserbasierten EC2 Serial Console-Client oder in einem SSH-Client verwenden. Der Befehl zum Senden einer Unterbrechungsanfrage ist für jeden Client unterschiedlich.

Wählen Sie zur Verwendung SysRq je nach verwendetem Client eines der folgenden Verfahren aus.

Browser-based client
Zur Verwendung SysRq in der seriellen Konsole (browserbasierter Client)
  1. Stellen Sie eine Verbindung mit der seriellen Konsole der Instance her.

  2. Um eine Unterbrechungsanfrage zu senden, drücken Sie CTRL+0 (Null). Wenn Ihre Tastatur dies unterstützt, können Sie auch eine Unterbrechungsanfrage mit der Pause- oder Break-Taste senden.

    [ec2-user ~]$ CTRL+0
  3. Um einen SysRq Befehl auszuführen, drücken Sie die Taste auf Ihrer Tastatur, die dem gewünschten Befehl entspricht. Um beispielsweise eine Liste mit SysRq Befehlen anzuzeigen, drücken Sieh.

    [ec2-user ~]$ h

    Der h-Befehl gibt etwas Ähnliches wie das Folgende aus.

    [ 1169.389495] sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems (j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r ) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) dump-ftrace-buffer(z)
SSH client
Zur Verwendung SysRq in einem SSH-Client
  1. Stellen Sie eine Verbindung mit der seriellen Konsole der Instance her.

  2. Um eine Unterbrechungsanfrage zu senden, drücken Sie ~B (Tilde, gefolgt von Großbuchstaben B).

    [ec2-user ~]$ ~B
  3. Um einen SysRq Befehl auszuführen, drücken Sie die Taste auf Ihrer Tastatur, die dem gewünschten Befehl entspricht. Um beispielsweise eine Liste mit SysRq Befehlen anzuzeigen, drücken Sieh.

    [ec2-user ~]$ h

    Der h-Befehl gibt etwas Ähnliches wie das Folgende aus.

    [ 1169.389495] sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems (j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r ) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) dump-ftrace-buffer(z)
    Anmerkung

    Der Befehl, den Sie zum Senden einer Unterbrechungsanfrage verwenden, kann je nach verwendetem SSH-Client unterschiedlich sein.

(Windows-Instances) SAC zur Fehlerbehebung Ihrer Instance verwenden

Die Special-Admin-Console(SAC)-Funktion von Windows bietet eine Möglichkeit zur Fehlerbehebung einer Windows-Instance. Wenn Sie eine Verbindung zur seriellen Konsole der Instance herstellen und SAC verwenden, können Sie den Startvorgang unterbrechen und Windows im abgesicherten Modus starten.

Anmerkung

Wenn Sie SAC auf einer Instance aktivieren, funktionieren die EC2 Dienste, die auf den Kennwortabruf angewiesen sind, nicht von der EC2 Amazon-Konsole aus. Die EC2 Startagenten von Windows auf Amazon (EC2Config, EC2 Launch v1 und EC2 Launch v2) benötigen die serielle Konsole, um verschiedene Aufgaben auszuführen. Diese Aufgaben werden nicht erfolgreich ausgeführt, wenn Sie SAC für eine Instance aktivieren. Weitere Informationen zu Windows on Amazon EC2 Launch Agents finden Sie unterKonfigurieren Sie Ihre Amazon EC2 Windows-Instance. Wenn Sie SAC aktivieren, können Sie es später deaktivieren. Weitere Informationen finden Sie unter Deaktivieren von SAC und vom Boot-Menü.

Verwenden von SAC

So verwenden Sie SAC
  1. Stellen Sie eine Verbindung mit der seriellen Konsole her.

    Wenn SAC auf der Instance aktiviert ist, zeigt die serielle Konsole die SAC>-Anfrage an.

    In der seriellen Konsole wird ein SAC-Prompt angezeigt.
  2. Geben Sie zum Anzeigen der SAC-Befehle „?“ ein und drücken Sie dann die Eingabetaste.

    Erwartete Ausgabe

    Geben Sie ein Fragezeichen ein, um die SAC-Befehle anzuzeigen.
  3. Um einen Eingabeaufforderungskanal (z. B. cmd0001 oder cmd0002) zu erstellen, geben Sie cmd ein und drücken Sie dann die Eingabetaste.

  4. Um den Eingabeaufforderungskanal anzuzeigen, drücken Sie ESC und drücken Sie dann auf TAB.

    Erwartete Ausgabe

    Der Eingabeaufforderungskanal.
  5. Um Kanäle zu wechseln, drücken Sie ESC+Tab+Kanalnummer gleichzeitig. Um zum Beispiel zum cmd0002-Kanal (falls er erstellt wurde) zu wechseln, drücken Sie ESC+TAB+2.

  6. Geben Sie die für den Eingabeaufforderungskanal erforderlichen Anmeldeinformationen ein.

    Die Eingabeaufforderung, die Anmeldeinformationen erfordert.

    Die Eingabeaufforderung ist dieselbe voll funktionsfähige Command Shell, die Sie auf einem Desktop erhalten, mit der Ausnahme, dass sie das Lesen von bereits ausgegebenen Zeichen nicht zulässt.

    Eine Befehls-Shell mit vollem Funktionsumfang.

PowerShell kann auch von der Befehlszeile aus verwendet werden.

Beachten Sie, dass Sie möglicherweise die Einstellung Fortschritt auf den stillen Modus festlegen müssen.

PowerShell innerhalb der Befehlszeile.

Verwenden des Boot-Menüs

Wenn für die Instance das Boot-Menü aktiviert ist und nach der Verbindung über SSH neu gestartet wird, sollten Sie das Startmenü wie folgt sehen.

Das Startmenü in der Eingabeaufforderung.

Befehle im Boot-Menü

EINGEBEN

Startet den ausgewählten Eintrag des Betriebssystems.

Tabulatortaste

Wechselt zum Tools-Menü.

ESC

Bricht die Instance ab und startet sie neu.

ESC, gefolgt von 8

Entspricht dem Drücken von F8. Zeigt erweiterte Optionen für das ausgewählte Element an.

ESC-Taste + linke Pfeiltaste

Geht zurück zum anfänglichen Boot-Menü.

Anmerkung

Die ESC-Taste allein bringt Sie nicht zurück zum Hauptmenü, da Windows darauf wartet, zu sehen, ob eine Escapesequenz läuft.

Erweiterte Startoptionen.

Deaktivieren von SAC und vom Boot-Menü

Wenn Sie SAC und das Boot-Menü aktivieren, können Sie diese Funktionen später deaktivieren.

Verwenden Sie eine der folgenden Methoden, um SAC und das Boot-Menü einer Instance zu deaktivieren.

PowerShell
So deaktivieren Sie SAC und das Boot-Menü auf einer Windows-Instance
  1. Connect zu Ihrer Instance her und führen Sie die folgenden Schritte von einer PowerShell Befehlszeile mit erhöhten Rechten aus.

  2. Deaktivieren Sie zuerst das Boot-Menü, indem Sie den Wert in no ändern.

    bcdedit /set '{bootmgr}' displaybootmenu no
  3. Deaktivieren Sie dann SAC, indem Sie den Wert auf off setzen.

    bcdedit /ems '{current}' off
  4. Wenden Sie die aktualisierte Konfiguration an, indem Sie die Instance neu starten.

    shutdown -r -t 0
Command prompt
So deaktivieren Sie SAC und das Boot-Menü auf einer Windows-Instance
  1. Stellen Sie eine Verbindung mit Ihrer Instance her und führen Sie die folgenden Schritte an der Eingabeaufforderung aus.

  2. Deaktivieren Sie zuerst das Boot-Menü, indem Sie den Wert in no ändern.

    bcdedit /set {bootmgr} displaybootmenu no
  3. Deaktivieren Sie dann SAC, indem Sie den Wert auf off setzen.

    bcdedit /ems {current} off
  4. Wenden Sie die aktualisierte Konfiguration an, indem Sie die Instance neu starten.

    shutdown -r -t 0