Buclă infinită la login în Linux - cauze și soluții

Dacă ai pornit calculatorul și, în loc să ajungi la desktop, interfața grafică îți cere parola, o introduci, se întâmplă ceva… și revine la aceeași fereastră, ai dat peste una dintre problemele clasice ale Linux-ului. Știe să sperie, mai ales când ai impresia că sistemul nu mai pornește, dar în multe cazuri problema poate fi reparată fără reinstalarea sistemului.

De ce se întâmplă?

Un login loop poate avea mai multe cauze. Una dintre cele mai frecvente este partiția / aproape plină sau complet plină - dacă sistemul rămâne fără spațiu, unele fișiere temporare sau fișiere necesare sesiunii grafice nu mai pot fi create sau actualizate. Alte cauze posibile sunt fișiere de sesiune X corupte, permisiuni sau owner greșit în /home, permisiuni incorecte pe /tmp, lipsa inode-urilor chiar dacă mai există spațiu liber, probleme cu LightDM sau cu mediul desktop, sau alte erori care pot fi identificate din logurile sistemului. Înainte să reinstalezi Linux, merită să verifici toate astea.

Pasul 1 - Intră într-un terminal

Din ecranul de login apasă Ctrl+Alt+F3 - pe unele sisteme poate fi nevoie de F2, F4, F5 sau F6. Vei ajunge la un terminal text unde te poți autentifica cu username-ul și parola, după care poți rula comenzile de mai jos. Ca să te întorci la interfața grafică, Ctrl+Alt+F7.

Pasul 2 - Verifică spațiul disponibil și ce îl ocupă

Rulează df -h și uită-te în special la partiția montată pe /. Dacă aceasta este aproape plină, primul pas este să afli din ce, nu să ștergi la întâmplare:

sudo du -xhd1 / | sort -h

Dacă, de exemplu, /var iese mare:

sudo du -xhd1 /var | sort -h

Asta poate scoate la iveală cache-uri, loguri sau alte fișiere care au umplut partiția root. Odată identificate, poți curăța cache-ul APT și logurile systemd:

sudo apt clean
sudo journalctl --vacuum-size=200M

Nu există un prag universal de tipul „sub X GB = login loop" - important este ca sistemul să aibă suficient spațiu liber pentru a funcționa normal.

Pasul 3 - Verifică inode-urile

Există o situație mai puțin cunoscută: poți avea spațiu liber pe disc, dar să nu mai ai inode-uri disponibile, ceea ce împiedică la fel de eficient crearea de fișiere noi. Verifici cu:

df -i

Dacă coloana IUse% arată 100% pe partiția /, filesystem-ul nu mai poate crea fișiere noi chiar dacă df -h arată GB disponibili. În acest caz trebuie găsite și șterse directoarele care conțin un număr foarte mare de fișiere.

Pasul 4 - Șterge fișierele de sesiune

Două fișiere pot împiedica pornirea corectă a sesiunii grafice - dacă vreunul nu există, nu este nicio problemă:

rm ~/.Xauthority
rm ~/.ICEauthority

La următoarea autentificare, sistemul le recreează automat.

Pasul 5 - Verifică owner-ul directorului home

Mai întâi uită-te la situația reală, înainte să modifici ceva:

ls -ld /home/username
ls -la /home/username | head

Ar trebui să vezi username username ca owner. Dacă directorul sau fișierele din el aparțin lui root, acesta poate fi motivul pentru care sesiunea nu poate porni - și în acest caz poți repara cu:

sudo chown -R username:username /home/username

Comanda asta modifică owner-ul tuturor fișierelor din acel home, deci nu o rula automat fără să fi verificat mai întâi că există o problemă reală de ownership.

Pasul 6 - Verifică permisiunile pe /tmp

Directorul /tmp trebuie să aibă permisiunile corecte pentru ca sesiunea grafică să poată porni. Verifici cu:

ls -ld /tmp

Normal arată drwxrwxrwt - litera t de la sfârșit este importantă. Dacă permisiunile sunt greșite, le repari cu:

sudo chmod 1777 /tmp

Pasul 7 - Dacă problema persistă, verifică logurile

Dacă toți pașii de mai sus sunt în regulă și tot nu intri în desktop, logurile îți vor spune exact ce eșuează. Poți verifica erorile din boot-ul curent:

journalctl -b -p err

Pe Linux Mint cu LightDM poți verifica și:

sudo tail -100 /var/log/lightdm/lightdm.log

Pasul 8 - Repornește

sudo reboot

O notă despre autentificarea automată

Dacă sistemul era configurat să intre automat în desktop fără să ceară parola, dar după problemă începe să afișeze ecranul de login și intră în buclă, nu înseamnă neapărat că parola este greșită. Este posibil ca sesiunea grafică să încerce să pornească, să eșueze din alt motiv și să revină la managerul de autentificare. De aceea, faptul că parola este corectă nu exclude celelalte cauze de mai sus.

Pe scurt, ordinea verificărilor:

1. Ctrl+Alt+F3
2. df -h → du -xhd1 / | sort -h
3. df -i
4. eliberează spațiu dacă / este aproape plină
5. șterge ~/.Xauthority și ~/.ICEauthority
6. verifică owner-ul /home/username
7. verifică permisiunile /tmp
8. verifică logurile LightDM și journalctl
9. reboot

Nu reinstala Linux doar pentru că apare un login loop - în marea majoritate a cazurilor problema este localizată și poate fi reparată din TTY.