Jak włączyć wszystkie funkcje SYSRQ w Linux

Jak włączyć wszystkie funkcje SYSRQ w Linux

Cel

Dowiedz się, jak włączyć funkcje SYSRQ i jak je używać, używając klawiszy poleceń.

Wymagania

  • Uprawnienia korzeniowe
  • Kernel Linux opracowany z włączoną opcją „config_magic_sysrq”

Konwencje

  • # - Wymaga podanych poleceń Linuksa, które można wykonać z uprawnieniami root
    bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
  • $ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Wstęp

Kombinację klucza SYSRQ może być używana do wysyłania poleceń bezpośrednio do jądra Linux w określonych okolicznościach: jądro odpowie na polecenia wysyłane Klucze dowodzenia Natychmiast, chyba że jest całkowicie zamknięty. Różny Klucze dowodzenia osiągnąć określone zadania i można je połączyć, aby przywrócić system do bezpiecznego stanu lub uzyskać czyste ponowne uruchomienie, gdy nic innego nie działa Reisub sekwencja.

W tym samouczku zobaczymy, jak włączyć wszystkie funkcje SYSRQ za pomocą standardowej instalacji Ubuntu 18.04 - Bionic Beaver jako baza.

Klucz magiczny SYSRQ

SYSRQ Kombinacja kluczy składa się z trzech kluczy do naciśnięcia: Klucz poleceń Alt + Sysrq +. Być może zastanawiasz się, co to jest SYSRQ Klucz na klawiaturze. Zakładając, że używasz klawiatury QWERTY, SYSRQ Klucz odpowiada wydrukować klucz.

Wreszcie klawisz poleceń jest klawiszem na klawiaturze, który po naciśnięciu w tym trybie specjalnym natychmiast wyśle ​​polecenie do jądra. Za chwilę zobaczymy niektóre z tych kluczy i funkcje związane z nimi, ale przed kontynuowaniem musimy być pewni, że jądro, którego używamy, zostało skompilowane z wymaganą opcją włączoną.



Opcja jądra config_magic_sysrq

Jak wspomniano powyżej, dla SYSRQ kluczowe połączenie do pracy, jądro musiało zostać zbudowane z Config_magic_sysrq Włączona opcja. Zwykle tak jest we wszystkich głównych rozkładach, jednak przydatne może być wiedzieć, jak sprawdzić swój stan. Oto jak możemy to zrobić. Pierwszą rzeczą, którą chcemy wiedzieć, jest wersja i nazwa jądra, którego używamy. Uzyskanie tych informacji jest bardzo łatwe, po prostu biegamy:

$ uname -r 4.13.0-25-generalny 

Jak zapewne wiesz, niezmienny Polecenie służy do pobrania niektórych informacji o systemie. W tym przypadku użyliśmy go z -R flaga, ponieważ chcieliśmy tylko wiedzieć o Wydanie jądra.Wynik polecenia był 4.13.0-25-generalny: Taka nazwa jądra używana przez nasz system. Możemy teraz zajrzeć do środka /uruchomić katalog dla odpowiedniego pliku konfiguracyjnego: Ten plik zawiera wszystkie opcje, z którymi jądro zostało skompilowane. Możemy wyszukać wartość używaną Config_magic_sysrq w tym:

$ ls /boot aBI-4.13.0-25-generalny initrd.IMG-4.13.0-25-generyczny memtest86+_Multiboot.Bin Config-4.13.0-25-generyczne memtest86+.system pojemników.MAP-4.13.0-25-generyczne memTest86+.ELF VMlinuz-4.13.0-25-generalny 

Zgodnie z oczekiwaniami plik jest obecny: config-4.13.0.25-generalny jest tym, czego szukamy. Mamy teraz wszystko, czego potrzebujemy, sprawdźmy:

$ grep -i config_magic_sysrq /boot /config -4.13.0-25-generalny config_magic_sysrq = y config_magic_sysrq_default_enable = 0x01b6 config_magic_sysrq_serial = y 

Jak widać w pierwszym wierszu, opcja Config_magic_sysrq ma y jako jego wartość, co oznacza, że ​​zostało ustawione jako wbudowane po skonfigurowaniu jądra. Co oznacza inne linie? Config_magic_sysrq_default_enable Opcja określa włączone funkcje domyślne: Wartość jest wyrażona w szesnastkowy formularz, w tym przypadku 0x01b6 który odpowiada 438 w formie dziesiętnej.

Jak zobaczymy później w tym samouczku, wartość ta oznacza, że ​​większość funkcji jest domyślnie włączona. Jednak większość dystrybucji wyłącza ich wywołanie za pośrednictwem kombinacji kluczowych dla ze względów bezpieczeństwa. Trzecia opcja nie jest dla nas teraz bardzo ważna: chodzi o włączenie Klucz SYSRQ ponad serial.



Sprawdzanie bieżącej wartości SYSRQ

Większość dystrybucji wyłącza dostęp do niektórych SYSRQ Funkcje za pośrednictwem kombinacji kluczowych ze względów bezpieczeństwa (wszystkie funkcje są zawsze dostępne, jeśli są wywoływane /proc/sysrq wyzwalacz z przywilejami korzeni). Aby sprawdzić, jakie są dostępne funkcje w naszym systemie, możemy po prostu uruchomić:

$ cat/proc/sys/jądro/sysrq 176 

Polecenie zwróciło wartość 176. Jak uzyskana jest ta wartość i co oznacza? Każda wartość odpowiada określonej funkcji, jak widać na poniższej liście:

0 - Wyłącz SYSRQ całkowicie 1 - Włącz wszystkie funkcje SYSRQ 2 - Włącz kontrolę poziomu rejestrowania konsoli 4 - Włącz kontrolę klawiatury (SAK, UNFRAT) 8 - Włącz zrzuty debugowania procesów itp. 16 - Włącz polecenie synchronizacji 32 - Włącz remount tylko do odczytu 64 - Włącz sygnalizację procesów (termin, zabójstwo, oom -cyll) 128 - Zezwalaj na ponowne uruchomienie/Poweroff 256 - Zezwalaj na nazwy wszystkich zadań RT 

Podczas gdy wartość 0 wyłącza wszystkie SYSRQ funkcje i wartość 1 umożliwia je wszystkie, zapewniając wartości większe niż 1, możemy włączyć określone. Jak zweryfikowano powyżej, mamy SYSRQ wartość 176. Jest to uzyskiwane z suma 128 (który umożliwia ponowne uruchomienie i Poweroff) + 32 (Możliwość ponownego ponownego systemu plików w trybie tylko do odczytu) + 16, który umożliwia polecenie synchronizacji. W ten sam sposób wartość 438 jest uzyskiwany z suma 2 + 4 + 16 + 32 + 128 + 256, więc wszystkie odpowiednie funkcje są włączone.

Jak zmienić wartość SYSRQ

Teraz wiemy, co SYSRQ wartość jest, ale jak możemy to zmienić? Aby natychmiast zmienić tę wartość, musimy po prostu napisać poszukiwaną do /proc/sys/jądro/sysrq Plik, uruchamiając:

# echo "1">/proc/sys/jądro/sysrq

W ten sposób zmiana będzie natychmiast skuteczna, ale nie przetrwa ponownego uruchomienia. Jak to uczynić? To jest bardzo proste. Ogólne rozwiązanie, które działa we wszystkich rozkładach Linux, jest umieszczenie wartości jądro.SYSRQ w /etc/sysctl.D/99-SYSCTL.conf plik:

# Echo ”jądro.sysrq = 1 ">> /etc /sysctl.D/99-SYSCTL.conf

Zwróć uwagę, jak użyliśmy >> Operator przekierowania: Dodaje to tekst do pliku i nie zastąpi innych ustawień, które może już zawierać.



Sekwencja Reisub

Wszystkich kluczowych sekwencji poleceń, Reisub jest prawdopodobnie najbardziej znanym. Aby lepiej pamiętać o tej sekwencji, jest często stosowana jako akronim „wychowywanie słoni jest tak nudne”. Co osiąga ta sekwencja? Trzymać Klucz Alt+Sysrq, W notowaniu klawiszy poleceń w sekwencji i tak się dzieje:

Przede wszystkim R przełącza klawiaturę z surowy Do Xlate więc tryb, mi wysyła Sigterm sygnalizować do wszystkich procesów, aby można je było zamknąć w pełen wdzięku. Potem wysyłamy Sigkill sygnał przez naciskanie I, Aby zakończyć pozostały proces, który nie zareagował na poprzedni sygnał. Z S Staramy się zsynchronizować wszystkie zamontowane systemy plików i natychmiast przepłukać wszystkie zmiany z pamięci podręcznej do dysku. Używając u Ponowne zużycie wszystkich systemów plików w tylko czytać tryb i na koniec naciskając B, Przeprowadzamy ponowne uruchomienie systemu.

Reisub Sekwencja może być stosowana w niektórych sytuacjach, gdy system staje się bardzo niereagujący, a inne rozwiązania nie wystarczą do naprawy. Klucze poleceń komponujące tę sekwencję są jednak tylko podzbiorem dostępnych: Aby uzyskać pełną listę, możesz rzucić okiem na SYSRQ Dokumentacja jądra.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Podstawowe polecenia Linux
  • Jak wydrukować drzewo katalogu za pomocą Linux
  • Pobierz Linux
  • Linux Pliki konfiguracyjne: Top 30 Najważniejsze
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Najlepszy Linux Distro dla programistów
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…