Arch schneller booten

Ein kleiner Tipp am Rande für alle die Arch Linux nutzen (oder eine andere Linux Distribution mit systemd) und die Bootzeit mit einfachen mitteln etwas verkürzen möchten.

Kurze Analyse der Bootzeit

# systemd-analyze

Startup finished in 1.875s (kernel) + 33.148s (userspace) = 35.024s

# systemd-analyze blame

31.219s NetworkManager-wait-online.service
997ms NetworkManager.service
934ms avahi-daemon.service
837ms systemd-logind.service
235ms systemd-journal-flush.service
152ms alsa-restore.service
110ms systemd-
87ms polkit.service
86ms systemd-vconsole-setup.service
80ms systemd-static-nodes.service
73ms udisks2.service
73ms dev-hugepages.mount
69ms dev-mqueue.mount
66ms systemd-tmpfiles-setup.service
66ms systemd-remount-fs.service
60ms systemd-modules-load.service
46ms tmp.mount
35ms colord.service
31ms systemd-fsck@dev-sda6.service
20ms systemd-user-sessions.service
14ms systemd-random-seed-load.service
14ms wpa_supplicant.service
13ms upower.service
10ms home.mount
9ms systemd-udevd.service
9ms ntpd.service
7ms sys-kernel-config.mount
3ms scratch.mount

Man sieht, eigentlich geht alles ruckzuck, nur NetworkManager braucht ewig.
Dabei ist man ansich ja gar nicht unbedingt darauf angewiesen. Bei Kabel Netzwerken eh nicht und wenn man nicht ständig das WLAN wechselt, tut es eine statische Einrichtung auch.

Wie es geht:
Die Datei /etc/systemd/system/network.service erstellen (zB. mit nano oder einem Editor der Wahl)
Beispiel Inhalt fürs WLAN

Unit]
Description=Network Connectivity
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-wlp2s0.device
After=sys-subsystem-net-devices-wlp2s0.device

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip link set dev wlp2s0 up
ExecStart=/usr/sbin/wpa_supplicant -B -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf
ExecStart=/sbin/dhcpcd wlp2s0

ExecStop=/sbin/dhcpcd -k wlp2s0
ExecStop=/sbin/ip addr flush dev wlp2s0
ExecStop=/sbin/ip link set dev wlp2s0 down

Dann noch die Konfigurationsdatei für wpa_supplicant erstellen die aufgerufen wird

# wpa_passphrase ssid-eueres-netzwerks passwort-fürs-netzwerk > /etc/wpa_supplicant/wpa_supplicant.conf

Jetzt können wir NetworkManager deaktivieren und den network service bei systemd eintragen.

# systemd disable NetworkManager
# systemd enable network

Ein reboot verrät uns das Ergebnis

# systemd-analyze

Startup finished in 1.895s (kernel) + 9.463s (userspace) = 11.359s

# systemd-analyze blame

8.444s network.service
953ms avahi-daemon.service
884ms systemd-logind.service
191ms systemd-journal-flush.service
124ms systemd-udev-trigger.service
120ms sys-kernel-debug.mount
116ms systemd-sysctl.service
110ms systemd-vconsole-setup.service
104ms systemd-static-nodes.service
98ms alsa-restore.service
87ms dev-hugepages.mount
87ms colord.service
83ms udisks2.service
77ms dev-mqueue.mount
69ms systemd-tmpfiles-setup.service
66ms systemd-remount-fs.service
59ms systemd-modules-load.service
37ms polkit.service
36ms tmp.mount
36ms systemd-fsck@dev-sda6.service
14ms systemd-random-seed-load.service
14ms upower.service
13ms systemd-user-sessions.service
12ms home.mount
11ms ntpd.service
11ms scratch.mount
7ms sys-kernel-config.mount
6ms systemd-udevd.service

Na wenn sich das nicht gelohnt hat.
Das Netzwerk braucht zwar immer noch am längsten aber trotzdem konnte die Bootzeit auf ein drittel gesenkt werden.
Ich denke für ein paar Minuten Handarbeit lohnt sich das auf jeden Fall.

Ein schöner Nebenefekt. Vorher hatte ich immer das Problem das Firefox die Sitzung nicht wiederherstellen konnte, jetzt funktioniert es. Vermutlich lag das Problem auch hier daran, das Firefox schon versucht hat die Seiten zu lande bevor das Netzwerk am Start war...

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>