Calculatorul tău cu Linux pornește mai lent decât ar trebui
Dacă ai un calculator cu Linux și SSD, și tot mai aștepți câteva secunde bune până ajungi la desktop, nu e neapărat vina hardware-ului. De cele mai multe ori, problema vine din interior, adică din câteva servicii care pornesc la boot și care, fie nu-ți sunt de niciun folos, fie stau în calea altora care ar trebui să fie gata mai repede.
Vestea bună este că Linux nu ascunde nimic. Toate informațiile sunt acolo, trebuie doar să știi unde să le cauți.
Primul pas: să vedem cât durează de fapt
Undeva în adâncurile lui systemd există un instrument mic, numit systemd-analyze, care nu necesită nicio instalare și care îți spune exact cât a durat ultimul boot, împărțit pe etape. Îl rulezi pur și simplu cu:
systemd-analyze
Rezultatul arată cam așa:

Dacă ai UEFI și folosești un bootloader compatibil (cum ar fi systemd-boot sau GRUB), vei vedea inclusiv cât timp a stat în firmware și în bootloader, înainte ca kernelul să preia controlul. Etapa de userspace este cea în care sistemul lansează toate serviciile, și aceea este, de obicei, locul unde se pierde cel mai mult timp.
Al doilea pas: cine e de vină?
Comanda systemd-analyze blame îți afișează lista tuturor serviciilor, sortate după cât timp a luat fiecare să pornească.
systemd-analyze blame
La prima vedere, serviciile de la vârful listei par suspecte. Dar atenție, pentru că un serviciu care apare acolo cu un timp mare nu înseamnă automat că el este cel care îți ține sistemul pe loc. Unele servicii rulează în paralel cu altele și nu blochează nimic. Altele, cum ar fi verificările de actualizări sau serviciile pentru containere, au motive bune să dureze mai mult.
Deci blame îți dă o imagine de ansamblu, dar nu te lasă să tragi concluzii definitive.

Al treilea pas: lanțul critic
Aici devine cu adevărat interesant. Comanda systemd-analyze critical-chain îți arată exact care servicii se blochează unele pe altele, adică lanțul de dependențe care determină când sistemul devine cu adevărat utilizabil.
systemd-analyze critical-chain
Spre deosebire de blame, aceasta îți arată nu ce a durat mult în general, ci ce a stat efectiv în calea pornirii. Dacă un serviciu apare în lanțul critic cu un timp mare, acela este candidatul potrivit pentru investigație. Probleme frecvente care apar aici sunt: servicii care așteaptă rețeaua, servicii pentru containere sau drivere lente.

Al patrulea pas: o imagine vizuală
Dacă preferi o vedere de ansamblu grafică, poți genera o diagramă SVG a întregului proces de boot cu:
systemd-analyze plot > boot.svg
Fișierul rezultat se poate deschide în orice browser și arată cum se suprapun serviciile în timp, cât durează fiecare și care stau în așteptare. Nu e obligatoriu, dar ajută mult dacă vrei să înțelegi mai bine cum funcționează lucrurile.
Ce faci cu informațiile astea?
Odată ce ai identificat serviciile care îți consumă timp inutil, le poți dezactiva cu:
sudo systemctl disable numele-serviciului
Asta îl oprește să mai pornească la boot, dar îl poți lansa oricând manual dacă ai nevoie. Exemple tipice de servicii pe care mulți utilizatori le au activate fără să știe și fără să le folosească: daemon-ul pentru imprimantă (dacă n-ai imprimantă), managerul de Bluetooth (dacă nu folosești Bluetooth), sau diverse servicii de sincronizare.
Dacă vrei să fii mai radical, poți folosi mask, care împiedică serviciul să fie pornit chiar și de alte procese:
sudo systemctl mask numele-serviciului
Dezactivarea se face cu unmask dacă te răzgândești.
Înainte de orice modificare, merită să verifici ce dependențe are serviciul respectiv, ca să nu dezactivezi ceva de care depinde altceva important.
Există și variante grafice
Dacă terminalul nu e mediul tău preferat, există câteva aplicații grafice care îți permit să faci cam același lucru prin interfețe vizuale, cu mouse-ul.
Cea mai îngrijită opțiune în momentul de față este SysD Manager, disponibilă pe Flathub și instalabilă pe orice distribuție care are Flatpak:
flatpak install flathub io.github.plrigaux.sysd-manager
Oferă o interfață completă pentru gestionarea unităților systemd, inclusiv vizualizarea, editarea fișierelor unit și controlul serviciilor, toate dintr-o singură fereastră.

O altă opțiune este systemd-manager, scrisă în Rust și construită cu GTK3, care pe lângă gestionarea serviciilor include și o secțiune dedicată pentru systemd-analyze, unde poți vedea timpii de boot direct în interfață, fără să deschizi terminalul. E disponibilă în AUR pentru cei cu Arch sau distribuții derivate, și ca pachet snap pentru Ubuntu.

Trebuie spus însă că și cu o interfață grafică, riscul rămâne același ca la terminal: dacă dezactivezi un serviciu de care depinde altceva important, sistemul poate ajunge să nu mai pornească deloc sau să se comporte ciudat. Interfața grafică nu te ferește de greșeli, ba chiar te poate face să apeși prea ușor pe butoane fără să înțelegi pe deplin ce faci. Comenzile din terminal, tocmai pentru că necesită să le scrii conștient, te obligă într-un fel să fii mai atent.
Concluzia practică este simplă: înainte să dai vina pe hardware sau să reinstalezi distribuția, rulează trei comenzi, uită-te la rezultate cu atenție și vei găsi, cel mai probabil, cel puțin un serviciu care pornește fără niciun rost și care îți fură câteva secunde la fiecare pornire.