ATRIBUSI :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key yang didasarkan pada karya asli oleh
Kredit
Ditulis oleh Mydraal
Diperbarui oleh Adam Sulmicki
Diperbarui oleh Jeremy M. Dolan 2001/01/28 10:15:59
Ditambahkan ke oleh Crutcher Dunnavant
https://askubuntu.com/a/11194/102029 mneiss memberikan tautan untuk LaunchPad.
Isi
Apa itu sysrq?
Mengapa RESIUB (O) tidak berfungsi?
1 Bagaimana saya mendapatkan sysrq untuk berperilaku seperti yang saya inginkan?
1.1 Apa kunci SysRq ajaib?
1.2 Bagaimana saya mengaktifkan kunci SysRq ajaib?
1.3 Bagaimana cara menggunakan kunci SysRq ajaib?
1.4 Apa kunci 'perintah'?
1.5 Oke, jadi untuk apa saya menggunakannya?
1.6 Pemecahan masalah
1.6.1 Menggantung sebelum skrip init dijalankan
1.6.2 Terkadang SysRq tampaknya 'macet' setelah menggunakannya, apa yang bisa saya lakukan?
1.6.3 Saya menekan SysRq, tetapi sepertinya tidak ada yang terjadi, apa yang salah?
1.6.4 Saya ingin menambahkan peristiwa kunci SysRQ ke modul, bagaimana cara kerjanya?
1.6.5 Kesimpulan
1.6.6 LAMPIRAN
Catatan.
Anda mungkin menemukan menggunakan Ctrl+ Funtuk menggunakan Daftar Isi bermanfaat.
Apa itu SysRq?
Metode yang umum dikenal dan digunakan untuk mendapatkan kembali penggunaan mesin setelah membeku atau mengunci dengan membatasi risiko kerusakan disk yang menyebabkan kerusakan file sistem atau hilangnya data adalah dengan menggunakan
Alt+ SysRq+ rdan kemudian sdan kemudian edan kemudian idan kemudian udan kemudian bdan kemudian dan / atau jika diperlukan ( o)
Ini belum berfungsi seperti yang diharapkan bagi banyak orang (yaitu saya dan James) melalui semua rasa dari> = 8.04LTS hingga rilis 13.04 saat ini.
Mengapa RESIUB (O) tidak berfungsi?
Pertimbangkan deskripsi bug ini yang ditemukan di LaunchPad Bug 194676 :
Deskripsi masalah:
Secara default SysRq diaktifkan secara default pada sistem desktop Ubuntu yang sangat berharga ketika sistem terkunci dan Anda ingin menghentikannya selembut mungkin atau men-debug masalahnya. Namun banyak orang terkejut bahwa Anda juga dapat memintanya untuk membuang isi memori saat ini ke konsol (atau dmesg) walaupun hanya dari keyboard.
openSUSE menetapkan bitmask default 176 pada SysRq-nya yang secara default membatasi Anda untuk melakukan sinkronisasi, reboot dan "remount read-only". Ini menghentikan orang menggunakan sysrq secara default untuk memeriksa memori yang terdengar masuk akal.
Pengembang Ubuntu melihat perlunya melakukan sesuatu tentang hal ini dan solusi terbaik mengingat kemungkinan komplikasi dari pengamatan yang disebutkan adalah dengan menerapkan bitmask 176 sysrq secara default membuat kebutuhan input pengguna untuk mengatur sysrq sesuai keinginan mereka. Bitmask 176 hanya memungkinkan S, U, Byang sync, remount partisi dipasang dan reboot.
Membaca laporan bug lengkap dan komentar akan menyoroti beberapa opsi yang mungkin berlaku untuk sistem Anda.
Pengaruh akumulatif dari berbagai perangkat keras, kernel, keyboard, dan bitmask berarti sysrq berperilaku berbeda untuk orang yang berbeda.
Salah satu metode untuk mendapatkan output txt mengenai bagaimana sistem Anda menggunakan sysrq adalah dengan menerapkan perintah sysrq dari tty (ketika sistem tidak mengalami kunci / macet). Melakukan hal ini mungkin mengindikasikan sysrq belum sepenuhnya dinonaktifkan tetapi menggunakan bitmask 176.
Mencari / proc / sys / kernel / sysrq pada desktop Desktop amd64 13.04 amd64 dan instalasi desktop amd64 13.04 mengonfirmasi bahwa default saat ini adalah meninggalkan sysrq di bitmask 176.
Jika sysrq berhasil untuk Anda; mungkin ada baiknya bertanya, "Jika saya tidak mengubah pengaturan 10-magic-sysrq, lalu siapa?"
1 Bagaimana saya mendapatkan sysrq untuk berperilaku seperti yang saya inginkan?
Berikut ini adalah copy dan paste yang diedit dari https://fedoraproject.org/wiki/QA/Sysrq .
1.1 Apa kunci SysRq ajaib?
Ini adalah kombo kunci 'ajaib' yang dapat Anda tekan yang akan direspon oleh kernel terlepas dari apa pun yang dilakukannya, kecuali jika benar-benar terkunci.
1.2 Bagaimana saya mengaktifkan kunci SysRq ajaib?
sysrq dibangun ke dalam kernel Ubuntu tetapi dinonaktifkan saat boot, secara default, menggunakan 10-magic-sysrq.conf.
Untuk mengaktifkannya kembali saat boot, Anda harus mengedit file /etc/sysctl.d/10-magic-sysrq.conf. yaitu membatalkan komentar pada baris ini akan mengaktifkan semua fungsi sysrq:
# 1 - enable all functions of sysrq
Ketika menjalankan kernel dengan SysRq dikompilasi, / proc / sys / kernel / sysrq mengontrol fungsi-fungsi yang diizinkan untuk dipanggil melalui kunci SysRq. Berikut adalah daftar nilai yang mungkin ada di / proc / sys / kernel / sysrq:
0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
176 - allow only sync, reboot and "remount read-only"
256 - allow nicing of all RT tasks
Anda dapat mengatur nilai dalam file dengan perintah berikut.
echo "number" >/proc/sys/kernel/sysrq
Jadi untuk sepenuhnya mengaktifkannya.
echo "1" > /proc/sys/kernel/sysrq
Atau juga bisa mengaktifkannya dengan melakukan.
sysctl -w kernel.sysrq=1
Catatan.
Nilai / proc / sys / kernel / sysrq hanya memengaruhi doa melalui keyboard. Doa operasi apa pun melalui / proc / sysrq-trigger selalu diizinkan (oleh pengguna dengan hak istimewa admin-lihat di bawah).
1.3 Bagaimana cara menggunakan kunci SysRq ajaib?
Ubuntu Desktop
Anda menekan tombol kombo Alt+ SysRq+ command key.
NB- Lihat catatan di bagian ini dan di bagian Pemecahan Masalah untuk pengaturan default lain yang mungkin untuk sistem dan keyboard lain.
Dimungkinkan untuk mengatur karakter apa pun yang Anda pilih: Semua Arsitektur
Tulis karakter ke / proc / sysrq-trigger:
echo t > /proc/sysrq-trigger
akan mengatur Tberperilaku sebagai SysRq
Catatan.
Beberapa keyboard mungkin tidak memiliki kunci yang berlabel SysRq. The SysRqkey juga dikenal sebagai Print Screenkunci. Juga beberapa keyboard tidak dapat menangani begitu banyak tombol yang ditekan pada saat bersamaan, jadi Anda mungkin lebih beruntung dengan Alt+ SysRq- SysRqlalu tekan command keylalu lepaskan semuanya. Lihat penulisan lengkap QA yang menjadi dasar panduan ini pada https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F untuk informasi lebih lanjut mengenai hal ini.
1.4 Apa kunci 'perintah'?
'b' - Will immediately reboot the system without syncing or unmounting your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'd' - Shows all locks that are held.
'e' - Send a SIGTERM to all processes, except for init.
'f' - Will call oom_kill to kill a memory hog process.
'g' - Used by kgdb on ppc and sh platforms.
'h' - Will display help (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.
Catatan.
Lihat komentar penting di bawah ini di bagian SAK.
'l' - Shows a stack backtrace for all active CPUs.
'm' - Will dump current memory info to your console.
'n' - Used to make RT tasks nice-able
'o' - Will shut your system off (if configured and supported).
'p' - Will dump the current registers and flags to your console.
'q' - Will dump a list of all running timers.
'r' - Turns off keyboard raw mode and sets it to XLATE.
's' - Will attempt to sync all mounted filesystems.
't' - Will dump a list of current tasks and their information to your console.
'u' - Will attempt to remount all mounted filesystems read-only.
'v' - Dumps Voyager SMP processor info to your console.
'w' - Dumps tasks that are in uninterruptable (blocked) state.
'x' - Used by xmon interface on ppc/powerpc platforms.
'0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)
1.5 Oke, jadi untuk apa saya menggunakannya?
Un raw sangat berguna saat X server atau program svgalib Anda mogok.
Sa k(Secure Access Key) berguna ketika Anda ingin memastikan tidak ada program trojan yang berjalan di konsol yang dapat mengambil kata sandi Anda ketika Anda mencoba masuk. Ini akan mematikan semua program pada konsol yang diberikan, sehingga membiarkan Anda memastikan bahwa prompt masuk yang Anda lihat sebenarnya adalah dari init, bukan program trojan. Orang lain menganggapnya berguna sebagai (System Attention Key) yang berguna ketika Anda ingin keluar dari sebuah program yang tidak akan membiarkan Anda berganti konsol. (Misalnya, X atau program svgalib.)
Catatan.
Dalam bentuk aslinya, ini bukan SAK sejati seperti yang ada di sistem yang sesuai dengan c2, dan tidak boleh salah seperti itu.
Re boot bagus ketika Anda tidak dapat mematikan.
Catatan.
Secara umum dianggap praktik yang baik untuk umelakukan mount terlebih dahulu
Crashdump dapat digunakan untuk secara manual memicu crashdump ketika sistem digantung.
Catatan.
Kernel perlu dibangun dengan CONFIG_KEXEC diaktifkan!
Sinkronisasi sangat bagus ketika sistem Anda dikunci, memungkinkan Anda untuk smemasang cakram dan tentu saja akan mengurangi kemungkinan kehilangan data dan fscking.
Peringatan
Sinkronisasi belum terjadi sampai Anda melihat "OK" dan "Selesai" muncul di layar. (Jika kernel benar-benar dalam perselisihan, Anda mungkin tidak pernah mendapatkan pesan OK atau Done.
Umount pada dasarnya berguna dengan cara yang sama seperti Sync.
Loglevels 0- 9berguna ketika konsol Anda dibanjiri pesan-pesan kernel yang tidak ingin Anda lihat. Memilih 0akan mencegah semua kecuali pesan inti yang paling mendesak dari mencapai konsol Anda.
Catatan.
Mereka masih akan login jika syslogd / klogd masih hidup
T erm dan k ill berguna jika Anda memiliki semacam proses pelarian Anda tidak dapat membunuh dengan cara lain, terutama jika itu melahirkan proses lain.
Catatan.
Ketika mengalami panik kernel yang buruk lakukan Alt+ Sysrq+ elalu Alt+ Sysrq+ ulalu Alt+ Sysrq+ idan akhirnya Alt+ Sysrq+b
1.6 Pemecahan masalah
1.6.1 Menggantung sebelum skrip init dijalankan
Jika mesin menggantung sebelum skrip init dijalankan, boot dengan sysrq_always_enabled=1
1.6.2 Terkadang SysRq tampaknya 'macet' setelah menggunakannya, apa yang bisa saya lakukan?
Mengetuk shift,, altdan controldi kedua sisi keyboard, dan menekan urutan sysrq yang tidak valid lagi akan memperbaiki masalah. (yaitu, sesuatu seperti alt+ sysrq+ z).
Beralih ke konsol virtual lain ( Ctrl+ Alt+ Fn1- Fn6) dan kemudian kembali lagi Ctrl+ Alt+ Fn7juga akan membantu.
1.6.3 Saya memukul SysRq, tetapi sepertinya tidak ada yang terjadi, apa yang salah?
Ada beberapa keyboard yang mengirim scancode berbeda SysRqdari 0x54 yang telah ditentukan sebelumnya. Jadi, jika SysRqtidak bekerja di luar kotak untuk keyboard tertentu, jalankan showkey -s
untuk mengetahui urutan scancode yang tepat. Kemudian gunakan setkeycodes <sequence> 84
untuk menentukan urutan ini ke SysRqkode biasa (84 adalah desimal untuk 0x54). Mungkin ini yang terbaik untuk menempatkan perintah ini dalam skrip boot.
Peringatan
Anda keluar showkey
dengan tidak mengetik apa pun selama sepuluh detik.
1.6.4 Saya ingin menambahkan SysRqacara utama ke modul, bagaimana cara kerjanya?
Untuk mendaftarkan fungsi dasar dengan tabel, Anda harus terlebih dahulu menyertakan header include/linux/sysrq.h
, ini akan menentukan semua yang Anda butuhkan. Selanjutnya, Anda harus membuat struct sysrq_key_op, dan mengisinya dengan ...
Fungsi pengendali tombol yang akan Anda gunakan.
String help_msg, yang akan mencetak ketika SysRQ mencetak bantuan
String action_msg, yang akan mencetak tepat sebelum handler Anda dipanggil. Pawang Anda harus menyesuaikan dengan prototipe di 'sysrq.h'
Setelah sysrq_key_op dibuat, Anda dapat memanggil fungsi kernel register_sysrq_key (kunci int, struct sysrq_key_op * op_p); ini akan mendaftarkan operasi yang ditunjukkan oleh 'op_p' at table key 'key', jika slot di tabel kosong. Pada waktu modul unload, Anda harus memanggil fungsi unregister_sysrq_key (kunci int, struct sysrq_key_op * op_p), yang akan menghapus op kunci yang ditunjuk oleh 'op_p' dari kunci 'key', jika dan hanya jika saat ini terdaftar di sana slot, menempatkan. Ini dalam kasus slot telah ditimpa sejak Anda mendaftarkannya.
Sistem Sihir SysRqbekerja dengan mendaftarkan operasi utama terhadap tabel pencarian op kunci, yang didefinisikan dalam 'driver / char / sysrq.c'. Tabel kunci ini memiliki sejumlah operasi yang terdaftar di dalamnya pada waktu kompilasi, tetapi bisa berubah-ubah, dan 2 fungsi diekspor untuk antarmuka ke sana register_sysrq_key dan unregister_sysrq_key. Tentu saja, jangan pernah meninggalkan pointer yang tidak valid di tabel. yaitu; ketika modul Anda yang bernama register_sysrq_key () keluar, ia harus memanggil unregister_sysrq_key () untuk membersihkan entri tabel kunci sysrq yang digunakannya.
Catatan.
Pointer kosong di tabel selalu aman.
Jika karena alasan tertentu Anda merasa perlu memanggil fungsi handle_sysrq dari dalam fungsi yang dipanggil oleh handle_sysrq, Anda harus sadar bahwa Anda sedang dalam kunci (Anda juga berada dalam penangan interrupt, yang artinya jangan tidur!), Jadi Anda harus memanggil __handle_sysrq_nolock sebagai gantinya.
1.6.5 Kesimpulan
Gunakan Alt+ SysRq+ Sdan kemudian Udan kemudian Buntuk menyinkronkan, mencoba untuk mengount ulang semua sistem file yang terpasang dan kemudian reboot jika diperlukan. Tanpa mengubah apa pun menjadi file sistem.
Jika Alt+ SysRq+ Btidak mem-boot ulang sistem, mungkin perlu mengedit /etc/sysctl.d/10-magic-sysrq.conf untuk memungkinkan upaya menerapkan Alt+ SysRq+ B(atau / dan Osetelah mengedit / proc / sys / kernel / sysrq bitmask untuk mengaktifkan reboot dan mematikan sistem dengan menggunakan sysrq Anda dapat melakukan ini dengan salah satu metode yang dijelaskan di atas.
1.6.6 LAMPIRAN:
Lihat juga - http://ubuntuforums.org/showthread.php?t=617349 dan https://www.kernel.org/doc/Documentation/sysrq.txt
Bagi mereka yang memiliki masalah keyboard Apple MacBook mengenai sysrq lihat: https://help.ubuntu.com/community/AppleKeyboard dan https://bugs.launchpad.net/mactel-support/+bug/262408
Info menarik yang relatif- Setelah menonton episode 17 08 2013 dari program BBC "Klik" dan artikel "cyberwarfare" benar-benar menarik perhatian saya. Program juga memiliki Klik situs web sendiri jika Anda tidak dapat menonton program. FAWC