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 Instanz herstellen.

Folgen Sie den Anweisungen 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, allgemein bezeichnet alsGRUB) ist der Standard-Bootloader für die meisten Linux-Betriebssysteme. Im GRUB Menü können Sie auswählen, in welchem Kernel gebootet werden soll, oder Menüeinträge ändern, um zu ändern, wie der Kernel gestartet wird. Dies kann bei der Problembehandlung einer fehlerhaften Instance nützlich sein.

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

Sie können in den Einzelbenutzermodus oder 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. Drücken Sie während des Neustarts, wenn das GRUB Menü angezeigt wird, eine beliebige Taste, um den Startvorgang zu beenden.

  4. Wählen Sie im GRUB Menü mit den Pfeiltasten den Kernel aus, in den Sie booten möchten, 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 entweder mit linux oder, linux16 je nachdemAMI, mit welchem die Instance gestartet 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 kennwortbasierten 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.

 

Um in den Notfallmodus zu starten

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

Der Schlüssel System Request (SysRq), der manchmal auch als SysRq „Magic“ bezeichnet wird, kann verwendet werden, um außerhalb einer Shell direkt einen Befehl an den Kernel zu senden, und der Kernel reagiert darauf, 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 Client von EC2 Serial Console 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 Pausenanfrage verwenden, kann je nach verwendetem SSH Client unterschiedlich sein.

Die Funktion Special Admin Console (SAC) von Windows bietet eine Möglichkeit, Probleme mit einer Windows-Instanz zu beheben. Indem Sie eine Verbindung zur seriellen Konsole der Instanz herstellen und diese verwendenSAC, 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, 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 sie SAC auf einer Instance aktivieren. Weitere Informationen zu Windows on Amazon EC2 Launch Agents finden Sie unterKonfigurieren Sie Ihre Amazon EC2 Windows-Instance. Wenn Sie es aktivierenSAC, können Sie es später deaktivieren. Weitere Informationen finden Sie unter Deaktivieren SAC und das Startmenü.

Benutze SAC

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

    Wenn auf der Instanz aktiviert SAC ist, zeigt die serielle Konsole die SAC> Aufforderung an.

    SACDie Eingabeaufforderung wird in der seriellen Konsole 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 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 Befehlszeilenkanal anzuzeigen ESC, drücken Sie und drücken Sie dann TAB.

    Erwartete Ausgabe

    Der Eingabeaufforderungskanal.
  5. Um zwischen den Kanälen zu wechseln, drücken Sie TABgleichzeitig ESC + +Kanalnummer. Um beispielsweise zum cmd0002 Kanal zu wechseln (falls er erstellt wurde), 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 Instanz das Startmenü aktiviert ist und sie nach dem Herstellen der Verbindung über neu gestartet wirdSSH, sollte das Startmenü wie folgt angezeigt werden.

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.

ESCTaste + Linkspfeil

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

Anmerkung

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

Erweiterte Startoptionen.

Deaktivieren SAC und das Startmenü

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

Verwenden Sie eine der folgenden Methoden, um das Startmenü auf einer Instanz zu deaktivierenSAC.

PowerShell
Um das Startmenü auf einer Windows-Instanz zu deaktivieren SAC
  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 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
Um das Startmenü auf einer Windows-Instanz zu deaktivieren SAC
  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