Как включить аварийный дамп ядра в Debian Linux

Служба аварийного дампа ядра Debian Linux настраивает вашу машину на сброс всего, что находится в RAM (памяти) на диск, когда выполнение ядра Linux остановлено или аварийно завершено. Например, такие события, как паника ядра, NMI, MCE, аппаратный сбой могут вызвать такие проблемы. Как системный администратор или разработчик, вы должны отследить проблему. Чтобы предотвратить повторение подобных проблем, вы можете проверить содержимое скопированной памяти с диска. На этой странице объясняется, как установить, включить и настроить аварийный дамп ядра Linux в Debian Linux версии 10/11.

Пакеты, необходимые для включения аварийного дампа ядра Debian Linux

  • crash : Утилита отладки ядра Linux
  • kdump-tools : Скрипты и инструменты Debian для автоматизации kdump (аварийных дампов Linux)
  • kexec-tools : Инструменты для поддержки быстрых перезагрузок kexec
  • linux-image-$(uname -r)-dbg : Символы отладки для текущего запущенного образа ядра Linux. Например, linux-image-5.10.0-11-amd64.
  • makedumpfile : Программа, которая может извлечь подмножество памяти, доступной либо через /dev/mem, либо через /proc/vmcore для crashdumps. Можно получить образы памяти без лишней ненужной информации, такой как нулевые страницы, программы пользовательского пространства и многое другое.

Включение аварийного дампа ядра в Debian

Процедура установки и включения аварийного дампа ядра в Debian Linux 10/11 выглядит следующим образом:

Откройте приложение терминала.

Для удалённого сервера используйте команду ssh. Например:

Введите команду apt command/apt-get для установки пакетов аварийного дампа ядра:

sudo apt install kdump-tools crash kexec-tools makedumpfile linux-image-$(uname -r)-dbg

После этого появится следующее диалоговое окно:

Should kexec-tools handle reboots sysvinit only

Если вы выберете эту опцию, перезагрузка системы будет вызывать перезагрузку ядра, загруженного kexec, вместо того, чтобы проходить через полный процесс загрузчика системы.

Убедитесь, что вы выбрали Да, чтобы подключить kexec-tools для всех перезагрузок. После этого на экране появится еще одно приглашение:

Если вы выберете эту опцию, механизм kdump-tools будет включен. Для включения параметра ядра crashkernel по-прежнему требуется перезагрузка.

Если вы выберете эту опцию, механизм kdump-tools будет включен. Для включения параметра ядра crashkernel все равно потребуется перезагрузка

Здесь также необходимо выбрать Yes, чтобы включить kdump-tools.

Если по ошибке вы выбрали No, то вы можете включить опцию Yes, просто выполнив следующие две команды от имени пользователя root:

Проверить, что следующие параметры установлены в true и включены, можно с помощью команды grep:

Проверка настроек

Давайте посмотрим текущее состояние kdump, введите:

sudo kdump-config show

Приведенный выше результат указывает на то, что аварийный дамп Linux не включен. Чтобы включить его, перезагрузите Linux-машину, запустите:

После перезагрузки выполните следующую команду, и теперь вы должны увидеть подтверждение:

Включен ли аварийный дамп на моей машине Debian Linux
Этот результат с картинки выше говорит о том, что вы найдёте дампы ядра в каталоге /var/crash, и система готова к kdump.

Как проверить, что аварийное ядро настроено?

Выполните команду cat:

И затем найдите параметр crashkernel:

Значение crashkernel=384M-:128M означает:

  • Если RAM меньше 384M, то ничего не резервируйте.
  • Если размер оперативной памяти находится между 386M и 2G (эксклюзив), то зарезервируйте 64M памяти.
  • Если объем оперативной памяти больше 2G, зарезервируйте 128M ram для дампов.

Вы также можете использовать команду dmesg вместе с командой grep для просмотра запрашиваемой области памяти для ядра kdump:

sudo dmesg | grep -i crash

Как протестировать механизм аварийного дампа Debian Linux

 Выполнение этих примеров приведёт к краху вашего компьютера Debian Linux. Тестирование механизма аварийного сброса ВСЕГДА приводит к перезагрузке системы Debian и может привести к потере данных в некоторых ситуациях, если система находится под большой нагрузкой. Поэтому убедитесь, что система простаивает. nixCraft или автор не несут ответственности за потерю данных.

Убедитесь, что kernel.sysrq установлен в 1. Вот как проверить и установить его:

Если значение не равно 1, то:

Отредактируйте файл /etc/sysctl.d/1000-custom.conf и добавьте следующую конфигурацию:

Выполните любую из следующих команд с помощью команды echo:

ИЛИ

Просмотр аварийных дампов

Используйте команду cd и войдите в папку /var/carsh, а затем перечислите файлы с помощью команды ls:

Вот файлы дампов аварий внутри каталога 202303180744/:

Просмотр аварийных дампов

Вы можете прочитать файл дампа, такой как dump.202303180744, с помощью команды crash, используя отладочное ядро из /usr/lib/debug/vmlinux* следующим образом:

Команда uname используется для получения текущей версии ядра:

Просмотр аварийного дампа в Linux с помощью команды crash
Просмотр аварийного дампа в Linux с помощью команды crash

Хотите прочитать и файл dmesg.202303180744? Попробуйте воспользоваться командой more, командой less, командой cat или текстовым редактором по вашему выбору, включая команду egrep/grep:

Заключение

В этом руководстве объясняется, как установить и включить дамп ядра Linux в Debian Linux версий 10 и 11. Однако обсуждение команды crash выходит за рамки данного руководства. Вам потребуется некоторый опыт работы сисадмином. Однако, если вам нужен учебник и примеры команды crash, дайте мне знать в комментариях ниже. Я настоятельно рекомендую прочитать следующие страницы руководства с помощью команды man или help

Понравилась статья? Поделиться с друзьями:
Добавить комментарий