Toate distribuțiile majore de Linux folosesc systemd ca sistem de init, ceea ce înseamnă că metodele de optimizare sunt în mare parte aceleași, indiferent de distribuție. Diferă doar serviciile specifice fiecărei distribuții care pot fi dezactivate sau amânate. Acest articol acoperă Debian, Ubuntu/Linux Mint, Arch Linux, Fedora și openSUSE.
Primul pas este să identifici ce anume încetinește boot-ul. systemd oferă câteva unelte utile în acest sens.
Timpul total de boot:
systemd-analyze
Lista serviciilor sortate după timpul de pornire:
systemd-analyze blame
Lanțul critic - serviciile care blochează efectiv boot-ul:
systemd-analyze critical-chain
Grafic vizual al boot-ului (generat ca fișier SVG):
systemd-analyze plot > boot.svg
Deschide fișierul SVG în browser pentru a vedea o reprezentare vizuală completă a procesului de boot, cu toate serviciile și dependențele dintre ele.
Acestea se aplică indiferent de distribuție, deoarece sunt configurații ale systemd însuși.
Implicit, systemd așteaptă 90 de secunde pentru fiecare serviciu să se oprească înainte de a-l forța. Editează:
sudo nano /etc/systemd/system.conf
Adaugă sau modifică la finalul fișierului:
DefaultTimeoutStopSec=10s DefaultTimeoutAbortSec=10s ShutdownWatchdogSec=10s
Aplică modificările:
sudo systemctl daemon-reload
DefaultTimeoutStopSec - cât așteaptă systemd după trimiterea SIGTERM înainte de a trimite SIGKILLDefaultTimeoutAbortSec - timeout pentru serviciile care primesc SIGABRTShutdownWatchdogSec - dacă systemd însuși îngheață în timpul shutdown-ului, hardware watchdog-ul repornește forțat mașinaAcest serviciu blochează boot-ul până când conexiunea la rețea este complet stabilită. Pe un desktop nu este necesar - aplicațiile se conectează singure când au nevoie.
sudo systemctl disable NetworkManager-wait-online.service
Atenție: Pe servere sau sisteme care rulează servicii ce depind de rețea la pornire (baze de date cu conexiuni remote, NFS, etc.), nu dezactiva acest serviciu.
Similar cu cel de mai sus, dar pentru sistemele care folosesc systemd-networkd în loc de NetworkManager:
sudo systemctl disable systemd-networkd-wait-online.service
apt-daily.service și apt-daily-upgrade.service - verificarea și instalarea actualizărilor la pornireModemManager.service - necesar doar dacă folosești un modem GSM/4Gavahi-daemon.service - descoperire de servicii în rețea locală, necesar doar în unele scenariisudo systemctl edit apt-daily.timer
Adaugă:
[Timer] OnBootSec=15min OnUnitActiveSec=1d
Același lucru pentru upgrade:
sudo systemctl edit apt-daily-upgrade.timer
[Timer] OnBootSec=20min OnUnitActiveSec=1d
Dacă nu folosești un modem:
sudo systemctl disable ModemManager.service
Dacă nu ai nevoie de descoperire automată de servicii în rețea locală:
sudo systemctl disable avahi-daemon.service
mintupdate-automation-upgrade.service - (Linux Mint) instalează actualizări la fiecare pornireapt-daily.service - descarcă liste de pachete la bootfwupd-refresh.service - verifică actualizări de firmwareubuntu-system-adjustments.service - ajustări specifice Ubuntuupdate-notifier-download.service - descarcă actualizări în fundal
Serviciul nu are secțiune [Install], deci disable nu funcționează complet. Folosește mask:
sudo systemctl mask mintupdate-automation-upgrade.timer sudo systemctl stop mintupdate-automation-upgrade.timer
Actualizările automate zilnice rămân active prin apt-daily-upgrade.timer, care rulează complet în fundal fără nicio intervenție manuală.
sudo systemctl edit apt-daily.timer
[Timer] OnBootSec=15min OnUnitActiveSec=1d
Actualizări de firmware (dacă nu ai nevoie):
sudo systemctl disable fwupd-refresh.service sudo systemctl disable fwupd.service
reflector.service sau reflector.timer - actualizează lista de mirror-uri la boot, poate fi lentman-db.service - reindexează paginile de manual, rulează uneori la bootupdatedb.service - actualizează baza de date pentru locatesudo systemctl disable reflector.service
Poți lăsa reflector.timer activ dacă vrei actualizare periodică, sau îl poți rula manual când ai nevoie:
sudo reflector --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
Pe Arch, systemd-resolved nu este activat implicit. Activarea lui poate îmbunătăți viteza de rezolvare DNS:
sudo systemctl enable --now systemd-resolved sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Arch folosește implicit compresia zstd pentru initramfs, care e rapidă. Dacă din diverse motive folosești gzip sau bzip2, schimbarea la zstd în /etc/mkinitcpio.conf reduce timpul de decompresie la boot:
COMPRESSION="zstd"
Regenerează initramfs:
sudo mkinitcpio -P
dnf-makecache.service / dnf-makecache.timer - actualizează cache-ul DNF la bootModemManager.service - necesar doar cu modem GSM/4Gsssd.service - autentificare centralizată, necesar doar în medii enterpriseabrt*.service - raportare automată de bug-urisudo systemctl edit dnf-makecache.timer
[Timer] OnBootSec=15min OnUnitActiveSec=1d
Raportare automată de bug-uri:
sudo systemctl disable abrtd.service sudo systemctl disable abrt-ccpp.service sudo systemctl disable abrt-oops.service
SSSD (doar dacă nu ești în rețea enterprise cu LDAP/AD):
sudo systemctl disable sssd.service
ModemManager (dacă nu ai modem):
sudo systemctl disable ModemManager.service
Pe Fedora, SELinux poate adăuga timp la primul boot după o actualizare majoră, deoarece reindexează toate fișierele. Aceasta este normală și nu se repetă la fiecare boot. Nu dezactiva SELinux pentru a câștiga timp de boot - compromisul de securitate nu merită.
wicked.service - alternativa openSUSE la NetworkManager, poate fi lentă la inițializare
openSUSE folosește implicit wicked pentru gestionarea rețelei. Dacă ai instalat NetworkManager și rulezi ambele, poți dezactiva wicked:
sudo systemctl disable wicked.service sudo systemctl enable NetworkManager.service
sudo systemctl disable zypper-refresh-patches.timer
Sau verifică ce timere sunt active pe sistemul tău:
systemctl list-timers
Similar cu SELinux pe Fedora, AppArmor pe openSUSE poate adăuga câteva secunde la boot. Nu dezactiva AppArmor pentru a câștiga timp - este un strat important de securitate.
| Distribuție | Serviciu problematic | Acțiune recomandată |
|---|---|---|
| Debian | apt-daily.timer | Amână la 15min după boot |
| Ubuntu/Mint | mintupdate-automation-upgrade.timer | Mask complet |
| Ubuntu/Mint | apt-daily.timer | Amână la 15min după boot |
| Arch | reflector.service | Dezactivează, rulează manual |
| Fedora | dnf-makecache.timer | Amână la 15min după boot |
| Fedora | abrtd.service | Dezactivează pe desktop |
| openSUSE | wicked.service | Înlocuiește cu NetworkManager |
| Toate | NetworkManager-wait-online | Dezactivează pe desktop |
| Toate | DefaultTimeoutStopSec | Setează la 10s în system.conf |