Gibt es eine Möglichkeit, ein Linux-System (insbesondere Debian) neu zu starten, ohne die Hardware neu zu starten?
Ich besitze einen RAID-Controller, dessen Start vor dem Start des Betriebssystems einige Zeit in Anspruch nimmt, und ich würde es begrüßen, wenn es eine Möglichkeit gäbe, das Linux-Betriebssystem schnell neu zu starten, ohne den gesamten Neustart des RAID-Controllers durchführen zu müssen. usw.
kexec()
was ähnlichesexec()
, aber für Unix-Kernel.Antworten:
Ich verwende kexec-reboot auf fast allen meinen Produktionssystemen.
Es funktioniert unglaublich gut und ermöglicht mir, die lange POST-Zeit auf HP ProLiant Servern zu umgehen und den Startzyklus von 5 Minuten auf ~ 45 Sekunden zu verkürzen.
Siehe: https://github.com/error10/kexec-reboot
Die einzige Einschränkung ist, dass es auf RHEL / CentOS 6.x-Systemen, die UEFI booten, anscheinend nicht funktioniert. Die meisten vernünftigen OS / Hardware-Kombinationen funktionieren jedoch.
quelle
kexec
. Es ist daskexec-reboot
Dienstprogramm. Die Github-Beschreibung beschreibt den Unterschied und was das Dienstprogramm dem Prozess hinzufügt.shutdown -r
. Ihre Systemskripte werden feststellen, dass kexec bereitgestellt wurde und das Richtige tun. Wie sieht es aus? Drei oder vier oder fünfzehn Minuten kürzer. Ich habe ein sehr schreckliches Qualitätsvideo, das ich von der iDRAC-Konsole genommen habe, aber Sie möchten wirklich nicht darunter leiden ... Daskexec-reboot
Skript soll den Prozess automatisieren, die richtigen Befehlszeilenargumente an kexec zu senden, was schwierig sein kann .[ -n "$kexec_command" ] && $kexec_command -e -x >& /dev/null
. Wenn also ein Kernel von kexec -l geladen wird, wird das System neu gestartet, ohne dass / sbin / reboot abgeschlossen ist ... kexec ist eingebettet! Das wusste ich nicht, danke. Ich nehme an, dass modernere Distributionen dies ebenfalls behandeln. Übrigens, wenn kexec zuvor nicht mit -l ausgeführt wurde, wird im Neustart-Skript "Nothing has been loaded!" Angezeigt. Aus diesem Grund wird die Ausgabe an / dev / null gesendet, und ich habe diese Funktion nie bemerkt.Ja, es ist möglich. Mit kexec kann ein Linux-Kernel direkt von Linux aus gestartet werden, ohne dass der BIOS-Startvorgang ausgeführt werden muss.
quelle
Ja. Sie müssen Kexec-Tools verwenden. Um das Leben einfacher zu machen, benutze ich Kexec-Neustart .
quelle
# The error checking is very basic.