Учебники (How-To & F.A.Q)
   1713

Немного оптимизации и как обойтись без NetworkManager

Предыстория.
Мой старенький ноут грузится за 1 мин 30 сек. Даже для HDD это многовато. Проведя анализ по статье Ускорение загрузки, выяснил, что максимальное время загрузки происходит за счет монтирования /dev/loop* устройств snap пакетов. От них избавиться просто — найти замену из репозиториев или aur. Далее, сравнимые с ними по длительности загрузки оказались avahi и NetworkManager. С первым просто отключаем, не знаю кто им пользуется (почитал в гугле). А вот отказ от NetworkManager это уже история :
$ sudo systemctl disable NetworkManager
$ sudo systemctl enable systemd-networkd

Включаем resolved, который отвечает за настройку DNS серверов:
$ sudo systemctl enable systemd-resolved
$ sudo systemctl start systemd-resolved

Вы можете проверить состояние этих системных служб с помощью следующих команд:
$ systemctl status systemd-networkd
$ systemctl status systemd-resolved

Даем символическую ссылку на файл /etc/resolv.conf
$ sudo rm /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Не забываем удалить апплет сети из автозагрузки.
Осталось настроить динамическое получение ip адреса при загрузке:
$ sudo nano /etc/systemd/network/20-dhcp.network

Вставляем
[Match]
Name=enp*
[Network]
DHCP=yes

Сохраняем.
enp* значит, что сеть нужно подымать только для устройств, имена которых начинаются на enp. Cеть настроена. Но это только для сетевой карты. У кого нет Wi-Fi, можно на этом остановиться. У кого есть, читаем дальше. Некоторые настройки взяты отсюда:
Как заменить менеджер сетевых соединений NetworkManager на systemd-networkd в Linux
Как подключиться к WPA/WPA2 WiFi сети используя командную строку Linux.
Узнайте имя вашего WiFi устройства.
$ iw dev

Выхлоп команды будет что-то вроде:
phy#0
Interface wlp2s0
ifindex 3
type managed
…….

Выше видно, что система имеет одну физическую WiFi карту, обозначенную как phy#0. Имя устройства wlp2s0. Тип определяет режим работы беспроводного устройства. managed означает устройство беспроводной станции или клиент, который подключается к точке доступа.
Поднимаем адресацию. В моем случае, при испльзовании systemd-networkd — надо задать описание интерфейсу в /etc/systemd/network/. Первоисточник Подключение к WiFi без NetworkManager’a
Создаю конфиг /etc/systemd/network/25-wireless.network с следующим содержимым
[Match]
Name=wlp2s0
[Network]
DHCP=ipv4

Далее рестартанем systemd-networkd
$ sudo systemctl restart systemd-networkd

Убедитесь, что устройство активно.
$ ip link show wlp2s0

Вывод команды:
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000

Должно быть ‘UP‘ внутри скобок в первой строке вывода. Если это не так, то выполните
$ sudo ip link set wlp2s0 up

И еще раз проверте активизацию интерфейса.
Проверяем статус.
$ iw wlp2s0 link

Если вывод команды
Not connected.

то подключения к сети нет.
Сканируем сеть на предмет обнаружения доступных WiFi точек.
$ sudo iw wlp2s0 scan

Вывод команды приблизительно будет такой:
BSS 70:4d:7b:4e:3e:b8(on wlp2s0)
TSF: 4540713984369 usec (52d, 13:18:33)
freq: 2412
beacon interval: 100 TUs
capability: ESS Privacy ShortSlotTime APSD (0x0c11)
signal: -90.00 dBm
last seen: 187 ms ago
SSID: berligostr
Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0
DS Parameter set: channel 1
Extended supported rates: 6.0 12.0 24.0 48.0
………

В выводе две важные части: SSID и протокол безопасности (WPA / WPA2 vc WEP). SSID из приведенного выше примера это berligostr. Протокол безопасности РСН, который также называют WPA2. Протокол безопасности важен, потому что он определяет, какой инструмент вы используете для подключения к сети.
Подключаемся к WPA/WPA2 WiFi сети. Для этого выполняем два действия. Сначала вы генерируете конфигурационный файл для wpa_supplicant, который содержит pre-shared key («пароль») для WiFi сети.
Дальнейшие действия подсказала статья на вики WPA supplicant (Русский)
Cоздаем
$ sudo nano /etc/wpa_supplicant/example.conf

Вписываем туда
ctrl_interface=/run/wpa_supplicant
update_config=1

Сконфигурируйте для соединения с известной сетью
$ wpa_passphrase MYSSID passphrase

Выхлоп
network={
ssid="MYSSID"
#psk="passphrase"
psk=59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d
}

Полученный выхлоп вставляете в конец /etc/wpa_supplicant/example.conf
Где MYSSID — имя вашей Wi-Fi сети, passphrase — ваш пароль для подключения к ней
Подключаетесь к сети
$ sudo wpa_supplicant -B -i wlp2s0 -c /etc/wpa_supplicant/example.conf

Проверяете соединение
$ ping 8.8.8.8

Все работает? Тогда делаем автозапуск соединения при загрузке (systemd).
Делаем копию файла /etc/wpa_supplicant/example.conf и переименовываем его в /etc/wpa_supplicant/wpa_supplicant-wlp2s0.conf
Запускаем
$ systemctl enable [email protected]

Вот, собственно, и все.
Перезагрузка для проверки.
В результате всех манипуляций время загрузки уменьшилось до 35 сек. Неплохо так, в 3 раза для старенького бука.
ЗЫ. Скорее всего, более грамотные могут добавить что-то или немного оптимизировать клацание по клаве, буду благодарен за замечания и правки.

11 комментариев

avatar
годная статья, правда многабукаф, а покажи-ка теперь свой
systemd-analyze blame
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
C:\home\kostya> systemd-analyze blame
12.529s systemd-resolved.service
12.401s systemd-machined.service
12.396s systemd-logind.service
12.394s snapd.service
9.702s lvm2-monitor.service
7.015s dev-sda4.device
5.102s udisks2.service
3.848s systemd-networkd.service
3.805s systemd-tmpfiles-clean.service
3.166s accounts-daemon.service
3.140s tlp.service
2.523s polkit.service
2.055s lightdm.service
1.730s systemd-journal-flush.service
1.543s systemd-udevd.service
1.439s org.cups.cupsd.service
1.255s upower.service
1.185s var-lib-snapd-snap-core-8592.mount
1.065s var-lib-snapd-snap-core-8689.mount
1.047s systemd-tmpfiles-setup-dev.service
971ms var-lib-snapd-snap-core18-1705.mount
849ms var-lib-snapd-snap-core18-1668.mount
664ms systemd-rfkill.service
489ms systemd-modules-load.service
477ms systemd-journald.service
433ms systemd-tmpfiles-setup.service
432ms systemd-udev-trigger.service
359ms rtkit-daemon.service
341ms systemd-random-seed.service
322ms ufw.service
312ms systemd-sysctl.service
237ms [email protected]:acpi_video0.service
208ms systemd-binfmt.service
207ms dev-hugepages.mount
206ms dev-mqueue.mount
205ms sys-kernel-debug.mount
202ms geoclue.service
180ms kmod-static-nodes.service
171ms tmp.mount
161ms [email protected]
104ms systemd-remount-fs.service
94ms var-lib-systemd\x2dswap-swapfc-1.swap
68ms dev-loop0.device
65ms systemd-user-sessions.service
57ms [email protected]:intel_backlight.service
51ms systemd-update-utmp.service
32ms sys-kernel-config.mount
15ms proc-sys-fs-binfmt_misc.mount
14ms [email protected]
13ms wpa_supplicant.service
11ms dev-loop1.device
9ms [email protected]
6ms dev-loop2.device
5ms dev-loop3.device
5ms sys-fs-fuse-connections.mount
4ms snapd.socket
lines 28-56/56 (END)
?
родительский контроль или о том, как обиделись троли
0
avatar
У вас LVM 10 секунд загрузружается. Если не пользуйтесь то:
su

systemctl mask lvm2-monitor.socket
systemctl mask lvm2-monitor.service
systemctl mask lvm2-lvmpolld.socket
systemctl mask lvm2-lvmpolld.service
systemctl mask lvm2-lvmetad.socket
systemctl mask lvm2-lvmetad.service
systemctl mask lvm2-activation.service
systemctl mask lvm2-activation-early.service


Чтобы полностью отключить avahi надо:
sudo nano /etc/avahi/avahi-daemon.conf
и внести следующие изменения:
use-ipv4=no
use-ipv6=no

su

systemctl disable avahi-daemon
systemctl mask avahi-daemon
systemctl mask avahi-demon.service
systemctl mask avahi-demon.socket
systemctl mask avahi-dconfd.service
Последний раз редактировалось
+1
avatar
пока до гугла не добрался, подскажите, для чего этот сервис?)
?
родительский контроль или о том, как обиделись троли
0
avatar
lvm? Что то там с дисками/разделами. Если не знаете что это, то можно точно выключать. Самому надо создавать, автоматом не делается.
Последний раз редактировалось
0
avatar
теперь знаю LVM действительно можно отключить)
?
родительский контроль или о том, как обиделись троли
0
avatar
да и если все снап-пакеты заменил на пакеты из аур, то и его можно выпилить, еще +12 сек
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
+1
avatar
я не стал его совсем выпиливать, так как иногда приходится воспользоваться каким либо снап пакетом для проверки настройки пакета из аур, он там в паралель грузится с чем-то непомню, смотрел плот график и не мешает
?
родительский контроль или о том, как обиделись троли
0
avatar
сказанное выше не привело к уменьшению времени загрузки системы. но лишние процессы действительно ни к чему
?
родительский контроль или о том, как обиделись троли
0
avatar
Это всё snap не православный)
0
avatar
Удалил снап, скорости загрузки не прибавилось
Последний раз редактировалось
?
родительский контроль или о том, как обиделись троли
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.