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

Немного оптимизации и как обойтись без 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 карту, обозначенную как phy0. Имя устройства 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 wpa_supplicant@wlp2s0

Вот, собственно, и все.
Перезагрузка для проверки.
В результате всех манипуляций время загрузки уменьшилось до 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 systemd-backlight@backlight: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 user@1000.service
104ms systemd-remount-fs.service
94ms var-lib-systemd\x2dswap-swapfc-1.swap
68ms dev-loop0.device
65ms systemd-user-sessions.service
57ms systemd-backlight@backlight:intel_backlight.service
51ms systemd-update-utmp.service
32ms sys-kernel-config.mount
15ms proc-sys-fs-binfmt_misc.mount
14ms user-runtime-dir@1000.service
13ms wpa_supplicant.service
11ms dev-loop1.device
9ms modprobe@drm.service
6ms dev-loop2.device
5ms dev-loop3.device
5ms sys-fs-fuse-connections.mount
4ms snapd.socket
lines 28-56/56 (END)
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
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
пока до гугла не добрался, подскажите, для чего этот сервис?)
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
0
avatar
lvm? Что то там с дисками/разделами. Если не знаете что это, то можно точно выключать. Самому надо создавать, автоматом не делается.
Последний раз редактировалось
0
avatar
теперь знаю LVM действительно можно отключить)
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
0
avatar
да и если все снап-пакеты заменил на пакеты из аур, то и его можно выпилить, еще +12 сек
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
+1
avatar
я не стал его совсем выпиливать, так как иногда приходится воспользоваться каким либо снап пакетом для проверки настройки пакета из аур, он там в паралель грузится с чем-то непомню, смотрел плот график и не мешает
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
0
avatar
сказанное выше не привело к уменьшению времени загрузки системы. но лишние процессы действительно ни к чему
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
0
avatar
Это всё snap не православный)
0
avatar
Удалил снап, скорости загрузки не прибавилось
Последний раз редактировалось
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
0
Автор топика запретил добавлять комментарии