Panic Kernel tidak membuang file log

8

Saya sedang bermain game di Steam dan tiba-tiba saya mendapat panik kernel. Saya mematikan komputer secara manual dan mem-boot kembali ke Linux Mint 17.1 (Cinnamon) 64-bit, dan pergi untuk memeriksa file log saya /var/log/, tetapi saya tidak dapat menemukan referensi atau jenis pesan apa pun yang berkaitan dengan panik kernel yang terjadi.

Aneh mengapa tidak pernah membuang inti atau bahkan membuat catatan tentang itu ke file log. Bagaimana saya bisa memastikan bahwa inti selalu dibuang jika panik kernel terjadi lagi? Tidak masuk akal mengapa tidak ada yang dicatat ketika panik kernel terjadi. Melihat-lihat di Google, orang menyarankan untuk membaca /var/log/dmesg, /var/log/syslog, /var/log/kern.log, /var/log/Xorg.logdll ... tapi tidak ada. Bahkan dalam .Xsession-errorsfile juga.

Berikut adalah beberapa foto layar:
Panik Kernel (image2) Panik Kernel (image1)

Saya selalu bisa mengambil foto layar kapan dan jika itu terjadi lagi, tapi saya hanya ingin memastikan bahwa saya bisa mendapatkannya untuk membuang inti dan membuat file log pada kernel panik.

G-Man Mengatakan 'Reinstate Monica'
sumber
1
sudahkah kamu memeriksanya /var/crash?
Archemar
@Archemar Tidak ada file atau direktori seperti itu.
Kemungkinan besar Anda tidak akan pernah menemukan informasi tentang kegagalan kernel pada .Xsession-errors.
G-Man Mengatakan 'Reinstate Monica'

Jawaban:

6

Untuk memastikan bahwa mesin Anda menghasilkan file "inti" ketika terjadi kegagalan kernel, Anda harus mengonfirmasi pengaturan "sysctl" mesin Anda.

IMO, berikut ini harus menjadi pengaturan (minimal) di /etc/sysctl.conf:

kernel.core_pattern = /var/crash/core.%t.%p
kernel.panic=10
kernel.unknown_nmi_panic=1

Jalankan sysctl -psetelah membuat perubahan pada /etc/sysctl.conffile. Anda mungkin harus juga mkdir /var/crashjika itu belum ada.

Anda dapat menguji di atas dengan membuat dump manual menggunakan SysRqkunci (kombinasi kunci untuk dump core adalah Alt+ SysRq+ C)

Shubham
sumber
Ini tampaknya menjadi awal dari sesuatu. Saya harus menulis ini sebagai entri baru ke sysctl karena tidak ada di file. Saya melakukan Alt+SysRq+Cdengan tombol tetapi tidak melakukan apa-apa, itu hanya layar flash. Saya juga menggunakan Laptop sehingga kuncinya mungkin berbeda. Saya memang mencoba fn+SysRq+Ctetapi itu melakukan hal yang sama seperti sebelumnya.
Silakan bagikan keluaran dari "cat / proc / sys / kernel / sysrq". Mungkin saja sysrq dinonaktifkan pada mesin Anda. Lihat: kernel.org/doc/Documentation/sysrq.txt untuk lebih jelasnya
shubham
output yang memberi saya 176
Edit file /etc/sysctl.conf untuk memasukkan baris -> kernel.sysrq = 1
shubham
1
@ user94959 Apakah ini berfungsi untuk Anda?
shubham
2

Ketika kernel panik, itu berarti ada yang tidak beres di kernel. Menulis file log dan dump inti memerlukan menggunakan driver untuk perangkat penyimpanan blok (disk Anda) dan sistem file (ruang harus dialokasikan, dan ukuran file log harus diperbarui). Mengingat layanan yang disediakan oleh kernel diperlukan untuk menulis file, dan kernel tahu itu dalam keadaan rusak, itu tidak dapat menulis file atau mencatat apa pun, karena itu tidak dalam keadaan aman lagi, jadi melakukan operasi apa pun dapat memperburuk keadaan dan dapat merusak / menghancurkan sistem file Anda. Jadi Anda tidak bisa membuat kernel menulis ke log atau membuang dump inti ketika panik.

Sekarang yang dapat Anda lakukan, jika Anda mau, adalah mengkonfigurasi sistem dengan crash handling kernel, yang merupakan kernel kedua yang dimuat ke dalam memori yang kontrolnya dapat ditransfer ke jika kernel utama crash. Karena kernel itu memiliki driver dan semacamnya, itu akan dapat menyimpan crash dump untuk Anda. Ini bukan setup yang sangat umum, dan terutama digunakan untuk sistem high-end yang membutuhkan ketersediaan tinggi dan di mana crash adalah masalah yang sangat serius yang harus diselidiki.

Lihat misalnya opsi crashkernel di Kernel Crash Dump di ubuntu.com. (Perhatikan bahwa halaman ini mengatakan bahwa mekanisme dump crash kernel diaktifkan secara default, dimulai dengan Ubuntu 16.04.)

Saya percaya bahwa sistem sebenarnya menyimpan dump ke memori yang dicadangkan dan kemudian reboot, dan kernel menyimpan memori yang dicadangkan ke disk pada boot berikutnya (karena kernel yang baru boot berada dalam keadaan waras dan dapat melakukan itu).

Len Sorensen
sumber
Halaman di ubuntu.com menjelaskan mekanisme sedikit berbeda: ia mengatakan bahwa kernel reboot sendiri ke area memori yang dicadangkan, sehingga memori yang telah digunakan sebelum gangguan (yaitu, memori yang ingin Anda buang) akan tetap utuh. Dan saya percaya bahwa itu tidak eksotis seperti yang Anda buat (seperti sekarang diaktifkan secara default).
G-Man Mengatakan 'Reinstate Monica'