====== Optimizarea boot-ului și shutdown-ului pe Linux ====== 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**. ===== Diagnosticarea problemelor ===== 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. ===== Optimizări comune pentru toate distribuțiile ===== Acestea se aplică indiferent de distribuție, deoarece sunt configurații ale systemd însuși. ==== Reducerea timeout-ului la shutdown ==== 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 SIGKILL * ''DefaultTimeoutAbortSec'' - timeout pentru serviciile care primesc SIGABRT * ''ShutdownWatchdogSec'' - dacă systemd însuși îngheață în timpul shutdown-ului, hardware watchdog-ul repornește forțat mașina ==== Dezactivarea NetworkManager-wait-online ==== Acest 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. ==== Dezactivarea systemd-networkd-wait-online ==== 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 ===== Optimizări specifice distribuției ===== ==== Servicii care pot încetini boot-ul ==== * ''apt-daily.service'' și ''apt-daily-upgrade.service'' - verificarea și instalarea actualizărilor la pornire * ''ModemManager.service'' - necesar doar dacă folosești un modem GSM/4G * ''avahi-daemon.service'' - descoperire de servicii în rețea locală, necesar doar în unele scenarii ==== Amânarea verificării pachetelor ==== sudo 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 ==== Dezactivarea serviciilor inutile ==== 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 ==== Servicii specifice Ubuntu/Mint ==== * ''mintupdate-automation-upgrade.service'' - (Linux Mint) instalează actualizări la fiecare pornire * ''apt-daily.service'' - descarcă liste de pachete la boot * ''fwupd-refresh.service'' - verifică actualizări de firmware * ''ubuntu-system-adjustments.service'' - ajustări specifice Ubuntu * ''update-notifier-download.service'' - descarcă actualizări în fundal ==== Dezactivarea upgrade-ului automat la boot (Linux Mint) ==== 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ă. ==== Amânarea verificării pachetelor ==== sudo systemctl edit apt-daily.timer [Timer] OnBootSec=15min OnUnitActiveSec=1d ==== Dezactivarea serviciilor opționale ==== Actualizări de firmware (dacă nu ai nevoie): sudo systemctl disable fwupd-refresh.service sudo systemctl disable fwupd.service ==== Servicii care pot încetini boot-ul ==== * ''reflector.service'' sau ''reflector.timer'' - actualizează lista de mirror-uri la boot, poate fi lent * ''man-db.service'' - reindexează paginile de manual, rulează uneori la boot * ''updatedb.service'' - actualizează baza de date pentru ''locate'' ==== Dezactivarea sau amânarea Reflector ==== sudo 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 ==== Activarea systemd-resolved ==== 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 ==== Compresia initramfs ==== 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 ==== Servicii care pot încetini boot-ul ==== * ''dnf-makecache.service'' / ''dnf-makecache.timer'' - actualizează cache-ul DNF la boot * ''ModemManager.service'' - necesar doar cu modem GSM/4G * ''sssd.service'' - autentificare centralizată, necesar doar în medii enterprise * ''abrt*.service'' - raportare automată de bug-uri ==== Amânarea actualizării cache-ului DNF ==== sudo systemctl edit dnf-makecache.timer [Timer] OnBootSec=15min OnUnitActiveSec=1d ==== Dezactivarea serviciilor inutile pe desktop ==== 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 ==== SELinux și boot-ul ==== 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ă. ==== Servicii care pot încetini boot-ul ==== * Servicii legate de actualizări automate Zypper * ''wicked.service'' - alternativa openSUSE la NetworkManager, poate fi lentă la inițializare ==== NetworkManager vs Wicked ==== 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 ==== Dezactivarea verificărilor automate de actualizări la boot ==== sudo systemctl disable zypper-refresh-patches.timer Sau verifică ce timere sunt active pe sistemul tău: systemctl list-timers ==== AppArmor ==== 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. ===== Rezumat ===== ^ 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 | {{tag>linux systemd boot optimizare debian ubuntu mint arch fedora opensuse}}