Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 10 из 12

От GRUB до target: как загружается система

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 1 из 8 · на машине · 4 мин

Сколько шла загрузка

Чему научишься

  • Находить, сколько шла загрузка и каких юнитов она ждала, по systemd-analyze, blame и critical-chain.
  • Отличать порядок запуска (After=, Before=) от зависимости (Wants=, Requires=) и видеть, чего ждёт служба.
  • Подключать службу к загрузке в нужном порядке и проверять юнит командой systemd-analyze verify.

После обновления ядра сервер перезагрузили, и по SSH он ответил заметно позже обычного. Коллега спрашивает: сколько шла загрузка и кого она ждала? Перезагрузи свою машину — она устроена так же — и посмотри.

Упражнение · посмотреть

Посмотри на загрузку машины

Перезагрузи машину — sudo reboot: терминал покажет загрузку и снова войдёт. Потом посмотри, сколько шла загрузка, какие юниты запускались дольше всех и через какие юниты загрузка дошла до конца.

Сначала предположи

Загрузка шла дольше обычного. Что окажется первой строкой systemd-analyze blame — самым долгим юнитом?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Проверь себя 1 вопрос

systemd-analyze пишет multi-user.target reached after 12.450s in userspace, а первая строка critical-chain — multi-user.target @12.450s. Что из этого следует?

  • Конец загрузки и есть момент, когда загрузка дошла до цели: оба вывода называют его одним числом.

  • Сколько запускался юнит, critical-chain пишет после +. После @ — момент, когда юнит стал активен.

Оба числа — момент, когда загрузка дошла до multi-user.target.

Ubuntu 24.04
Загрузка…