Я следовал указаниям здесь, на вики-справке по Ubuntu , для моего сервера Ubuntu 12.04.2, работающего в VMware Fusion 5, и все выглядит хорошо, поэтому я делаю echo c > /proc/sysrq-trigger
как root. Он паникует ядро, как и ожидалось, а затем зависает после распечатки нескольких следов стека.
Я подождал несколько минут, чтобы убедиться, что все записи на диск (для аварийного дампа) завершены, и перезапустил виртуальную машину. Когда я снова вхожу, ls /var/crash
не показывает файлов! Есть идеи, как заставить его работать или он работает вообще?
Возможно, проблема в том, что у вас слишком мало оперативной памяти. Он должен быть больше 2 ГБ, в противном случае вы должны изменить параметры GRUB, чтобы принять crashkernel=128M
и проверить
cat /sys/kernel/kexec_crash_loaded
Это должно быть 1
.
Причина, по которой это не работает должным образом, была задокументирована более трех лет назад: см. Эту страницу вики Ubuntu
О системах с & lt ; = 2 ГБ ОЗУ, мы не зарезервируем достаточно памяти для установки initrd ядра аварии. Это приведет к панике в аварийном ядре.
blockquote>См. также эти отчеты об ошибках для справки # 785394 и # 1235616
Обходной путь:
Чтобы устранить эту проблему, установите
GRUB_CMDLINE_LINUX="crashkernel=128M"
в
/etc/default/grub
. н.б .: Вы не можете поместить эту опцию вGRUB_CMDLINE_DEFAULT
, потому что настройка в/etc/grub.d/10_linux
имеет приоритет над ней.Чтобы «навсегда» устранить проблему, отредактируйте `/etc/grub.d/10_linux и измените строку
GRUB_CMDLINE_EXTRA="$GRUB_CMDLINE_EXTRA crashkernel=384M-2G:64M,2G-:128M"
на
GRUB_CMDLINE_EXTRA="$GRUB_CMDLINE_EXTRA crashkernel=128M"