poweroff
beschwert sich, dass es keine Verbindung zu systemd über DBus herstellen kann (natürlich lebt es nicht). Ich sync
folgte mit dem kill $$
Gedanken, dass das Sterben von PID 1 den Kernel zum Ausschalten bringen würde, aber das verursachte eine Kernel-Panik. Ich hielt dann den Netzschalter gedrückt, um das Ausschalten zu erzwingen.
Was ist in diesem Szenario der beste Weg zum Ausschalten?
init=/bin/bash
Hinweis / die Implikation ignorieren , ist es nicht eindeutig, ob systemd installiert ist oder nicht. Ich hatte gemeint, dass kein System läuft . Da kein systemd ausgeführt wird, dachte ich auf jeden Fall, dass das systemd-Toolset nutzlos wäre und dass Antworten andere Mittel wie die über sysrq verwenden würden.Antworten:
Hängen Sie die gemounteten Dateisysteme aus. Das Root-Dateisystem ist ein Sonderfall. dafür kannst du verwenden
mount / -o remount,ro
. Unter Linuxumount /
funktioniert das auch, weil es effektiv in den vorherigen Befehl konvertiert wird.Das heißt, Sie müssen sich keine Sorgen machen, dass Sie zu viel abmontieren müssen, es sei denn
sync
soll das reichen, und das Dateisystem repariert sich beim nächsten Start sehr schnell.Das Obige ist der wichtige Teil. Danach können Sie die Hardware auch bequem mit ausschalten
poweroff -f
. Oder starten Sie mit neureboot -f
.Es gibt ein
systemd
spezifisches Äquivalent vonpoweroff -f
:systemctl poweroff -f -f
. Diespoweroff -f
geschieht jedoch genauso undsystemd
unterstützt diesen Befehl, auch wenn er ohne SysV-Kompatibilität erstellt wurde.Technisch gesehen erinnere ich mich, dass meine USB-Festplatte als "sicheres Entfernen" von Windows oder gleichwertig dokumentiert wurde. Diese Anforderung ist jedoch nicht ausfallsicher, und Linux tut dies ohnehin nicht während eines normalen Herunterfahrens. Es wird besser so interpretiert, dass Sie die Festplatte nicht während des Drehens bewegen sollten - auch nicht durch den Versuch, sie vom Stromnetz zu trennen. Ein vollständiges Ausschalten sollte das Drehen des Laufwerks stoppen. Sie können wahrscheinlich hören, fühlen oder sehen, ob es nicht aufhört :-).
quelle
sync()
reicht für ext2. Es wird sich darüber beschweren, dass es schmutzig ist, aber bis auf die zusammenfassenden Informationen nicht beschädigt worden sein. Generell betrachte ich init = / bin / bash oder ein lokales Äquivalent als Notsituation.fsck.mode=skip
richtig?fsck.mode=skip
normal booten nach einem unsauberen Unmount!Ich werde einfach zwei Befehle ausführen:
Angenommen, der magische Schlüssel ist im Kernel aktiviert
quelle
Ok, also kam mir gerade der Gedanke, dass ich die Option dazu hatte
exec init
. Von dort würde ich wahrscheinlich später in der Lage seinpoweroff
. Ich frage mich jedoch, ob es bessere Alternativen gibt.quelle
exec init 0
. Das funktioniert nicht mit allen Init-Systemen, aber die gleichen durchlaufen eine Shutdown-Sequenz.Tatsächlich möchten Sie reboot (2) syscall aufrufen .
Zwei Möglichkeiten, wie Sie dies tun können:
Führen Sie
reboot -f
oder auspoweroff -f
, dies solltereboot(2)
direkt aufrufen .Wenn Sie sich auf dem realen virtuellen Linux-Terminal befinden (nicht auf dem GUI-Terminal-Emulator), drücken Sie Ctrl+ Alt+ Delete.
Beachten Sie, dass die Tastenkombination von einem Benutzerbereichsprogramm (normalerweise init) deaktiviert werden kann. Wenn sie deaktiviert ist, sendet die Tastenkombination stattdessen ein Signal an init.
Alle oben genannten Befehle sollten ausgeführt werden, nachdem alle Festplatten bereitgestellt oder erneut als schreibgeschützt bereitgestellt und die Synchronisierung ausgeführt wurden. Andernfalls können ungeschriebene Daten verloren gehen. Wenn nur Ihre Shell ausgeführt wird, reicht möglicherweise die Synchronisierung aus.
quelle
Sie können die Magic SysRq-Schlüssel ( https://en.wikipedia.org/wiki/Magic_SysRq_key ) verwenden, um Ihren Computer auszuschalten.
Zum ordnungsgemäßen Herunterfahren können Sie Folgendes verwenden (Zitat aus Wikipedia):
Aber das letzte B durch O (für azerty / qwerty) für "power O ff" ersetzen
quelle