Cara mengaktifkan semua fungsi sysrq di linux

Cara mengaktifkan semua fungsi sysrq di linux

Objektif

Pelajari cara mengaktifkan fungsi sysrq, dan cara menggunakannya dengan menggunakan kunci perintah.

Persyaratan

  • Izin root
  • Kernel linux dikompilasi dengan opsi “config_magic_sysrq” diaktifkan

Konvensi

  • # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root
    langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
  • $ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Perkenalan

Kombinasi kunci sysrq dapat digunakan untuk mengirim perintah langsung ke kernel linux dalam beberapa keadaan tertentu: kernel akan menanggapi perintah yang dikirim dengan kunci perintah Segera, kecuali itu benar -benar terkunci. Bermacam-macam kunci perintah mencapai tugas -tugas tertentu, dan mereka dapat digabungkan untuk mengembalikan sistem ke keadaan yang aman, atau untuk mendapatkan reboot bersih ketika tidak ada hal lain yang berfungsi: inilah yang bisa kita peroleh dengan Reisub urutan.

Dalam tutorial ini kita akan melihat cara mengaktifkan semua fungsi sysrq menggunakan instalasi standar Ubuntu 18.04 - Bionic Beaver sebagai dasar.

Kunci ajaib sysrq

Itu Sysrq Kombinasi kunci terdiri dari tiga tombol untuk ditekan bersama: Alt + Sysrq + Kunci Perintah. Anda mungkin bertanya -tanya apa itu Sysrq kunci di keyboard Anda. Dengan asumsi Anda menggunakan keyboard QWERTY, Sysrq kunci sesuai dengan mencetak kunci.

Akhirnya, tombol perintah adalah tombol pada keyboard yang ketika ditekan pada mode khusus ini, akan segera mengirim perintah ke kernel. Kami akan melihat beberapa kunci ini dan fungsi yang terkait dengannya sebentar lagi, tetapi sebelum melanjutkan kami harus yakin bahwa kernel yang kami gunakan telah dikompilasi dengan opsi yang diperlukan diaktifkan.



Opsi Kernel config_magic_sysrq

Seperti yang dikatakan di atas, untuk Sysrq Kombinasi kunci untuk bekerja, kernel pasti telah dibangun dengan Config_magic_sysrq opsi diaktifkan. Ini biasanya terjadi dalam semua distribusi utama, namun dapat bermanfaat untuk mengetahui cara memeriksa keadaannya. Inilah cara kita bisa melakukannya. Hal pertama yang ingin kami ketahui adalah versi dan nama kernel yang kami gunakan. Mendapatkan informasi ini sangat mudah, kami hanya menjalankan:

$ uname -r 4.13.0-25-Generic 

Seperti yang mungkin Anda ketahui, nama kamu Perintah digunakan untuk mengambil beberapa informasi sistem. Dalam hal ini kami menggunakannya dengan -R bendera, karena kami hanya ingin tahu tentang rilis kernel.Hasil dari perintah tersebut telah 4.13.0-25-Generic: Itulah nama kernel yang digunakan oleh sistem kami. Kami sekarang dapat melihat ke dalam /boot Direktori untuk file konfigurasi yang sesuai: File ini berisi semua opsi yang dikompilasi dengan kernel. Kami dapat mencari nilai yang digunakan Config_magic_sysrq di dalamnya:

$ ls /boot abi-4.13.0-25-Generic Initrd.IMG-4.13.0-25-generic memtest86+_multiboot.Bin Config-4.13.0-25-generic memtest86+.sistem bin.MAP-4.13.0-25-generic grub memtest86+.elf vmlinuz-4.13.0-25-Generic 

Seperti yang diharapkan file hadir: Config-4.13.0.25-generic adalah apa yang kami cari. Kami sekarang memiliki semua yang kami butuhkan, mari kita lakukan cek:

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

Seperti yang dapat Anda lihat di baris pertama, opsi Config_magic_sysrq memiliki y sebagai nilainya, artinya ditetapkan sebagai bawaan saat kernel dikonfigurasi. Apa perjanjian garis lainnya? Itu Config_magic_sysrq_default_enable Opsi tidak menentukan fungsi default yang diaktifkan: Nilai dinyatakan dalam hexadecimal formulir, dalam hal ini 0x01b6 yang sesuai dengan 438 dalam bentuk desimal.

Seperti yang akan kita lihat nanti dalam tutorial ini, nilai ini berarti bahwa sebagian besar fungsi diaktifkan secara default. Namun sebagian besar distribusi menonaktifkan doa mereka melalui kombinasi utama untuk alasan keamanan. Opsi ketiga tidak terlalu penting bagi kita sekarang: ini adalah tentang mengaktifkan Kunci sysrq lebih dari serial.



Memeriksa nilai sysrq saat ini

Sebagian besar distribusi menonaktifkan akses ke beberapa Sysrq Fungsi melalui kombinasi kunci untuk alasan keamanan (semua fungsi selalu tersedia jika dipanggil melalui /proc/sysrq-trigger dengan hak istimewa root). Untuk memeriksa fungsi apa yang tersedia dalam sistem kami, kami dapat menjalankan:

$ CAT/PROC/SYS/KERNEL/SYSRQ 176 

Perintah mengembalikan nilai 176. Bagaimana nilai ini diperoleh, dan apa yang diperjuangkan? Setiap nilai sesuai dengan fungsi tertentu, seperti yang dapat Anda lihat dalam daftar di bawah ini:

0 - Nonaktifkan Sysrq Sepenuhnya 1 - Mengaktifkan semua fungsi Sysrq 2 - Mengaktifkan kontrol Level Pencatatan Konsol 4 - Mengaktifkan Kontrol Keyboard (SAK, UNRAG) 8 - Mengaktifkan Debugging Dumps Proses dll. 16 - Aktifkan Perintah Sync 32 - Aktifkan Remount Read -only 64 - Mengaktifkan Pensinyalan Proses (Term, Kill, Oom -Kill) 128 - Izinkan Reboot/Poweroff 256 - Izinkan Penyelamat Semua Tugas RT 

Sedangkan nilai 0 menonaktifkan semua Sysrq fungsi dan nilai 1 Mengaktifkan semuanya, memberikan nilai yang lebih besar dari 1, kami dapat mengaktifkan yang spesifik. Seperti diverifikasi di atas, kami memiliki a Sysrq Nilai dari 176. Ini diperoleh dari jumlah 128 (yang memungkinkan reboot dan poweroff) + 32 (Kemampuan untuk menghidupkan kembali sistem file dalam mode read-only) + 16, yang memungkinkan perintah sinkronisasi. Dengan cara yang sama, nilai 438 diperoleh dari jumlah 2 + 4 + 16 + 32 + 128 + 256, sehingga semua fungsi yang sesuai diaktifkan.

Cara mengubah nilai sysrq

Kami sekarang tahu apa itu Sysrq Nilai adalah, tapi bagaimana kita bisa mengubahnya? Untuk segera mengubah nilai ini, kita hanya perlu menulis yang dicari ke /proc/sys/kernel/sysrq file, dengan menjalankan:

# echo "1">/proc/sys/kernel/sysrq

Dengan cara ini, perubahan akan segera efektif tetapi tidak akan selamat dari reboot. Bagaimana membuatnya gigih? Itu sangat sederhana. Solusi generik, yang berfungsi di semua distribusi linux, adalah menempatkan nilai inti.Sysrq dalam /etc/sysctl.D/99-SYSCTL.conf mengajukan:

# echo "kernel.sysrq = 1 ">> /etc /sysctl.D/99-SYSCTL.conf

Harap perhatikan bagaimana kami menggunakan >> Operator Pengalihan: Ini akan menambahkan teks ke file dan tidak akan mengganti pengaturan lain yang sudah bisa dikandungnya.



Urutan reisub

Dari semua urutan kunci perintah, Reisub mungkin yang paling terkenal. Untuk lebih mengingat urutan ini, ini sering digunakan sebagai akronim untuk "mengangkat gajah sangat membosankan". Apa yang dicapai urutan ini? Memegang Alt+Sysrq Key, Kami terus menekan tombol perintah secara berurutan, dan inilah yang terjadi:

Pertama R mengganti keyboard dari mentah ke Xlate Mode, kalau begitu, e mengirimkan a Sigterm sinyal untuk semua proses, sehingga mereka dapat ditutup dengan cara yang anggun jika kemungkinan. Setelah itu kami mengirim file Sigkill sinyal dengan menekan Saya, untuk mengakhiri proses yang tersisa yang tidak menanggapi sinyal sebelumnya. Dengan S Kami mencoba menyinkronkan semua sistem file yang dipasang dan menyiram semua perubahan dari cache ke disk segera. Dengan menggunakan u Kami menyampaikan kembali semua sistem file Baca saja mode, dan akhirnya dengan menekan B, Kami melakukan reboot sistem.

Itu Reisub Urutan dapat digunakan dalam situasi tertentu ketika sistem menjadi sangat tidak responsif, dan solusi lain tidak cukup untuk memperbaiki hal -hal. Kunci perintah yang menyusun urutan ini, namun, hanya sebagian dari yang tersedia: untuk daftar lengkap, Anda dapat melihat pada Sysrq Dokumentasi kernel.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Perintah Linux Dasar
  • Cara mencetak pohon direktori menggunakan linux
  • Unduh Linux
  • File Konfigurasi Linux: 30 Teratas Paling Penting
  • Instal Arch Linux di VMware Workstation
  • Distro linux terbaik untuk pengembang
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…