Den Pi ohne SSH oder Monitor sicher herunterfahren?

24

Mein Pi reagiert derzeit nicht auf SSH, und der einzige HDMI-Monitor, den ich habe, ist ein großer Fernseher, der mehrere Meter entfernt ist. Ich habe schlechte Dinge über das Herausziehen des Netzsteckers gehört, aber habe ich eine andere Option?

Vielleicht könnte ich eine Tastatur anschließen und über Befehle raten?

vpzomtrrfrt
quelle
3
Im Moment funktioniert es nicht, aber Sie können Ihren GPIO-Pins eine Schaltfläche hinzufügen, um sie in Zukunft ordnungsgemäß herunterzufahren
Rizzle Light
Als Datenpunkt: Seit einigen Jahren benutze ich RPis für verschiedene Aufgaben an batteriebetriebenen mobilen Robotern. Diese bekommen oft und ohne Vorwarnung einen Stromausfall. Ich habe noch kein Problem mit einer der Pis / SD-Karten (abgesehen davon, dass sich die SD-Verbindung durch die ständigen Vibrationen und das Eindringen in die Wand löst).
Mike Ounsworth
Sie können den HDMI-Monitor nicht vorübergehend über ein paar Meter bewegen und dann wieder aufstellen, wenn Sie fertig sind?
jpmc26
@ jpmc26 Es ist eine Treppe runter und es ist ein ziemlich großer Fernseher.
Vpzomtrrfrt

Antworten:

24

Obwohl dies als letzter Ausweg angesehen werden sollte, da es das Risiko einer Beschädigung des Dateisystems erhöht, ist das Herausziehen des Kabels normalerweise in Ordnung, wenn die grüne ACT-Anzeige nicht intensiv blinkt .

Standardmäßig zeigt die ACT-LED die E / A-Aktivität auf der SD-Karte an. Wenn es ausgeschaltet ist, befindet sich das System höchstwahrscheinlich im Leerlauf. Dies ist nicht unbedingt der Fall, aber das Beenden eines Systems, das mit CPU-intensiven Aktivitäten (und nicht mit E / A) beschäftigt ist, ist von Natur aus kein Problem. Das Betriebssystem speichert die Dateisysteminformationen im Arbeitsspeicher zwischen, was bedeutet, dass sie möglicherweise nicht mit dem tatsächlichen Speicher auf der SD-Karte synchronisiert sind. Dies sollte jedoch mindestens alle paar Sekunden behoben werden (Sie können dieses Muster unter Umständen aus dem ACT ableiten LED).

Wenn es nach 5 bis 10 Sekunden im Leerlauf angezeigt wird und Sie keine andere Wahl haben, ziehen Sie den Netzstecker. Auch dies garantiert nichts und es gibt unglückliche Szenarien, in denen das System blockiert wird und die Synchronisierung des Dateisystems nicht ordnungsgemäß erfolgt, aber in den meisten Fällen sollten Sie in Ordnung sein.

Ich musste wahrscheinlich mehr als hundert Mal an der Kordel ziehen (oder hatte einen Stromausfall) und kann mich nicht erinnern, jemals deswegen Trauer gehabt zu haben. Manchmal stecke ich die Karte in einen anderen Computer und starte sie e2fsck -fim Root-Dateisystem, was sich lohnt. Das Betriebssystem überprüft das Dateisystem beim Booten automatisch, aber es ist möglich, dass diese Überprüfung fehlschlägt (oder nicht korrekt durchgeführt wird) und unbemerkt bleibt.

Goldlöckchen
quelle
7
Die /proc/sys/vm/dirty_writeback_centisecsWartezeit von 5 bis 10 Sekunden ist darauf zurückzuführen, dass die Standardeinstellung von Linux 500 Centisekunden (5 Sekunden) beträgt. Wenn also in Linux ungeschriebene Daten in E / A-Puffern gespeichert sind, werden diese nach 5 Sekunden auf die Festplatte geschrieben, es sei denn, Sie haben sie geändert. Theoretisch sollte ein Journaling-FS vor Beschädigung des gesamten Dateisystems geschützt sein, auch wenn Sie sich während eines Schreibvorgangs ausschalten. Wenn Sie jedoch darauf warten, dass es inaktiv ist, haben Sie eine viel bessere Chance, die zuletzt geänderten Dateien nicht zu beschädigen. (Welches Journaling schützt nur mit ext3 / ext4-Daten = Journal, was nicht die Standardeinstellung ist)
Peter Cordes
30

Magic SysRq Key

Dies sollte Ihnen den Einstieg erleichtern.

Der magische SysRq-Schlüssel ist eine vom Linux-Kernel verstandene Tastenkombination, mit der der Benutzer unabhängig vom Systemstatus verschiedene Befehle auf niedriger Ebene ausführen kann. Es wird häufig verwendet, um ein Problem zu beheben oder einen Computer neu zu starten, ohne das Dateisystem zu beschädigen . Der Effekt ähnelt dem der Hardware-Reset-Taste (oder des Netzschalters) des Computers, bietet jedoch viel mehr Optionen und viel mehr Kontrolle.

Sie können eine Tastatur anschließen und diese Informationen blind eingeben (ohne Monitor).

Keine Beschädigung des Dateisystems, keine zusätzliche Hardware erforderlich.


GPIO-Taste

Wie Rizzle Light vorschlug, könnten Sie eine Art Taste nehmen und sie mit den GPIO-Pins verbinden und ein wenig Programmierzauber anwenden, um durch Drücken der Taste den Befehl "poweroff" auszuführen (natürlich mit Administratorrechten).

Es gibt Unmengen von GPIO - Tutorials Online - Programmierung , dass Sie, wie anpassen können diese .

Rahul R Dhobi hat ein schönes zweizeiliges Python-Skript , das einen Himbeer-Pi herunterfährt:

import os
os.system("shutdown now -h")

Führen Sie Ihr Skript mit Root-Rechten aus.

Hydraxan14
quelle
2
Die magic-SysRQ-Dokumentation des Linux-Kernels ist die einzige Dokumentation, die ich jemals auf Papier ausgedruckt habe :). (Und das war damals, als ich nur einen Computer hatte.)
Peter Cordes
3

Keine Notwendigkeit zu raten; Schließen Sie einfach die Tastatur an und tippen Sie dies ein und drücken Sie enter:

sudo shutdown -h now

Der shutdownBefehl benötigt zur Ausführung ein Root-Privileg.

Leichtigkeit Rennen mit Monica
quelle
4
Sie müssten sich zuerst anmelden (blind) und entweder ein privilegiertes Konto verwenden oder (vorausgesetzt, Raspbians übermächtiger piBenutzer ...) voranstellen sudo.
Goldlöckchen
2
@goldilocks: Sie wahrscheinlich setzen wollen sudoam Anfang des Befehls, anstatt anhängt es :-)
psmears
@goldilocks: Richtig, trotzdem scheint das Einloggen nicht so mühsam zu sein.
Leichtigkeit Rennen mit Monica
1
Zum Schwierigkeitsgrad habe ich mich nicht geäußert;) @psmears Hoppla! Korrigiert
Goldlöckchen
@goldilocks: Fair genug :)
Leichtigkeit Rennen mit Monica
1

Der serielle Anschluss ist in solchen Situationen ein guter Fallback und standardmäßig aktiviert.

Sie können versuchen, mit Putty eine Verbindung zum seriellen Port herzustellen. Wenn das funktioniert, melden Sie sich mit Ihrem Benutzernamen an und geben Sie "sudo poweroff" ein, um das System sicher herunterzufahren.

Weitere Informationen finden Sie unter http://elinux.org/RPi_Serial_Connection.

Quarz
quelle
-1

Fenstertaste - neunmal nach unten drücken - zweimal eingeben ... Viel Spaß ...

Prakhar Pandey
quelle
1
Vielen Dank für die Antwort - alle Eingaben werden geschätzt. Ich wurde gebeten, einige Änderungen vorzuschlagen, um Ihre Antwort zu verbessern: Zunächst gehe ich davon aus, dass Sie mit "Windows-Schaltfläche" die Schaltfläche mit dem Microsoft-Logo auf Windows-Tastaturen meinen. Wenn ja, sollten Sie dies ausdrücklich angeben. In Ihrer Antwort ist auch eine Tastenfolge enthalten, die jedoch nicht spezifisch genug ist. Kurz gesagt, schreiben Sie Ihre Antwort bitte neu, um eindeutig zu verdeutlichen, was Ihre Antwort tatsächlich ist, anstatt sich auf Annahmen zu verlassen.
Seamus
Beachten Sie auch , dass die Fragesteller laufen ohne Kopf raspbian. Das bedeutet, dass die Desktop-Umgebung nicht installiert ist, sodass diese Tastenfolge wahrscheinlich nicht hilfreich ist.
Hydraxan14