Решение проблемы медленной загрузки Linux менее чем за 5 минут

Ваша система Linux загружается слишком долго? Медленный запуск может отнимать у вас время и испытывать ваше терпение. Хорошая новость заключается в том, что в Linux есть встроенные инструменты, которые помогут вам найти и устранить проблемы с медленной загрузкой.
В этой простой статье вы узнаете, как использовать команду systemd-analyze
для поиска служб, замедляющих работу вашей системы. Как только вы узнаете, что именно замедляет работу, вы сможете безопасно отключить ненужные службы, чтобы ускорить процесс загрузки Linux.
В следующих разделах вы узнаете:
- Что такое systemd-анализ,
- Проверьте время загрузки вашего Linux,
- Выясните, какие сервисы замедляют работу.
- Безопасное отключение ненужных служб,
- Ускорьте запуск вашего компьютера с Linux.
Никаких продвинутых навыков не требуется. Просто следуйте этим простым шагам, чтобы сократить время запуска Linux менее чем за 5 минут!
Почему моя Linux-система так медленно загружается?
В современных системах systemd (менеджер системы и служб) в Linux запускает все процессы при загрузке компьютера. Он запускает множество небольших программ, называемых службами. Некоторые из них завершают работу быстро, другим требуется больше времени.
Вот несколько распространённых причин, по которым ваша система Linux загружается медленно:
- Слишком много служб запускается при загрузке (например, Bluetooth, принтеры, VPN).
- Задержки в работе сети (ожидание подключения к интернету). Некоторые сервисы ожидают подключения к сети, прежде чем продолжить работу.
- Медленное оборудование (старые жесткие диски, мало оперативной памяти).
Это лишь некоторые из того, что приходит мне на ум. Конечно, существует множество причин (как программных, так и аппаратных), которые могут вызывать замедление запуска.
Мы сосредоточимся на устранении замедлений, связанных с программным обеспечением, с помощью systemd-analyze
, инструмента, встроенного в большинство систем Linux.
Что такое systemd-analyze
?
systemd-analyze
— это инструмент командной строки, который помогает оценить производительность загрузки вашей системы. Он работает с systemd, программным обеспечением, которое управляет запуском системы, службами и завершением работы. Этот инструмент показывает, сколько времени занимают различные этапы процесса загрузки, и может помочь выявить задержки.
Она включает в себя несколько подкоманд. В этом руководстве мы рассмотрим использование следующих подкоманд:
time
Показывает общее время загрузки и время, затраченное на работу встроенного ПО, загрузчика, ядра и пользовательского пространства.blame
: Перечисляет сервисы в порядке убывания времени, затраченного на их запуск.critical-chain
: Показывает, какие службы задержали другие.plot
: Создает визуальную диаграмму процесса загрузки в формате SVG (полезно для более детального изучения).
Шаг 1. Проверьте время загрузки
Загрузка Linux осуществляется в три ключевых этапа:
- Фаза прошивки (BIOS/UEFI)
- Инициализация ядра
- Запуск пользовательского пространства (где происходит большинство задержек)
Выполните эту команду, чтобы увидеть, сколько времени ушло на каждый этап:
systemd-analyze time
Вы увидите что-то вроде этого:
Startup finished in 17.855s (firmware) + 7.320s (loader) + 4.004s (kernel) + 12.167s (userspace) = 41.347s graphical.target reached after 12.153s in userspace.
- Время ядра = время, необходимое для настройки оборудования (обычно быстро)
- Время пользовательского пространства = время загрузки приложений и сервисов (где происходят замедления)
Если ваше время в пользовательском пространстве превышает 10 секунд, вы, скорее всего, можете его ускорить.
Шаг 2. Найдите самые медленные сервисы
Команда systemd-analyze blame
показывает, сколько времени занимает запуск каждой службы. Это поможет вам определить, какие из них замедляют работу.
Выполните эту команду, чтобы узнать, какие службы занимают больше всего времени:
systemd-analyze blame
Эта команда покажет, сколько времени потребовалось для запуска каждой службы.
Пример вывода (сначала самые медленные службы):
4.316s NetworkManager-wait-online.service 1.629s fwupd.service 1.612s networking.service 1.609s systemd-modules-load.service 1.174s ifupdown2-pre.service 1.164s systemd-udev-settle.service 669ms postfix@-.service 661ms dev-nvme0n1p2.device ...
Как вы можете видеть на выходе, более длинные цепочки находятся в верхней части.
Внимательно проверьте каждый сервис. Если вы не знаете, что делает конкретный сервис, просто выполните быстрый поиск в интернете, чтобы узнать о его назначении. Если вы считаете, что какой-то сервис вам не нужен, вы можете его отключить.
Глубокий Анализ
Вы также можете использовать команду systemd-analyze critical-chain
для отображения того, какие службы задерживают другие службы:
systemd-analyze critical-chain
Это поможет вам найти сервисы, которые блокируют запуск других сервисов.
Если вы хотите создать наглядную временную шкалу для процесса загрузки Linux, выполните следующие действия:
systemd-analyze plot > boot.svg
Для базового анализа просто запустите blame
и выявите очевидные замедления. Для глубокого анализа используйте critical-chain
или plot
.
Отобразить Десятку самых медленных сервисов
По умолчанию команда systemd-analyze
будет отображать результаты по страницам. Вы можете перемещаться по результатам, нажимая клавишу ENTER.
Если вы хотите отобразить определённое количество служб, вы можете передать результат в команду head. Например, чтобы отобразить десять самых медленных служб, выполните:
systemd-analyze blame | head -n 10
Шаг 3. Отключите ненужные службы, чтобы устранить проблемы с медленной загрузкой Linux
Вы нашли службы, которые вызывают медленную загрузку Linux. Что теперь? Вы можете либо отключить, либо оптимизировать эти проблемные службы.
Некоторые службы (например, NetworkManager-wait-online
) ожидают подключения к Интернету до завершения загрузки. Если вам это не нужно, просто отключите эту функцию с помощью команды:
systemd-analyze blame | head -n 10
Если вы не используете Bluetooth, вы можете отключить его:
sudo systemctl disable NetworkManager-wait-online.service
Другие распространенные службы, которые вы можете отключить:
cups.service
(если вы не пользуетесь принтерами)snapd.service
(если вы не используете приложения Snap)
Отключайте службы только в том случае, если вы знаете, что они не нужны.
Предупреждение: не отключайте критически важные службы, такие как dbus
, systemd-logind
, или network-manager
.
Шаг 4: Проверьте Свои улучшения
После внесения изменений перезагрузите компьютер и запустите:
systemd-analyze time systemd-analyze blame
Сравните время загрузки с предыдущим. Вы должны заметить заметное ускорение!
Бонус: ещё несколько способов ускорить загрузку Linux
- Используйте SSD (если вы все еще используете жесткий диск)
- Сократите количество запускаемых приложений (установите флажок
Startup Applications
в настройках рабочего стола) - Попробуйте более лёгкую версию Linux (например, Lubuntu вместо Ubuntu).
Выводы
Команда systemd-analyze blame
— это простой способ узнать, почему ваша система Linux медленно загружается. С помощью этой команды вы можете легко найти и устранить проблемы с медленной загрузкой в Linux. Для большинства пользователей отключение всего 1–2 ненужных служб сокращает время загрузки вдвое.
Редактор: AndreyEx