GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man ausschalten, wenn kein systemd/init vorhanden ist (z. B. mit init=/bin/bash)?

Unmounten Sie die Dateisysteme, die Sie gemountet hatten. Das Root-Dateisystem ist ein Sonderfall; dafür können Sie mount / -o remount,ro verwenden . Unter Linux umount / funktioniert auch, weil es effektiv in den früheren Befehl umgewandelt wird.

Das heißt, Sie müssen sich nicht zu viele Gedanken über das Unmounten machen, es sei denn

  1. Sie haben ein altes Dateisystem wie FAT - wie es von der EFI-Systempartition verwendet wird - oder ext2 gemountet, das kein Journaling oder Ähnliches implementiert. Mit einem modernen Dateisystem sync soll ausreichen, und das Dateisystem wird sich beim nächsten Booten sehr schnell selbst reparieren.
  2. Möglicherweise haben Sie einen laufenden Prozess verlassen, der in das Dateisystem schreibt, und Sie wollten ihn sauber herunterfahren. In diesem Fall ist es sinnvoll zu versuchen, die Dateisysteme auszuhängen, weil umount fehlschlagen und einen Busy-Fehler anzeigen würde, um Sie an den verbleibenden Writer zu erinnern.

Das Obige ist der wichtige Teil. Danach können Sie die Hardware auch bequem mit poweroff -f ausschalten . Oder starten Sie mit reboot -f neu .

Es gibt einen systemd -spezifisches Äquivalent von poweroff -f :systemctl poweroff -f -f . Jedoch poweroff -f macht dasselbe, und systemd unterstützt diesen Befehl auch dann, wenn er ohne SysV-Kompatibilität erstellt wurde.

Technisch erinnere ich mich, dass für meine USB-Festplatte dokumentiert wurde, dass Windows "sicheres Entfernen" oder etwas Äquivalentes erfordert. Diese Anforderung ist jedoch nicht stromausfallsicher, und Linux tut dies ohnehin nicht während eines normalen Herunterfahrens. Es ist besser so zu interpretieren, dass Sie die Festplatte nicht rütteln sollten, während sie sich dreht – einschließlich des Versuchs, sie auszustecken. Ein vollständiges Ausschalten sollte die Drehung des Laufwerks stoppen. Sie können wahrscheinlich hören, fühlen oder sehen, ob es nicht aufhört :-).


Ich werde einfach die folgenden zwei Befehle ausführen:

echo s > /proc/sysrq-trigger    <= For sync
echo o > /proc/sysrq-trigger    <= For shutdown the system

Angenommen, Magic Key ist im Kernel aktiviert


Ok, mir ist gerade eingefallen, dass ich die Option exec init hätte . Von dort aus könnte ich wahrscheinlich später poweroff . Ich frage mich jedoch, ob es bessere Alternativen gibt.


Linux
  1. Wie werden Parameter eingestellt, wenn Bash-Skript an Bash übergeben wird?

  2. Wie verwendet man Systemd, um einen Dienst neu zu starten, wenn er ausgefallen ist?

  3. Wie führe ich mehrere Befehle aus, wenn ich find verwende?

  4. Wie listet man Ordner mit Bash-Befehlen auf?

  5. Woher weiß ich, ob ich systemd unter Linux verwende?

So zeigen Sie GUI-Dialoge in Bash-Skripten mit Zenity an

So sichern Sie das Linux-Dateisystem mit dem Dump-Befehl

So richten Sie die automatische Ausführung eines Python-Skripts mit Systemd ein

Wie kopiere ich Verzeichnisse mit install in bash in ein Verzeichnis?

Wie parse ich HTTP-Header mit Bash?

Wie füge ich einen Crontab-Job mit einem Bash-Skript zu Crontab hinzu?