Jak włączyć wszystkie funkcje SYSRQ w Linux
- 4956
- 732
- Maria Piwowarczyk
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…
- « Wprowadzenie do poziomów dziennika jądra Linux
- Jak skonfigurować amule i kontrolować go za pośrednictwem interfejsu internetowego na Raspberry Pi »