Saya menjalankan Ubuntu 12,04 pada AWS / EC2 dan memiliki sejumlah besar host akan naik. Saya mencoba untuk mengaktifkan dumping kernel, tetapi ketika saya mensimulasikan panik kernel, tidak ada file .crash yang ditulis di mana saja pada sistem file.
Saya mengikuti instruksi di sini: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe
Dan hal-hal tampaknya diatur dengan benar:
# cat /proc/cmdline
root=LABEL=cloudimg-rootfs ro console=hvc0 crashkernel=384M-2G:64M,2G-:128M
# dmesg |grep crash
[ 0.000000] Command line: root=LABEL=cloudimg-rootfs ro console=hvc0 crashkernel=384M-2G:64M,2G-:128M
[ 0.000000] Reserving 64MB of memory at 832MB for crashkernel (System RAM: 1708MB)
[ 0.000000] Kernel command line: root=LABEL=cloudimg-rootfs ro console=hvc0 crashkernel=384M-2G:64M,2G-:128M
# cat /sys/kernel/kexec_crash_loaded
1
Tetapi ketika saya mengeksekusi:
# echo c | sudo tee /proc/sysrq-trigger
Sistem reboot seperti yang diharapkan, tetapi tidak ada file 'crash' apa pun yang dihasilkan. Apa yang mungkin saya lakukan salah?
kernel-panic
crash
Stephan
sumber
sumber
/var/log/messages
?Jawaban:
Pastikan skrip init kdump diaktifkan. paket kexec_crash bergantung pada skrip init untuk mem-bypass rutin startup normal. Ini menentukan apakah pemanggilan saat ini
init
adalah salah satu yang dipanggil oleh crash, dan menggunakannya untuk menentukan apakah negara yang berjalan sebelumnya perlu dibuang sebelum melakukan reboot yang benar.Yang mengatakan, jika sistem pengujian Anda tidak cukup kecil untuk masuk ke 64Mb tanpa Anda perhatikan bahwa setiap kerusakan lainnya mengurangi total memori Anda, ini mungkin bukan yang sedang terjadi.
Hal utama yang perlu Anda cari adalah apakah yang kedua
init
menembak. Segera setelah Anda crash sistem, Anda akan melihat urutan startup skrip init pada konsol yang tidak didahului oleh reboot .init
kebakaran kedua , sistem reboot,init
dimulai lagi , dan meskipun semua ini Anda masih tidak memiliki file ... Anda perlu memecahkan masalah apa yang terjadi tepat sebelum skrip ineddash kdump mengeluarkan reboot. Ironisnya, salah satu metode yang lebih baik adalah menonaktifkan initcript dan menjalankan perintah dengan tangan. (hati-hati: pastikan layanan Anda dapat masuk ke dalam memori crash kernel sebelum mencoba ini!)sumber