Cara mengaktifkan semua fungsi sysrq di linux
- 3012
- 192
- Jermaine Mohr
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 menggunakansudo
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…
- « Pengantar level log Kernel Linux
- Cara mengatur amule dan mengendalikannya melalui antarmuka web pada raspberry pi »