Ich verwende Ubuntu 12.04 unter AWS / EC2 und habe eine große Anzahl von Hosts. Ich versuche, das Kernel-Dumping zu aktivieren, aber wenn ich eine Kernel-Panik simuliere, wird nirgendwo im Dateisystem eine .crash-Datei geschrieben.
Ich habe die Anweisungen hier befolgt: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe
Und die Dinge scheinen richtig eingerichtet zu sein:
# 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
Aber wenn ich ausführe:
# echo c | sudo tee /proc/sysrq-trigger
Das System wird wie erwartet neu gestartet, es wird jedoch keine Absturzdatei generiert. Was könnte ich falsch machen?
kernel-panic
crash
Stephan
quelle
quelle
/var/log/messages
?Antworten:
Stellen Sie sicher, dass das kdump-Initscript aktiviert ist. kexec_crash-Pakete basieren auf einem Initscript, um die normale Startroutine zu umgehen. Es bestimmt, ob der aktuelle Aufruf
init
von ein Absturz war, der durch einen Absturz ausgelöst wurde, und verwendet diesen, um zu bestimmen, ob der vorherige Ausführungsstatus vor einem echten Neustart gesichert werden muss oder nicht.Das heißt, wenn Ihr Testsystem nicht klein genug ist, um in 64 MB zu passen, ohne dass Sie bemerken, dass jeder zweite Absturz Ihren Gesamtspeicher reduziert, ist dies wahrscheinlich nicht der Fall.
Die Hauptsache, nach der Sie suchen müssen, ist, ob die zweite
init
feuert. Unmittelbar nach dem Absturz des Systems sollten auf der Konsole Initscript-Startsequenzen angezeigt werden, denen kein Neustart vorausgeht .init
Feuer, das System neu startet,init
beginnt wieder , und trotz all dies haben Sie noch keine Datei ... müssen Sie zu beheben , was auf der rechten Seite vor dem kdump Init - Skript Fragen der Neustart wird. Ironischerweise besteht eine der besseren Methoden darin, das Initscript zu deaktivieren und die Befehle von Hand auszuführen. (Achtung: Stellen Sie sicher, dass Ihre Dienste in den Speicher des Absturzkerns passen, bevor Sie dies versuchen!)quelle