Показаны сообщения с ярлыком ядро. Показать все сообщения
Показаны сообщения с ярлыком ядро. Показать все сообщения

19 нояб. 2013 г.

Анализ падения ядра в Linux (kernel crash dump)

Завалить ядро линукс не так то и просто (если не преднамеренно, конечно), но такое случается... не все баги выловлены, а новые "фишки" приносят новые баги.

Итак, для сохранения дампа при падении ядра в Linux или kernel panic, необходимо настроить сервис kdump и установить несколько дополнительных пакетов.
Сам механизм представляет собой дополнительное маленькое ядро, смысл существования которого состоит в том, чтобы после падения основного ядра системы, перехватить управление, сохранить дамп и перезагрузить систему.

Для Fedora Linux устанавливается всё хозяйство просто командой:

yum install --enablerepo=fedora-debuginfo --enablerepo=updates-debuginfo kexec-tools crash kernel-debuginfo

А вот для Oracle Linux 6.4 чуть сложнее:

yum install crash -y
export DLP="https://oss.oracle.com/ol6/debuginfo"
wget ${DLP}/kernel-uek-debuginfo-`uname -r`.rpm 
wget ${DLP}/kernel-uek-debuginfo-common-`uname -r`.rpm
rpm -Uhv kernel-uek-debuginfo-`uname -r`.rpm kernel-uek-debuginfo-common-`uname -r`.rpm

Команды приведены для текущего ядра системы. Если нужны пакеты для других версий ядра, то нужно указать версию вместо `uname -r`.

Далее, необходимо добавить в конфиг загрузчика (/boot/grub/grub.conf или /boot/efi/EFI/redhat/grub.conf - зависит от того, используется UEFI при загрузке сервера или нет): параметр ядра "crashkernel=128M". Цифра указывает, сколько ОЗУ резервируется под резервное ядро. Через @ можно указать так же смещение в памяти, если необходимо. Например 128M@16 - зарезервирует 128 Мб ОЗУ начиная с физического адреса 0x01000000 (16MB).