Această pagină poate fi doar citită. Poți vedea sursa, dar nu poți modifica pagina. Consultă administratorul dacă ești de părere că ceva este în neregulă. ====== 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:** <code bash> systemd-analyze </code> **Lista serviciilor sortate după timpul de pornire:** <code bash> systemd-analyze blame </code> **Lanțul critic - serviciile care blochează efectiv boot-ul:** <code bash> systemd-analyze critical-chain </code> **Grafic vizual al boot-ului (generat ca fișier SVG):** <code bash> systemd-analyze plot > boot.svg </code> 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ă: <code bash> sudo nano /etc/systemd/system.conf </code> Adaugă sau modifică la finalul fișierului: <code ini> DefaultTimeoutStopSec=10s DefaultTimeoutAbortSec=10s ShutdownWatchdogSec=10s </code> Aplică modificările: <code bash> sudo systemctl daemon-reload </code> * ''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. <code bash> sudo systemctl disable NetworkManager-wait-online.service </code> > **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: <code bash> sudo systemctl disable systemd-networkd-wait-online.service </code> ===== Optimizări specifice distribuției ===== <tab-group> <tab title="Debian"> ==== 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 ==== <code bash> sudo systemctl edit apt-daily.timer </code> Adaugă: <code ini> [Timer] OnBootSec=15min OnUnitActiveSec=1d </code> Același lucru pentru upgrade: <code bash> sudo systemctl edit apt-daily-upgrade.timer </code> <code ini> [Timer] OnBootSec=20min OnUnitActiveSec=1d </code> ==== Dezactivarea serviciilor inutile ==== Dacă nu folosești un modem: <code bash> sudo systemctl disable ModemManager.service </code> Dacă nu ai nevoie de descoperire automată de servicii în rețea locală: <code bash> sudo systemctl disable avahi-daemon.service </code> </tab> <tab title="Ubuntu / Linux Mint"> ==== 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'': <code bash> sudo systemctl mask mintupdate-automation-upgrade.timer sudo systemctl stop mintupdate-automation-upgrade.timer </code> 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 ==== <code bash> sudo systemctl edit apt-daily.timer </code> <code ini> [Timer] OnBootSec=15min OnUnitActiveSec=1d </code> ==== Dezactivarea serviciilor opționale ==== Actualizări de firmware (dacă nu ai nevoie): <code bash> sudo systemctl disable fwupd-refresh.service sudo systemctl disable fwupd.service </code> </tab> <tab title="Arch Linux"> ==== 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 ==== <code bash> sudo systemctl disable reflector.service </code> Poți lăsa ''reflector.timer'' activ dacă vrei actualizare periodică, sau îl poți rula manual când ai nevoie: <code bash> sudo reflector --latest 10 --sort rate --save /etc/pacman.d/mirrorlist </code> ==== Activarea systemd-resolved ==== Pe Arch, ''systemd-resolved'' nu este activat implicit. Activarea lui poate îmbunătăți viteza de rezolvare DNS: <code bash> sudo systemctl enable --now systemd-resolved sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf </code> ==== 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: <code ini> COMPRESSION="zstd" </code> Regenerează initramfs: <code bash> sudo mkinitcpio -P </code> </tab> <tab title="Fedora"> ==== 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 ==== <code bash> sudo systemctl edit dnf-makecache.timer </code> <code ini> [Timer] OnBootSec=15min OnUnitActiveSec=1d </code> ==== Dezactivarea serviciilor inutile pe desktop ==== Raportare automată de bug-uri: <code bash> sudo systemctl disable abrtd.service sudo systemctl disable abrt-ccpp.service sudo systemctl disable abrt-oops.service </code> SSSD (doar dacă nu ești în rețea enterprise cu LDAP/AD): <code bash> sudo systemctl disable sssd.service </code> ModemManager (dacă nu ai modem): <code bash> sudo systemctl disable ModemManager.service </code> ==== 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ă. </tab> <tab title="openSUSE"> ==== 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: <code bash> sudo systemctl disable wicked.service sudo systemctl enable NetworkManager.service </code> ==== Dezactivarea verificărilor automate de actualizări la boot ==== <code bash> sudo systemctl disable zypper-refresh-patches.timer </code> Sau verifică ce timere sunt active pe sistemul tău: <code bash> systemctl list-timers </code> ==== 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. </tab> </tab-group> ===== 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}}