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 zum seriellen Port 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.

Anmerkung

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.

GNUGRUB(Abkürzung für GNU GRand Unified Bootloader, gemeinhin als bezeichnet alsGRUB) 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 den normalen Computer zugänglichSSH, Sie können jedoch über die EC2 serielle Konsole darauf zugreifen.

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 demAMI, 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 zuvor 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.

 

So booten Sie in den Notfallmodus

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

Der Systemanfrage (SysRq) -Schlüssel, der manchmal als SysRq „magisch“ bezeichnet wird, kann verwendet werden, um dem Kernel direkt einen Befehl außerhalb einer Shell zu senden, und der Kernel antwortet, unabhängig davon, was der Kernel tut. Wenn die Instance 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 Magische SysRq S-Abf-Taste in Wikipedia.

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

Um zu verwenden SysRq, wählen Sie eines der folgenden Verfahren basierend auf dem von Ihnen verwendeten Client aus.

Browser-based client
Zur Verwendung SysRq des browserbasierten Clients der seriellen Konsole
  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 auszustellen, drücken Sie die Taste auf Ihrer Tastatur, die dem erforderlichen Befehl entspricht. Um beispielsweise eine Liste von 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 auszustellen, drücken Sie die Taste auf Ihrer Tastatur, die dem erforderlichen Befehl entspricht. Um beispielsweise eine Liste von 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.

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 verwendenSAC, können Sie den Startvorgang unterbrechen und Windows im abgesicherten Modus starten.

Anmerkung

Wenn Sie die Instance aktivierenSAC, funktionieren die EC2 Dienste, die auf den Kennwortabruf angewiesen sind, auf der EC2 Amazon-Konsole nicht. Windows auf EC2 Amazon-Launch-Agents (EC2Config, EC2Launch v1 und EC2Launch v2) verlassen sich bei der Ausführung verschiedener Aufgaben auf die serielle Konsole. Diese Aufgaben werden nicht erfolgreich ausgeführt, wenn Sie für eine Instance aktivierenSAC. Weitere Information zu Windows auf EC2 Amazon-Launch-Agents erhalten Sie unterKonfigurieren Sie Ihre Amazon EC2 Windows-Instance. Wenn Sie aktivierenSAC, können Sie es später deaktivieren. Weitere Informationen finden Sie unter Deaktivieren SAC und das Boot-Menü.

Benutze SAC

Zu benutzen SAC
  1. Stellen Sie eine Verbindung mit der seriellen Konsole her.

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

    SACIn der seriellen Konsole wird ein Prompt angezeigt.
  2. Um die SAC Befehle anzuzeigen, geben Sie die Eingabetaste ein?, und drücken Sie dann die EINGABETASTE.

    Erwartete Ausgabe

    Geben Sie ein Fragezeichen SAC ein.
  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 Befehlszeilenkanal anzuzeigen ESC, drücken Sie und drücken Sie dann TAB.

    Erwartete Ausgabe

    Der Eingabeaufforderungskanal.
  5. Um Kanäle zu wechseln, drücken Sie ESC+ TAB Tab+Tab+Tab+Tab+Tab+Tab+Tab+Tab 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 Eingabeaufforderung aus verwendet werden.

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

PowerShell in der Eingabeaufforderung.

Verwenden des Boot-Menüs

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

Das Startmenü in der Eingabeaufforderung.

Befehle im Boot-Menü

ENTER

Startet den ausgewählten Eintrag des Betriebssystems.

TAB

Wechselt zum Tools-Menü.

ESC

Bricht die Instance ab und startet sie neu.

ESCgefolgt 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 SAC und das Boot-Menü

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

Verwenden Sie eine der folgenden Methoden, um das Bootmenü einer Instance zu deaktivierenSAC.

PowerShell
So deaktivieren Sie SAC das Boot-Menü auf einer Windows-Instance
  1. Stellen Sie eine Verbindung mit Ihrer Instance her und führen Sie die folgenden Schritte von einer erhöten PowerShell Befehlszeile aus.

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

    bcdedit /set '{bootmgr}' displaybootmenu no
  3. Deaktivieren Sie es anschließend, SAC indem Sie den Wert auf ändernoff.

    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 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 es dann, SAC indem Sie den Wert auf ändernoff.

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

    shutdown -r -t 0