systemd-analyze анализ большого времени загрузки ядра

Вопрос или проблема

У меня проблема с очень медленным временем загрузки на моем компьютере с Ubuntu (фактически Linux Mint). Проблема началась, когда я использовал Ubuntu 20.04. После этого время прошло, и я изменил ОС на Linux Mint, затем обновил до Mint 21 и, наконец, до Mint 22.

Вот вывод команды systemd-analyze:

Загрузка завершена за 21.747s (прошивка) + 4.887s (загрузчик) + 3мин 2.016s (ядро) + 23.275s (пространство пользователей) = 3мин 51.927s 

Если я правильно понимаю, команды systemd-analyze blame и systemd-analyze critical-chain здесь достаточно бесполезны, так как большая часть времени тратится на загрузку ядра, а не на пространство пользователей. После некоторых поисков в интернете я изменил свою GRUB_CMDLINE_LINUX_DEFAULT на:

GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1 ibt=off nosplash debug=all"

Если я правильно понимаю, параметр debug=all должен создать некоторые логи, которые позволят мне найти источник проблемы. Но я не смог найти название файла лога, в который эта информация должна записываться.

Так что вопрос заключается в том, как выяснить, что заставляет ядро загружаться так медленно? Правильно ли я использую параметр debug=all, и если да, то где искать создаваемый лог-файл? Существуют ли другие инструменты, которые позволят мне отладить такую медленную загрузку ядра?

Ответ или решение

Для диагностики медленной загрузки вашего Linux Mint, в частности из-за длительного времени загрузки ядра, вы уже сделали несколько правильных шагов. Рассмотрим, как более тщательно подойти к этой проблеме.

Анализ проблем с загрузкой ядра

  1. Ваша текущая ситуация:
    Вы предоставили результат команды systemd-analyze, который показывает, что загрузка ядра занимает почти 3 минуты, что аномально долго. Вы правы, в данном случае systemd-analyze blame и systemd-analyze critical-chain совсем не подойдут, так как они лучше отображают время загрузки пользователей.

  2. Использование параметра загрузки debug=all:
    Параметр debug=all делает так, чтобы ядро записывало более детальную информацию о процессе загрузки. Однако эта информация не всегда хранится в одном месте.

    Логи загрузки ядра обычно можно найти в следующем месте:

    • /var/log/boot.log: здесь хранится информация о загрузке системы.
    • journalctl -b: вывод журналов systemd для текущей загрузки. Вы можете использовать journalctl -b -1 для просмотра предыдущих загрузок.

    Следует отметить, что debug=all может производить обширные логи. Если их слишком много, могут возникнуть проблемы с анализом. Вы можете попробовать более целенаправленные параметры, такие как quiet для уменьшения вывода, но начните с debug=all для получения максимально возможной информации.

  3. Дополнительные параметры загрузки:
    Возможно, вам стоит поэкспериментировать с другими параметрами загрузки, такими как:

    • nomodeset: отключает режимы работы видеодрайвера, что может помочь, если проблемы связаны с графикой (например, с драйверами NVIDIA).
    • noapic и nolapic: отключают дополнительные функции планирования прерываний, которые могут вызывать проблемы на некотором оборудовании.
  4. Анализ файлов журнала:
    После загрузки системы вам нужно будет просмотреть файлы журнала, чтобы определить, что именно вызывает задержку. Используйте следующие команды:

    dmesg | less

    или

    journalctl -b | less

    С помощью dmesg вы сможете проанализировать сообщения ядра, чтобы найти возможные проблемы с оборудованием, драйверами или инициализацией устройств.

  5. Другие инструменты для диагностики:

    • bootchart: инструмент, который позволяет графически визуализировать загрузку системы и определить, какие процессы занимают больше всего времени.
    • systemd-analyze plot: эта команда создаст график загрузки системы в формате SVG, который может помочь вам увидеть, где происходит задержка.
  6. Обновление компонентов:
    Убедитесь, что все ваши драйвера, особенно видеодрайвера вместе с ядром, обновлены до последних версий. Это может иметь большое значение для улучшения времени загрузки.

Заключение

Надеюсь, вышеуказанные шаги помогут вам понять и устранить причину медленной загрузки вашего ядра. Подходите к этому процессу систематически: начинайте с анализа журналов, ищите возможные связи между задержками и запущенными драйверами или устройствами, и обязательно проверяйте обновления компонентов системы. Если проблема останется нерешенной, может потребоваться обратиться за специализированной помощью на форумы или каналы поддержки Linux Mint.

Оцените материал
Добавить комментарий

Капча загружается...