Панели ядра для отладки

Я запускаю Ubuntu 12.04 на AWS / EC2 и имею большое количество хостов, которые поднимаются вверх. Я пытаюсь включить демпинг ядра, но когда я имитирую панику ядра, нет файла .crash, написанного где угодно в файловой системе.

Я выполнил следующие инструкции: https://wiki.ubuntu.com/Kernel/CrashdumpRecipe

И все выглядит правильно:

# 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 

Но когда я исполняю:

 # echo c | sudo tee /proc/sysrq-trigger 

Система перезагружается, как и ожидалось, но никакого файла сбоя любого типа не генерируется. Что я могу сделать неправильно?

One Solution collect form web for “Панели ядра для отладки”

Убедитесь, что параметр kdump initscript включен. Пакеты kexec_crash полагаются на initscript, чтобы обойти обычную процедуру запуска. Он определяет, был ли текущий вызов init одним из тех, который был вызван сбоем, и использует это для определения того, нужно ли сбросить предыдущее запущенное состояние перед выполнением истинной перезагрузки.

Тем не менее, если ваша система тестирования недостаточно мала, чтобы вписаться в 64Mb, не заметив, что каждый другой крах уменьшает вашу общую память, это, вероятно, не то, что происходит.

Главное, что вам нужно искать, – это запуск второго init . Сразу же после сбоя системы вы должны увидеть последовательности запуска initscript на консоли, которым не предшествует перезагрузка .

  • Если этого не происходит, ваше аварийное ядро ​​вообще не стреляет.
  • Если это происходит, и вы попадаете в подсказку, ваш initscript не выполняет свою работу. (либо он не включен, либо не обнаруживает состояние после аварии)
  • Если это происходит, запускается второй init , система перезагружается, init запускается снова , и, несмотря на все это, у вас по-прежнему нет файла … вам нужно устранить, что происходит, прямо перед тем, как перезагрузить компьютер. Как ни странно, одним из лучших методов является отключение initscript и запуск команд вручную. (осторожно: убедитесь, что ваши службы могут вписаться в память ядра аварии, прежде чем пытаться это сделать!)
Interesting Posts
Linux и Unix - лучшая ОС в мире.