Cara Mengaktifkan Semua Fungsi SYSRQ di Linux
- 3477
- 151
- Mr. Ramon Runolfsson
Objektif
Ketahui Cara Membolehkan Fungsi SYSRQ, dan Cara Menggunakan Memohon Mereka Dengan Menggunakan Kekunci Perintah.
Keperluan
- Keizinan akar
- Kernel linux disusun dengan pilihan "config_magic_sysrq"
Konvensyen
- # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
secara langsung sebagai pengguna akar atau dengan menggunakansudo
perintah - $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak
Pengenalan
Gabungan Kunci SYSRQ boleh digunakan untuk menghantar arahan terus ke kernel Linux dalam beberapa keadaan tertentu: kernel akan bertindak balas terhadap arahan yang dihantar dengan Kekunci Perintah
segera, melainkan jika ia dikunci sepenuhnya. Pelbagai Kekunci Perintah
mencapai tugas tertentu, dan mereka boleh digabungkan untuk memulihkan sistem ke keadaan yang selamat, atau untuk mendapatkan reboot yang bersih apabila tidak ada yang lain berfungsi: inilah yang dapat kita perolehi dengan Reisub
urutan.
Dalam tutorial ini, kita akan melihat bagaimana untuk membolehkan semua fungsi SYSRQ menggunakan pemasangan standard Ubuntu 18.04 - Beaver Bionic
sebagai asas.
Kunci sihir sysrq
The Sysrq
Gabungan kunci terdiri daripada tiga kunci yang akan ditekan bersama: Kunci Perintah Alt + Sysrq +
. Anda mungkin tertanya -tanya apa itu Sysrq
Kunci pada papan kekunci anda. Dengan mengandaikan anda menggunakan papan kekunci QWERTY, Sysrq
kunci sepadan dengan Cetak
kunci.
Akhirnya, kunci arahan adalah kunci pada papan kekunci yang apabila ditekan pada mod khas ini, akan segera menghantar arahan ke kernel. Kami akan melihat beberapa kunci dan fungsi yang berkaitan dengannya dalam seketika, tetapi sebelum meneruskan, kita mesti memastikan bahawa kernel yang kami gunakan telah disusun dengan pilihan yang diperlukan.
Pilihan kernel config_magic_sysrq
Seperti yang dikatakan di atas, untuk Sysrq
Gabungan utama untuk berfungsi, kernel mesti dibina dengan Config_magic_sysrq
pilihan diaktifkan. Ini biasanya berlaku dalam semua pengagihan utama, namun ia berguna untuk mengetahui cara memeriksa keadaannya. Inilah cara kita dapat melakukannya. Perkara pertama yang ingin kita ketahui ialah versi dan nama kernel yang kita gunakan. Mendapatkan maklumat ini sangat mudah, kami hanya menjalankan:
$ uname -r 4.13.0-25-generik
Seperti yang anda tahu, uname
Perintah digunakan untuk mendapatkan beberapa maklumat sistem. Dalam kes ini kami menggunakannya dengan -r
bendera, seperti yang kita hanya ingin tahu mengenai pelepasan kernel
.Hasil perintah telah 4.13.0-25-generik
: itulah nama kernel yang digunakan oleh sistem kami. Kita sekarang boleh melihat di dalam /boot
direktori untuk fail konfigurasi yang sepadan: Fail ini mengandungi semua pilihan kernel yang telah disusun dengan. Kita boleh mencari nilai yang digunakan untuk Config_magic_sysrq
di dalamnya:
$ ls /boot abi-4.13.0-25-generik initrd.IMG-4.13.0-25-generik memtest86+_multiboot.Bin Config-4.13.0-25-generik Memtest86+.sistem bin.Peta-4.13.0-25-generik grub memtest86+.ELF VMLINUZ-4.13.0-25-generik
Seperti yang dijangkakan fail hadir: config-4.13.0.25-generik
adalah apa yang kita cari. Kami kini mempunyai semua yang kami perlukan, 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 anda lihat pada baris pertama, pilihannya Config_magic_sysrq
mempunyai y
sebagai nilainya, yang bermaksud bahawa ia ditetapkan sebagai terbina dalam ketika kernel dikonfigurasikan. Apa yang dimaksudkan oleh baris lain? The Config_magic_sysrq_default_enable
pilihan menentukan fungsi lalai yang didayakan: Nilai dinyatakan dalam Hexadecimal
bentuk, dalam kes ini 0x01b6
yang sesuai dengan 438
dalam bentuk perpuluhan.
Seperti yang akan kita lihat kemudian dalam tutorial ini, nilai ini bermaksud bahawa kebanyakan fungsi diaktifkan secara lalai. Walau bagaimanapun, kebanyakan pengagihan melumpuhkan penyerahan mereka melalui kombinasi utama untuk alasan keselamatan. Pilihan ketiga tidak begitu penting bagi kita sekarang: ini adalah mengenai membolehkan Kunci Sysrq
lebih dari siri.
Memeriksa nilai sysrq semasa
Majoriti pengagihan melumpuhkan akses kepada beberapa Sysrq
fungsi melalui kombinasi utama untuk alasan keselamatan (semua fungsi bagaimanapun sentiasa tersedia jika digunakan melalui /Proc/Sysrq-Trigger
dengan keistimewaan akar). Untuk memeriksa apakah fungsi yang ada dalam sistem kami, kami hanya dapat menjalankan:
$ kucing/proc/sys/kernel/sysrq 176
Perintah itu mengembalikan nilai 176
. Bagaimana nilai ini diperoleh, dan apakah yang dipertikaikan? Setiap nilai sepadan dengan fungsi tertentu, seperti yang anda lihat dalam senarai di bawah:
0 - Lumpuhkan SYSRQ sepenuhnya 1 - Dayakan semua fungsi SYSRQ 2 - Dayakan Kawalan Konsol Pembalakan Tahap 4 - Dayakan Kawalan Papan Kekunci (SAK, UNRAW) 8 - Membolehkan Dumpging Dumps of Processes dll dll. 16 - Dayakan Perintah Sync 32 - Dayakan Remount Read -Only 64 - Dayakan Isyarat Proses (Istilah, Membunuh, Oom -Kill) 128 - Benarkan Reboot/Poweroff 256 - Benarkan Nicing semua tugas RT
Walaupun nilai 0
melumpuhkan semua Sysrq
fungsi dan nilai 1
membolehkan mereka semua, memberikan nilai yang lebih besar daripada 1, kita dapat membolehkan yang tertentu. Seperti yang disahkan di atas, kami mempunyai Sysrq
nilai 176
. Ini diperoleh dari jumlah 128
(yang membolehkan reboot dan poweroff) + 32
(Keupayaan untuk mengulangi sistem fail dalam mod baca sahaja) + 16
, yang membolehkan perintah penyegerakan. Dengan cara yang sama, nilai 438
diperoleh dari jumlah 2 + 4 + 16 + 32 + 128 + 256, jadi semua fungsi yang sepadan diaktifkan.
Cara menukar nilai sysrq
Kita sekarang tahu apa yang Sysrq
nilai adalah, tetapi bagaimana kita boleh mengubahnya? Untuk segera mengubah nilai ini, kita hanya perlu menulis yang dikehendaki /proc/sys/kernel/sysrq
fail, dengan menjalankan:
# echo "1">/proc/sys/kernel/sysrq
Dengan cara ini, perubahan itu akan segera berkesan tetapi tidak akan bertahan dengan reboot. Cara membuatnya berterusan? Itu sangat sederhana. Penyelesaian generik, yang berfungsi dalam semua pengagihan Linux, adalah untuk meletakkan nilai kernel.Sysrq
di dalam /etc/sysctl.D/99-SYSCTL.Conf
Fail:
# echo "kernel.sysrq = 1 ">> /etc /sysctl.D/99-SYSCTL.Conf
Sila perhatikan bagaimana kami menggunakan >>
Operator Pengalihan: Ini akan memasukkan teks ke fail dan tidak akan mengatasi tetapan lain yang sudah ada.
Urutan reisub
Dari semua urutan utama arahan, Reisub
mungkin yang paling terkenal. Untuk lebih ingat urutan ini, ia sering digunakan sebagai akronim untuk "menaikkan gajah sangat membosankan". Apa yang dilakukan oleh urutan ini? Memegang Kunci alt+sysrq
, Kami meneruskan menekan kekunci perintah dalam urutan, dan inilah yang berlaku:
Pertama sekali r
menukar papan kekunci dari mentah
ke Xlate
Mod, kemudian, e
Menghantar a Sigterm
isyarat kepada semua proses, supaya mereka dapat ditutup dengan cara yang anggun jika mungkin. Selepas itu kami menghantar a Sigkill
isyarat dengan menekan i
, untuk menamatkan proses yang tinggal yang tidak memberi respons kepada isyarat sebelumnya. Dengan s
Kami cuba menyegerakkan semua sistem fail yang dipasang dan siram semua perubahan dari cache ke cakera dengan segera. Dengan menggunakan u
Kami mengulangi semua sistem fail di baca sahaja
mod, dan akhirnya dengan menekan b
, Kami melakukan reboot sistem.
The Reisub
urutan boleh digunakan dalam situasi tertentu apabila sistem menjadi sangat tidak bertindak balas, dan penyelesaian lain tidak mencukupi untuk memperbaiki perkara. Kekunci arahan yang menyusun urutan ini, bagaimanapun, hanya subset yang tersedia: untuk senarai lengkap, anda boleh melihat Sysrq
Dokumentasi kernel.
Tutorial Linux Berkaitan:
- Perkara yang hendak dipasang di Ubuntu 20.04
- Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Perintah Linux Asas
- Cara mencetak pokok direktori menggunakan linux
- Muat turun linux
- Fail Konfigurasi Linux: 30 teratas yang paling penting
- Pasang Arch Linux di Workstation VMware
- Distro linux terbaik untuk pemaju
- Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
- « Pengenalan kepada tahap log kernel Linux
- Cara Menyiapkan Amule dan Mengawalnya Melalui Antara Muka Web pada Raspberry Pi »