Kdump — это надежный инструмент в Linux, используемый для захвата дампов ядра (vmcore), когда система сталкивается с паникой ядра. Вот пошаговое руководство по установке и настройке Kdump на системе, основанной на CentOS:
Установка Kdump
-
Обновите репозиторий пакетов:
sudo yum update
-
Установите пакет Kdump:
sudo yum install kexec-tools crash
Настройка Kdump
-
Откройте конфигурационный файл Kdump в текстовом редакторе:
sudo nano /etc/kdump.conf
-
Настройте путь для vmcore. По умолчанию Kdump сохраняет дамп в /var/crash. Вы можете изменить этот путь, если необходимо.
Пример:
path /var/crash
-
Сохраните файл и закройте редактор.
Настройка Grub
-
Откройте конфигурационный файл Grub:
sudo nano /etc/default/grub
-
Добавьте или измените параметр crashkernel. Он определяет, сколько памяти зарезервировать для Kdump. Установите подходящее значение в зависимости от требований вашей системы.
Пример:
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet crashkernel=256M"
-
Не забудьте перегенерировать конфигурационный файл Grub:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Включение и запуск службы Kdump
-
Включите службу Kdump:
sudo systemctl enable kdump
-
Запустите службу Kdump:
sudo systemctl start kdump
-
Проверьте, что служба Kdump работает:
sudo systemctl status kdump
Тестирование Kdump
-
Провоцируем паник ядра:
Это можно сделать, выполнив:
sudo echo c > /proc/sysrq-trigger
Это симулирует панику ядра.
-
Проверьте наличие vmcore:
После перезагрузки системы проверьте, был ли сгенерирован файл vmcore в указанном пути (например, /var/crash).
Дополнительные советы:
-
Мониторинг свободного места на диске: Убедитесь, что у вас достаточно свободного места в каталоге, где Kdump сохраняет файлы vmcore.
-
Регулировка выделенной памяти: В зависимости от вашей системы вам может потребоваться отрегулировать значение crashkernel в конфигурации Grub.
-
Отладка с помощью инструмента Crash: Вы можете использовать инструмент crash для анализа vmcore. Установите его с помощью команды:
sudo yum install crash
Затем выполните команду для анализа конкретного vmcore:
crash /usr/lib/debug/usr/lib/modules/$(uname -r)/vmlinux /var/crash/...
Не забудьте сделать резервное копирование данных и файлов конфигурации перед внесением значительных изменений в систему. Если возникнут проблемы, обратитесь к документации вашей системы или получите помощь от профессионала или форума сообщества.