Как определить причину перезагрузки в Kali Linux?

Опубликовано: 19 Сентября, 2022

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

Нередко обнаруживается, что система Linux перезагружается неожиданно или без видимой причины. Поиск и устранение основной причины может помочь предотвратить будущие проблемы и неожиданные простои.

Изучите журнал systemd

Если у вас нет постоянного журнала systemd, вы не сможете сохранить постоянный журнал на диске, и ваши журналы будут потеряны при перезагрузке. Вы можете сделать это, отредактировав /etc/systemd/journald.conf или вручную создав каталог, следуя приведенным ниже инструкциям:

$ sudo mkdir /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal 2>/dev/null
$ sudo systemctl -s SIGUSR1 kill systemd-journald

После этого вы можете перезагрузить машину, если хотите записать в журнал более одной перезагруженной записи, хотя это и не нужно.

Чтобы получить список зарегистрированных загрузок из журнала, используйте команду ниже:

journalctl --list-boots

Как видите, в списке указано несколько ботинок. Используйте следующую команду, чтобы перейти к конкретной перезагрузке:

journalctl -b {num} -n

Изучите системные сообщения

Вы также можете связать системные сообщения с перезагрузкой, которую хотите диагностировать.

Журналы находятся в /var/log/messages в системах CentOS/RHEL . Он регистрируется в /var/log/Syslog в системах Ubuntu/Debian . Чтобы отфильтровать или обнаружить определенные данные, просто используйте команду tail или ваш любимый текстовый редактор.

Такие записи указывают на выключение/перезагрузку , инициированную администратором или пользователем root , как видно из приведенных ниже журналов. Эти сообщения различаются в зависимости от ОС и того, как инициируется перезагрузка/выключение , но проверка системных журналов всегда дает полезную информацию, даже если она не всегда достаточно точна, чтобы точно определить причину.

nano  /var/log/syslog

Ниже приведен пример команды, которую можно использовать для фильтрации системных журналов:

sudo grep -iv ‘: starting|kernel: .*: Power Button|watching system buttons|Stopped Cleaning Up|Started Crash recovery kernel’

 /var/log/messages /var/log/syslog /var/log/apcupsd*

 | grep -iw ‘recover[a-z]*|power[a-z]*|shut[a-z ]*down|rsyslogd|ups’

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

Изучите время перезагрузки

Вы можете использовать команды who и last , чтобы узнать, когда система была перезагружена.

who -b

last -x | head | tac

Проверьте проверенные журналы

Это фантастическое место для проверки различных событий с помощью инструмента ausearch для систем, использующих auditd . Чтобы проверить последние два элемента в журналах аудита, используйте приведенную ниже команду.

sudo ausearch -i -m system_boot,system_shutdown | tail -4

Будет сообщено о двух последних отключениях или перезагрузках. Все должно быть в порядке, если это сообщает о SYSTEM_SHUTDOWN , за которым следует SYSTEM_BOOT . Если он возвращает две или более строки SYSTEM_BOOT подряд или только одну строку SYSTEM_BOOT , то система не завершает работу корректно. Ниже приведен пример типичного вывода:

—-

type=SYSTEM_SHUTDOWN msg=audit(Monday 28 June 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=’ comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success’

—-

type=SYSTEM_BOOT msg=audit(Monday 28 June 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=’ comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success’

В приведенном выше выводе перечислены два последовательных сообщения SYSTEM_BOOT , которые могут свидетельствовать о некорректном завершении работы, если они связаны с системными журналами.

Вывод

Одной команды или одного файла журнала не всегда может быть достаточно для определения причины перезагрузки Linux . В результате знание команд и журналов, которые записывают системные события, всегда полезно и может сократить время, необходимое для обнаружения основной причины.

Приведенные выше примеры могут помочь вам приступить к устранению неполадок. Вы можете быть уверены, что знаете, что произошло и как перезагрузилась ваша система, если вы используете сочетание таких инструментов и журналов.