Magiczny klucz SysRq

Klucz SysRq

Magiczny klucz SysRq to kombinacja klawiszy zrozumiała dla jądra Linuksa , która umożliwia użytkownikowi wykonywanie różnych poleceń niskiego poziomu niezależnie od stanu systemu. Jest często używany do przywracania systemu po zawieszeniu lub ponownego uruchamiania komputera bez uszkodzenia systemu plików . Jego działanie jest podobne do sprzętowego przycisku resetowania komputera (lub wyłącznika zasilania), ale ma o wiele więcej opcji i znacznie większą kontrolę.

Ta kombinacja klawiszy zapewnia dostęp do zaawansowanych funkcji tworzenia oprogramowania i odzyskiwania danych po awarii. W tym sensie można to uznać za formę sekwencji ucieczki . Główne spośród oferowanych poleceń to środki do wymuszonego odmontowywania systemów plików, zabijania procesów, przywracania stanu klawiatury i zapisywania niezapisanych danych na dysku. W odniesieniu do tych zadań ta funkcja służy jako narzędzie ostateczne.

Magiczny klucz SysRq nie może działać w pewnych warunkach, takich jak panika jądra lub awaria sprzętu uniemożliwiająca prawidłowe działanie jądra.

Polecenia

Kombinacja klawiszy składa się z Alt + SysRq i innego klawisza, który steruje wydanym poleceniem. SysRq można zwolnić przed naciśnięciem klawisza polecenia, o ile Alt pozostaje wciśnięty.

Kombinacje zawsze zakładają układ klawiatury QWERTY ; [ Potrzebne źródło ] na przykład w układzie klawiatury Dvoraka kombinacja do zamknięcia systemu używa klawisza R zamiast O. Ponadto niektóre klawiatury mogą nie zapewniać osobnego klawisza SysRq . W takim przypadku powinien być obecny oddzielny klucz PrtScn .

Na niektórych urządzeniach, zwłaszcza laptopach, może być konieczne naciśnięcie klawisza Fn , aby użyć magicznego klawisza SysRq , np. w Thinkpad Carbon X1 SysRq jest aktywowany przez jednoczesne naciśnięcie Alt + Fn + S , a następnie zwolnienie Fn i S , nadal przytrzymując Alt ( patrz tutaj ). Na urządzeniu z Chrome OS naciśnij Alt + Zwiększ głośność (F10) + <klawisz> .

Funkcjonalności SysRq są również dostępne bez klawiatury. Zobacz § Inne sposoby wywołania Magic SysRq poniżej. Zauważ, że niektóre polecenia mogą być wyłączone od razu, jak określono w maski bitowej w /proc/sys/kernel/sysrq .

Działanie QWERTY Dvorak AZERTY Kolemak
Ustaw poziom dziennika konsoli, który kontroluje typy komunikatów jądra, które są wysyłane do konsoli 0 - 9 0 - 9 0
- 9 (bez ⇧ Shift )
0 - 9
Natychmiast uruchom ponownie system bez odmontowywania lub synchronizowania systemów plików B X B B
Wykonaj awarię systemu. Zrzut awaryjny zostanie wykonany, jeśli jest skonfigurowany. C J C C
Wyświetl wszystkie aktualnie posiadane blokady ( wymagana jest opcja jądra CONFIG_LOCKDEP ) D mi D S
Wyślij sygnał SIGTERM do wszystkich procesów oprócz init ( PID 1) mi . mi F
Wywołaj oom_kill , który zabija proces, aby złagodzić stan OOM F u F T

Podczas korzystania z ustawienia trybu jądra przełącz się na konsolę bufora ramki jądra. Jeśli obecny jest debugger kdb w jądrze , wprowadź debugger.
G I G D

Wyprowadź zwięzły dokument pomocy na konsolę Każdy klawisz, który nie jest przypisany do polecenia, powinien również wykonać tę akcję
H D H H
Wyślij sygnał SIGKILL do wszystkich procesów oprócz init I C I u
Wymuszone „Po prostu rozmroź” – systemy plików zamrożone przez FIFREEZE ioctl. J H J N

Zabij wszystkie procesy na bieżącej wirtualnej konsoli (może zabić programy X i SVGAlib, patrz poniżej) To było oryginalnie zaprojektowane by imitować bezpieczny klucz uwagi
k T k mi
Pokazuje ślad wsteczny stosu dla wszystkich aktywnych procesorów. l N l I
Wyprowadź aktualne informacje o pamięci do konsoli M M , M
Zresetuj niezły poziom wszystkich zadań o wysokim priorytecie i zadań w czasie rzeczywistym N B N k
Wyłącz system o R o y
Wyprowadź bieżące rejestry i flagi do konsoli P l P ;
Wyświetl wszystkie aktywne timery i źródła zegara o wysokiej rozdzielczości. Q ' A Q
Przełącz klawiaturę z trybu raw, używanego przez programy takie jak X11 i SVGAlib , do trybu XLATE R P R P
Synchronizuj wszystkie zamontowane systemy plików S o S R
Wyprowadź listę bieżących zadań i ich informacje do konsoli T y T G
Zamontuj ponownie wszystkie zamontowane systemy plików w trybie tylko do odczytu u G u l

Wymusza przywraca konsolę bufora ramki. W przypadku procesorów ARM spowoduj zamiast tego zrzut bufora ETM.
w k w w
Wyświetl listę zadań zablokowanych (stan D). w , z w


Używany przez interfejs xmon na platformach PowerPC . Pokaż globalne rejestry PMU na sparc64 . Zrzuć wszystkie wpisy TLB na MIPS .
X Q X X
Pokaż globalne rejestry procesora (specyficzne dla SPARC-64) y F y J
Zrzuć bufor ftrace z ; w z

Wyjście SysRq + h na jądrze x86_64:

sysrq: POMOC: loglevel(0-9) restart(b) crash(c) zakończenie-wszystkich-zadań(e)pamięć-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers( q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(v) show-blocked-tasks(w) dump-ftrace-buffer(z)

Używa

Przed pojawieniem się systemów plików z dziennikiem powszechnym zastosowaniem magicznego klucza SysRq było bezpieczne ponowne uruchomienie komputera z systemem Linux, który w innym przypadku był zablokowany (w skrócie REISUB ), co pozwoliło uniknąć ryzyka uszkodzenia systemu plików. W nowoczesnych systemach plików taka praktyka nie jest zalecana, ponieważ nie ma żadnych zalet w porównaniu z prostym ponownym uruchomieniem , chociaż domyślna wartość kernel.sysrq w takich dystrybucjach jak Ubuntu i Debian pozostaje odpowiednio 176 i 438.

Innym zastosowaniem w przeszłości było zabicie zamrożonego programu graficznego , ponieważ system X Window miał pełną kontrolę nad trybem graficznym i urządzeniami wejściowymi.

W dystrybucjach, które nie zawierają polecenia trybu tekstowego , polecenie klawiszowe Ctrl + Alt + F1 może czasami wymusić powrót do konsoli tekstowej. (Użyj F1 , F2 , F3 , ... , F n , gdzie n to największa liczba konsol tekstowych ustawionych przez dystrybucję. Ctrl + Alt + F ( n +1) normalnie byłby używany do ponownego wejścia w tryb GUI w systemie, w którym serwer X nie uległ awarii.) Istnieją również dystrybucje, w których Ctrl + Alt + ( F3 , ... , F ( n -2) ) otwiera konsole tekstowe, Ctrl + Alt + F1 ponownie wejdź w tryb GUI, Ctrl + Alt + F2 ponownie wejdź w tryb GUI na stronie logowania, aby zalogować innego użytkownika.

Konfiguracja

Ta funkcja jest kontrolowana zarówno przez opcję kompilacji w konfiguracji jądra, CONFIG_MAGIC_SYSRQ , jak i parametr jądra sysctl , kernel.sysrq .

W nowszych jądrach (od 2.6.12) możliwa jest bardziej precyzyjna kontrola nad sposobem użycia magicznego klucza SysRq. Na tych komputerach liczba zapisana w /proc/sys/kernel/sysrq może być 0, 1 lub liczbą większą niż 1, która jest maską bitową wskazującą, które funkcje mają być dozwolone. W systemie Ubuntu jest to ustawiane podczas rozruchu na wartość zdefiniowaną w pliku /etc/sysctl.d/10-magic-sysrq.conf .

Inne sposoby wywołania Magic SysRq

Podczas gdy magiczny klucz SysRq został pierwotnie zaimplementowany jako część procedury obsługi klawiatury jądra do debugowania, funkcjonalność została również ujawniona za pośrednictwem systemu plików proc i jest powszechnie używana do zapewnienia rozszerzonych możliwości zarządzania bezgłowymi i zdalnymi systemami. Dostęp do SysRq można uzyskać z programów przestrzeni użytkownika (takich jak powłoka wiersza poleceń), pisząc do /proc/sysrq-trigger (np. echo s > /proc/sysrq-trigger ).

Wiele systemów wbudowanych nie ma dołączonej klawiatury, ale zamiast tego używa konsoli szeregowej do wprowadzania i wysyłania tekstu do działającego systemu. Możliwe jest wywołanie funkcji Magic SysRq przez konsolę szeregową poprzez wysłanie szeregowego sygnału przerwania , po którym następuje żądany klawisz. Sposób wysyłania przerwy zależy od programu terminala lub sprzętu używanego do łączenia się z konsolą szeregową. Aby włączyć tę funkcję, należy ustawić opcję sysctl .

Demony Linuksa sysrqd i tcpconsole zapewniają metodę dostępu do funkcji SysRq przez połączenie TCP po uwierzytelnieniu za pomocą hasła w postaci zwykłego tekstu. Demon Hangwatch wywoła wstępnie skonfigurowane wyzwalacze SysRq, gdy średnie obciążenie systemu przekroczy określony próg.

Hiperwizor Xen ma funkcję wysyłania magicznych poleceń do hostowanych domen za pomocą polecenia xm sysrq . Dodatkowo polecenie SysRq można wywołać z konsoli parawirtualnej Xen, wysyłając sekwencję przerwania Ctrl + O , po której następuje żądany klawisz.

Chromebooki mają klawiaturę, ale nie mają dedykowanego klawisza SysRq. Zamiast tego używają Alt + VolumeUp ( Alt + F10 ), jednak niektóre klawisze mają inną funkcję.

IBM Power Systems mogą wywoływać funkcję Magic SysRq za pomocą klawiszy Ctrl + O , a następnie żądanego klawisza z konsoli HMC .

Partycje na komputerach mainframe IBM mogą wywoływać funkcję Magic SysRq za pomocą klawisza ^ + - , po którym następuje żądany klawisz na konsoli 3270 lub konsoli HMC.

Zobacz też

Linki zewnętrzne