Ускорение процесса загрузки дистрибутива Linux

Итак, вы успешно установили дистрибутив Linux Mint, Ubuntu или Fedora Workstation, провели его оптимизацию, но он все равно медленно загружается. Конечно же, можно просто смириться с этим, ведь время загрузки системы не является определяющим фактором при работе с ней, но если вы обладаете опытом работы с Linux и не боитесь использовать терминал, вы можете провести небольшую дополнительную оптимизацию процесса ее загрузки, заключающуюся в отключении неиспользуемых системных служб. Так как во всех упомянутых дистрибутивах с недавнего времени используется менеджер инициализации systemd, процесс их настройки будет практически идентичным. Различия в данном случае будут заключаться в наборе активированных по умолчанию системных служб.

1. Ознакомление со списком активированных системных служб

Для того, чтобы получить список активированных по умолчанию системных служб, следует открыть окно терминала и ввести в него следующую команду (используйте функции копирования/вставки, чтобы не ошибиться при вводе):

systemctl list-unit-files --type=service | grep enabled

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. В результате вы получите список активированных системных служб в следующем формате:

alex@notebook.lan ~ $ systemctl list-unit-files --type=service | grep enabled
accounts-daemon.service                    enabled
anacron-resume.service                     enabled
anacron.service                            enabled
autovt@.service                            enabled
avahi-daemon.service                       enabled
binfmt-support.service                     enabled
bluetooth.service                          enabled

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

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

2. Деактивация системных служб

Для деактивации системной службы следует использовать последовательность из двух команд:

sudo systemctl stop <имя службы>.service
sudo systemctl disable <имя службы>.service

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

sudo systemctl mask <имя службы>.service

Для того, чтобы проверить текущее состояние службы достаточно выполнить следующую команду:

systemctl status <имя службы>.service

В результате исполнения данной команды вы получите аналогичный вывод:

alex@notebook.lan ~ $ systemctl status ModemManager.service
● ModemManager.service - Modem Manager
   Loaded: loaded (/lib/systemd/system/ModemManager.service; enabled; vendor pre
   Active: active (running) since Вт 2016-11-22 20:26:40 MSK; 2h 17min ago
 Main PID: 908 (ModemManager)
    Tasks: 3 (limit: 512)
   CGroup: /system.slice/ModemManager.service
           └─908 /usr/sbin/ModemManager

Из данного вывода очевидно, что служба активирована (enabled во второй строке), а также активна и исполняется (active (running) в третьей строке).

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

3. Восстановление работоспособности системных служб

Если вы по ошибке деактивировали системную службу и желаете отменить это действие, вам придется выполнить ее повторную активацию с помощью следующей последовательности команд:

sudo systemctl unmask <имя службы>.service
sudo systemctl enable <имя службы>.service
sudo systemctl start <имя службы>.service

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

4. Системные службы, которые стоит деактивировать

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

A. Планировщики событий

  • anacron-resume.service
  • anacron.service
  • cron.service
  • atd.service

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

B. Службы поддержки печати

  • cups.service
  • cups-browsed.service

Данные службы ответственны за обнаружение и работу с принтерами. Если у вас нет  принтера, можете смело деактивровать их.

C. Служба поддержки широкополносных беспроводных устройств

  • ModemManager.service

Данная служба позволяет использовать 2G/3G/4G модемы. Если вы не используете подобные устройства, можете деактивирвать ее.

D. Службы поддержки логических виртуальных томов и RAID-массивов

  • lvm2-monitor.service
  • dmraid-activation.service
  • iscsi.service
  • mdmonitor.service
  • multipathd.service

Данные службы должны использоваться лишь в том случае, если при установке системы жесткие диски были использованы для создания логических виртуальных томов или RAID-массивов. Если вы не создавали их (что рекомендуется), вам не понадобятся все эти службы.

E. Служба поддержки устройств Bluetooth

  • bluetooth.service

Данная служба позволяет работать с устройствами Bluetooth. Если вы не используете таких устройств, можете деактивировать ее.

F. Службы отправки информации о системных сбоях

  • whoopsie.service
  • abrt-ccpp.service
  • abrt-oops.service
  • abrt-vmcore.service
  • abrt-xorg.service
  • abrtd.service

Данные службы предназначены для сбора информации о системных сбоях и ее передачи разработчикам дистрибутива. Если вы не желаете активно участвовать в процессе разработки дистрибутива, вы можете деактивировать данные службы.

G. Служба для людей с ограниченными возможностями

  • brltty.service

Данная служба предназначена для работы с устройствами, позволяющими использовать шрифт Брайля для слабовидящих людей. Если вы не пользуетесь такими устройствами, вы можете деактивировать ее.

H. Служба обнаружения сетевых устройств

  • avahi-daemon.service

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

I. Службы поддержки виртуальных машин

  • libvirtd.service
  • spice-vdagentd.service
  • vgauthd.service
  • vmtoolsd.service

Данные службы используются для работы с виртуальными машинами (обычно посредством приложения Boxes). Если вы не используете виртуальные машины для запуска операционных систем, вы можете деактивировать их.

После деактивации описанных системных служб следует перезагрузить компьютер. Теперь он должен немного быстрее загружаться.