ABSCHREIBUNGEN :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key , die auf der ursprünglichen Arbeit durch beruhte
Credits
Geschrieben von Mydraal
Aktualisiert durch Adam Sulmicki
Aktualisiert durch Jeremy M. Dolan 2001.01.28 10.15.59
Hinzugefügt von Crutcher Dunnavant
https://askubuntu.com/a/11194/102029 mneiss hat Links für LaunchPad bereitgestellt.
Inhalt
Was ist sysrq?
Warum funktioniert RESIUB (O) nicht?
1 Wie bringe ich sysrq dazu, sich so zu verhalten, wie ich es möchte?
1.1 Was ist der magische SysRq-Schlüssel?
1.2 Wie aktiviere ich den magischen SysRq-Schlüssel?
1.3 Wie verwende ich den magischen SysRq-Schlüssel?
1.4 Was sind die Befehlstasten?
1.5 Okay, wofür kann ich sie verwenden?
1.6 Fehlerbehebung
1.6.1 Hängenbleiben, bevor Initskripte ausgeführt werden
1.6.2 Manchmal scheint SysRq nach der Verwendung hängen zu bleiben. Was kann ich tun?
1.6.3 Ich habe SysRq gedrückt, aber es scheint nichts zu passieren. Was ist los?
1.6.4 Ich möchte einem Modul SysRQ-Schlüsselereignisse hinzufügen. Wie funktioniert das?
1.6.5 Fazit
1.6.6 ANHANG
Hinweis.
Möglicherweise ist die Verwendung von Ctrl+ Ffür die Verwendung des Inhaltsverzeichnisses hilfreich.
Was ist SysRq?
Eine übliche bekannte und verwendete Verfahren zur Verwendung der Maschine wiederzugewinnen , nachdem es das Einfrieren oder Verriegeln mit der Gefahr einer Beschädigung der Festplatte limitising zur Systemdatei Beschädigung oder Verlust von Daten führt , ist die Verwendung
Alt+ SysRq+ rund dann , sund dann , eund dann , iund dann , uund dann bund / oder wenn nötig ( o)
Dies hat bei vielen (dh mir und James) nicht bei allen Versionen von> = 8.04LTS bis zur aktuellen Version 13.04 wie erwartet funktioniert.
Warum funktioniert RESIUB (O) nicht?
Betrachten Sie diese Fehlerbeschreibung, die Sie bei LaunchPad Bug 194676 gefunden haben :
Beschreibung des Problems:
Standardmäßig ist SysRq auf Ubuntu-Desktopsystemen standardmäßig aktiviert. Dies ist von unschätzbarem Wert, wenn ein System gesperrt ist und Sie es so sanft wie möglich stoppen oder das Problem beheben möchten. Viele Leute sind jedoch überrascht, dass Sie auch den Inhalt des aktuellen Speichers auf die Konsole (oder dmesg) übertragen können, allerdings nur über die Tastatur.
openSUSE legt auf seinem SysRq eine Standardbitmaske von 176 fest, die Sie standardmäßig auf das Synchronisieren, Neustarten und "Nur-Lese-Remount" beschränkt. Dadurch wird standardmäßig verhindert, dass Benutzer sysrq verwenden, um den Speicher zu überprüfen, der sich sinnvoll anhört.
Ubuntu-Entwickler sahen die Notwendigkeit, etwas dagegen zu unternehmen. Angesichts der möglichen Komplikationen der genannten Beobachtung besteht die beste Lösung darin, standardmäßig die Bitmaske 176 sysrq anzuwenden, wodurch Benutzereingaben erforderlich werden, um sysrq nach Belieben festzulegen. Bitmask 176 erlaubt nur S, U, Bdas ist sync, Remount hängten Partitionen und Neustart.
Wenn Sie den vollständigen Fehlerbericht und die Kommentare lesen, werden einige Optionen hervorgehoben, die möglicherweise auf Ihr System zutreffen.
Die kumulativen Auswirkungen unterschiedlicher Hardware, Kernel, Tastaturen und Bitmasken bedeuten, dass sich sysrq für verschiedene Personen unterschiedlich verhält.
Eine Methode zum Abrufen der TXT-Ausgabe in Bezug auf die Verwendung von sysrq in Ihrem System besteht darin, sysrq-Befehle von tty anzuwenden (wenn das System nicht unter Sperren / Einfrierungen leidet). Dies könnte bedeuten, dass sysrq nicht vollständig deaktiviert wurde, aber Bitmaske 176 verwendet.
Durch die Suche nach / proc / sys / kernel / sysrq auf einer 13.04 Desktop amd64 liveDVD- und einer 13.04 Desktop amd64-Installation wird bestätigt, dass derzeit standardmäßig sysrq auf Bitmaske 176 belassen wird.
Wenn sysrq für Sie funktioniert; Es kann sich lohnen zu fragen: "Wenn ich die 10-magic-sysrq-Einstellungen nicht geändert habe, wer hat das getan?"
1 Wie bringe ich sysrq dazu, sich so zu verhalten, wie ich es möchte?
Es folgt eine bearbeitete Kopie und Einfügung von https://fedoraproject.org/wiki/QA/Sysrq .
1.1 Was ist der magische SysRq-Schlüssel?
Es ist eine magische Tastenkombination, auf die der Kernel reagiert, unabhängig davon, was er gerade tut, es sei denn, sie ist vollständig blockiert.
1.2 Wie aktiviere ich den magischen SysRq-Schlüssel?
sysrq ist in den Ubuntu-Kernel integriert, wird jedoch beim Booten standardmäßig mit 10-magic-sysrq.conf deaktiviert.
Um es beim Booten wieder zu aktivieren, müssen Sie die Datei /etc/sysctl.d/10-magic-sysrq.conf bearbeiten. Das heißt, wenn Sie diese Zeile nicht kommentieren, werden alle Funktionen von sysrq aktiviert:
# 1 - enable all functions of sysrq
Wenn Sie einen Kernel mit SysRq ausführen, der in kompiliert ist, steuert / proc / sys / kernel / sysrq die Funktionen, die über den SysRq-Schlüssel aufgerufen werden dürfen. Hier ist die Liste der möglichen Werte in / proc / sys / kernel / sysrq:
0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
176 - allow only sync, reboot and "remount read-only"
256 - allow nicing of all RT tasks
Sie können den Wert in der Datei mit dem folgenden Befehl festlegen.
echo "number" >/proc/sys/kernel/sysrq
Also voll zu aktivieren wäre es.
echo "1" > /proc/sys/kernel/sysrq
Oder kann es auch dadurch aktivieren.
sysctl -w kernel.sysrq=1
Hinweis.
Der Wert von / proc / sys / kernel / sysrq beeinflusst nur den Aufruf über eine Tastatur. Der Aufruf einer Operation über / proc / sysrq-trigger ist immer zulässig (von einem Benutzer mit Administratorrechten, siehe unten).
1.3 Wie verwende ich den magischen SysRq-Schlüssel?
Ubuntu Desktop
Sie drücken die Tastenkombination Alt+ SysRq+ command key.
NB- Weitere mögliche Standardeinstellungen für andere Systeme und Tastaturen finden Sie in den Hinweisen in diesem Abschnitt und im Abschnitt Fehlerbehebung.
Es ist möglich, einen beliebigen Charakter Ihrer Wahl festzulegen: Alle Architekturen
Schreiben Sie ein Zeichen in / proc / sysrq-trigger:
echo t > /proc/sysrq-trigger
würde das TVerhalten als SysRq
Hinweis festlegen .
Bei einigen Tastaturen ist möglicherweise keine Taste beschriftet SysRq. Der SysRqSchlüssel wird auch als Print ScreenSchlüssel bezeichnet. Einige Tastaturen können auch nicht mit so vielen Tasten gleichzeitig umgehen, sodass Sie möglicherweise mehr Glück mit Alt+ SysRq- haben und SysRqdann drücken und command keydann alles loslassen. Das gesamte Schreiben von QA , die in diesem Handbuch basieren auf https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F für weitere Informationen zu diesem.
1.4 Was sind die Befehlstasten?
'b' - Will immediately reboot the system without syncing or unmounting your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'd' - Shows all locks that are held.
'e' - Send a SIGTERM to all processes, except for init.
'f' - Will call oom_kill to kill a memory hog process.
'g' - Used by kgdb on ppc and sh platforms.
'h' - Will display help (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.
Hinweis.
Siehe wichtige Kommentare weiter unten im Abschnitt SAK.
'l' - Shows a stack backtrace for all active CPUs.
'm' - Will dump current memory info to your console.
'n' - Used to make RT tasks nice-able
'o' - Will shut your system off (if configured and supported).
'p' - Will dump the current registers and flags to your console.
'q' - Will dump a list of all running timers.
'r' - Turns off keyboard raw mode and sets it to XLATE.
's' - Will attempt to sync all mounted filesystems.
't' - Will dump a list of current tasks and their information to your console.
'u' - Will attempt to remount all mounted filesystems read-only.
'v' - Dumps Voyager SMP processor info to your console.
'w' - Dumps tasks that are in uninterruptable (blocked) state.
'x' - Used by xmon interface on ppc/powerpc platforms.
'0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)
1.5 Okay, wofür kann ich sie verwenden?
Un raw ist sehr praktisch, wenn Ihr X-Server oder ein svgalib-Programm abstürzt.
Sa k(Secure Access Key) ist nützlich, wenn Sie sicherstellen möchten, dass an der Konsole kein Trojaner-Programm ausgeführt wird, das Ihr Kennwort abrufen kann, wenn Sie versuchen, sich anzumelden. Dadurch werden alle Programme auf der angegebenen Konsole beendet, sodass Sie sicherstellen können, dass die angezeigte Anmeldeaufforderung tatsächlich von init stammt und nicht von einem Trojaner-Programm. Andere finden es nützlich als (System Attention Key), wenn Sie ein Programm beenden möchten, mit dem Sie nicht zwischen Konsolen wechseln können. (Zum Beispiel X oder ein svgalib-Programm.)
Hinweis.
In seiner wahren Form ist es keine echte SAK wie die in einem c2-kompatiblen System und sollte nicht als solche verwechselt werden.
Re boot ist gut , wenn Sie nicht in der Lage sind , herunterzufahren.
Hinweis.
Es wird allgemein als gute Praxis angesehen, uzuerst zu besteigen
Crashdump kann verwendet werden, um manuell einen cRashdump auszulösen, wenn das System hängt.
Hinweis.
Der Kernel muss mit aktiviertem CONFIG_KEXEC erstellt worden sein!
Die Synchronisierung ist großartig, wenn Ihr System gesperrt ist. Sie ermöglicht es Ihnen, sIhre Festplatten zu synchronisieren, und verringert mit Sicherheit das Risiko von Datenverlust und Fscking.
Warnung
Die Synchronisierung wurde erst durchgeführt, wenn auf dem Bildschirm "OK" und "Fertig" angezeigt werden. (Wenn sich der Kernel wirklich in Streit befindet, erhalten Sie möglicherweise nie die Meldung "OK" oder "Fertig".
Umount ist grundsätzlich genauso nützlich wie Sync.
Die loglevels 0- 9sind nützlich, wenn Ihre Konsole mit Kernelnachrichten überflutet wird, die Sie nicht sehen möchten. Durch Auswahl 0dieser Option wird verhindert, dass alle bis auf die dringendsten Kernelmeldungen Ihre Konsole erreichen.
Hinweis.
Sie werden weiterhin protokolliert, wenn syslogd / klogd aktiv ist
T erm und k ill sind nützlich, wenn Sie einen außer Kontrolle geratenen Prozess haben, den Sie auf keine andere Weise beenden können, insbesondere, wenn andere Prozesse gestartet werden.
Hinweis.
Bei einer schlechten Kernel-Panik Alt+ Sysrq+ edann Alt+ Sysrq+ udann Alt+ Sysrq+ iund zuletzt Alt+ Sysrq+b
1.6 Fehlerbehebung
1.6.1 Hängen, bevor Initskripte ausgeführt werden
Wenn der Computer hängt, bevor die Initscripts ausgeführt werden, starten Sie mit sysrq_always_enabled=1
1.6.2 Manchmal scheint SysRq nach der Verwendung hängen zu bleiben. Was kann ich tun?
Wenn Sie auf shift, altund controlauf beiden Seiten der Tastatur tippen und erneut eine ungültige sysrq-Sequenz eingeben, wird das Problem behoben. (dh so etwas wie alt+ sysrq+ z).
Das Wechseln zu einer anderen virtuellen Konsole ( Ctrl+ Alt+ Fn1- Fn6) und dann wieder zurück Ctrl+ Alt+ Fn7sollte ebenfalls helfen.
1.6.3 Ich habe getroffen SysRq, aber es scheint nichts zu passieren. Was ist los?
Es gibt einige Tastaturen, die andere Scancodes SysRqals die vordefinierten 0x54 senden. Wenn SysRqdies für eine bestimmte Tastatur nicht sofort funktioniert, führen showkey -s
Sie den Befehl aus, um die richtige Scancode-Sequenz zu ermitteln. Verwenden Sie dann setkeycodes <sequence> 84
, um diese Sequenz auf den üblichen SysRqCode zu definieren (84 ist für 0x54 dezimal). Es ist wahrscheinlich am besten, diesen Befehl in ein Boot-Skript zu schreiben.
Warnung
Sie beenden das Programm, showkey
indem Sie zehn Sekunden lang nichts eingeben.
1.6.4 Ich möchte SysRqeinem Modul wichtige Ereignisse hinzufügen. Wie funktioniert das?
Um eine Grundfunktion in der Tabelle zu registrieren, müssen Sie zuerst die Kopfzeile einfügen include/linux/sysrq.h
, damit wird alles definiert, was Sie sonst noch benötigen. Als Nächstes müssen Sie eine sysrq_key_op-Struktur erstellen und mit ...
Die Key-Handler-Funktion, die Sie verwenden werden.
Ein help_msg-String, der gedruckt wird, wenn SysRQ die Hilfe druckt
Eine action_msg-Zeichenfolge, die unmittelbar vor dem Aufruf Ihres Handlers gedruckt wird. Ihr Handler muss dem Prototyp in 'sysrq.h' entsprechen
Nachdem der sysrq_key_op erstellt wurde, können Sie die Kernelfunktion register_sysrq_key (int key, struct sysrq_key_op * op_p) aufrufen. Dies registriert die Operation, auf die 'op_p' am Tabellenschlüssel 'key' zeigt, wenn dieser Slot in der Tabelle leer ist. Zum Zeitpunkt des Entladens des Moduls müssen Sie die Funktion unregister_sysrq_key (int key, struct sysrq_key_op * op_p) aufrufen, die den Schlüssel op, auf den 'op_p' zeigt, nur dann vom Schlüssel 'key' entfernt, wenn er gerade in diesem registriert ist Slot. Dies ist der Fall, wenn der Steckplatz seit Ihrer Registrierung überschrieben wurde.
Das Magic- SysRqSystem registriert Schlüsseloperationen anhand einer Schlüsseloperations-Nachschlagetabelle, die in 'drivers / char / sysrq.c' definiert ist. In dieser Schlüsseltabelle sind zur Kompilierungszeit eine Reihe von Operationen registriert, die jedoch veränderlich sind. Es werden zwei Funktionen für die Schnittstelle zu dieser Tabelle exportiert: register_sysrq_key und unregister_sysrq_key. Lassen Sie niemals einen ungültigen Zeiger in der Tabelle. dh; Wenn Ihr Modul, das register_sysrq_key () aufgerufen hat, beendet wird, muss es unregister_sysrq_key () aufrufen, um den verwendeten sysrq-Schlüsseltabelleneintrag zu bereinigen.
Hinweis.
Nullzeiger in der Tabelle sind immer sicher.
Wenn Sie aus irgendeinem Grund das Gefühl haben, die handle_sysrq-Funktion in einer von handle_sysrq aufgerufenen Funktion aufrufen zu müssen, müssen Sie sich bewusst sein, dass Sie sich in einer Sperre befinden (Sie befinden sich auch in einem Interrupt-Handler, was bedeutet, dass Sie nicht schlafen!) Sie müssen stattdessen __handle_sysrq_nolock aufrufen.
1.6.5 Fazit
Verwenden Sie Alt+ SysRq+ Sund dann Uund dann Bzum Synchronisieren, versuchen Sie, alle bereitgestellten Dateisysteme erneut bereitzustellen, und starten Sie dann bei Bedarf neu. Ohne etwas an Systemdateien zu ändern.
Wenn Alt+ SysRq+ Bdas System nicht neu startet, muss möglicherweise /etc/sysctl.d/10-magic-sysrq.conf bearbeitet werden, um den Versuch zu ermöglichen, Alt+ SysRq+ B(oder / und Onach der Bearbeitung von / proc / sys / kernel /) anzuwenden. sysrq-Bitmaske, um den Neustart und das Herunterfahren des Systems mithilfe von sysrq zu ermöglichen. Sie können dies mit einer der oben beschriebenen Methoden tun.
1.6.6 ANHANG:
Siehe auch http://ubuntuforums.org/showthread.php?t=617349 und https://www.kernel.org/doc/Documentation/sysrq.txt
Informationen zu Problemen mit der Apple MacBook-Tastatur in Bezug auf sysrq finden Sie unter: https://help.ubuntu.com/community/AppleKeyboard und https://bugs.launchpad.net/mactel-support/+bug/262408
Relativ interessante Infos - Nachdem ich mir die Folge 17 08 2013 der BBC-Sendung "Click" und den Artikel "Cyberwarfare" angeschaut hatte , fielen mir wirklich einige auf. Das Programm hat auch eine eigene Website Klicken Sie, wenn Sie das Programm nicht sehen können. FAWC