Quando un sistema Linux si blocca, il primo passo per risolvere il problema è comprendere il tipo di blocco che si è verificato. Non tutti i blocchi sono uguali, e saperli distinguere ti aiuta a scegliere il metodo più efficace per affrontarli. I blocchi possono essere classificati principalmente in due categorie: blocchi parziali e blocchi completi.
1.1 Blocco Parziale
Un blocco parziale si verifica quando solo alcune parti del sistema sono non rispondenti, mentre altre rimangono funzionanti. Questo tipo di blocco è spesso dovuto a:
- Un'applicazione che ha consumato troppe risorse.
- Un conflitto tra processi o servizi.
- Problemi con l'interfaccia grafica.
- Puoi ancora muovere il mouse o utilizzare alcune combinazioni di tasti (ad esempio Ctrl + Alt + F2 per passare a una console testuale).
- Alcuni programmi rispondono, ma altri sono bloccati.
- La rete potrebbe essere ancora attiva (puoi testarlo pingando un sito web o accedendo tramite SSH da un altro dispositivo).
- Prova a terminare il programma bloccato:
per cambiare finestra e chiudere il programma problematico.
Codice: Seleziona tutto
Alt + Tab
Se non funziona, apri un terminale (ad esempio con Ctrl + Alt + F2) e usa `top` o `htop` per individuare il processo responsabile e terminare:Codice: Seleziona tutto
kill -9 <PID>
- Verifica se l’interfaccia grafica è il problema:
Riavvia il server grafico con:Codice: Seleziona tutto
sudo systemctl restart display-manager
1.2 Blocco Completo
Un blocco completo si verifica quando il sistema sembra totalmente non rispondente. In questo caso:
- Né il mouse né la tastiera funzionano.
- Lo schermo può essere congelato su un'applicazione o mostrare un’immagine distorta.
- Anche combinazioni di tasti come Ctrl + Alt + F2 non funzionano.
- Sovraccarico della CPU o memoria completamente esaurita.
- Malfunzionamenti del kernel o driver hardware (ad esempio GPU, periferiche USB).
- Problemi hardware, come un disco rigido difettoso o RAM danneggiata.
- Verifica se il sistema è vivo:
Premi Caps Lock sulla tastiera per vedere se il LED cambia stato. Se il LED non risponde, è probabile che il kernel sia bloccato. Se il LED risponde, il sistema potrebbe non essere completamente bloccato. - Usa Magic SysRq:
Prova la sequenza Alt + SysRq seguita dalle lettere R, E, I, S, U, B. Questa sequenza permette di ripristinare il controllo in casi di blocco grave. - Testa la connettività remota:
Se hai abilitato SSH, prova a connetterti al sistema da un altro dispositivo. Questo può permetterti di terminare processi o riavviare il sistema senza spegnere forzatamente.
1.3 Come distinguere i tipi di blocco
Ecco alcuni passaggi pratici per distinguere tra blocco parziale e completo:
- Prova a usare una console virtuale: Premi Ctrl + Alt + F2. Se riesci a vedere una schermata di login, è probabile che il problema sia limitato all'interfaccia grafica.
- Controlla l'attività del disco e della rete: Un LED acceso o lampeggiante sull’hard disk o sull’interfaccia di rete potrebbe indicare che il sistema è ancora attivo.
- Testa i comandi di emergenza: Magic SysRq è un ottimo indicatore del livello di risposta del kernel. Se non funziona, il blocco è probabilmente completo.
1.4 Quando il blocco sembra hardware
Se né software né comandi di emergenza funzionano, potresti avere un problema hardware:
- Problemi con la RAM: La memoria difettosa può causare blocchi intermittenti o completi. Usa uno strumento come memtest86 per diagnosticare la RAM.
- Guasti al disco rigido: Un disco corrotto o in procinto di rompersi può causare blocchi gravi. Verifica lo stato del disco con:
Codice: Seleziona tutto
sudo smartctl -a /dev/sdX
2. Provare metodi non invasivi
Se il sistema Linux è parzialmente bloccato, ci sono diversi metodi non invasivi che puoi provare per recuperare il controllo senza dover riavviare il computer. Questo approccio ti permette di risolvere il problema minimizzando il rischio di perdita di dati.
2.1 Accedere al terminale con una combinazione di tasti
In molti casi, il blocco riguarda solo l'interfaccia grafica o una specifica applicazione. Puoi provare a passare a una console testuale utilizzando una combinazione di tasti.
- Premi Ctrl + Alt + F2 (o un altro tasto funzione come F3-F6) per accedere a una console virtuale. Se funziona:
1. Accedi con il tuo nome utente e password.
2. Usa strumenti come
Codice: Seleziona tutto
top
Codice: Seleziona tutto
htop
Esempio di utilizzo di `htop` per terminare un processo:
Codice: Seleziona tutto
htop
- Usa le frecce per selezionarlo e premi F9 per terminarlo.
Se non hai installato `htop`, usa il comando `kill`:
Codice: Seleziona tutto
kill -9 <PID>
2.2 Riavviare il server grafico
Se il problema riguarda solo l'interfaccia grafica, è possibile riavviare il server grafico senza compromettere i processi in background.
Per sistemi con `systemd`:
Codice: Seleziona tutto
sudo systemctl restart display-manager
2.3 Forzare il logout
Se non riesci a terminare un singolo programma ma vuoi forzare il logout dell'utente attuale, puoi usare il comando:
Codice: Seleziona tutto
pkill -KILL -u <tuo_username>
2.4 Controllare le risorse del sistema
Se sospetti che il blocco sia dovuto a un uso eccessivo di risorse (CPU o RAM), puoi monitorarle tramite strumenti disponibili nella console testuale.
- Visualizza l’utilizzo della memoria:
Codice: Seleziona tutto
free -h
Codice: Seleziona tutto
top
2.5 Verificare la rete e le connessioni remote
Se il sistema è parzialmente bloccato ma la rete funziona, puoi accedere tramite SSH da un altro dispositivo. Questo approccio è particolarmente utile su server o dispositivi headless.
- Connettiti al sistema da un altro computer:
Codice: Seleziona tutto
ssh <utente>@<indirizzo_IP>
- Terminare processi con
Codice: Seleziona tutto
kill
- Riavviare il sistema in sicurezza:
Codice: Seleziona tutto
sudo reboot
I metodi non invasivi ti permettono di risolvere molti problemi di blocco senza dover riavviare il sistema. Spostarti su una console testuale, terminare processi problematici o riavviare il server grafico sono operazioni che ti consentono di ripristinare la funzionalità del sistema con il minimo impatto. In caso di fallimento, puoi passare a soluzioni più drastiche, come descritto nei capitoli successivi.
3. Riavviare in sicurezza
Quando i metodi non invasivi falliscono e il sistema rimane bloccato, l'unica opzione potrebbe essere un riavvio. È fondamentale, però, cercare di riavviare il sistema in modo sicuro per minimizzare i rischi di perdita di dati o corruzione del file system.
3.1 Usare la combinazione di tasti Magic SysRq
La sequenza **Magic SysRq** consente di inviare comandi di emergenza al kernel, anche quando il sistema è gravemente bloccato. Questa funzionalità deve essere abilitata nel kernel (è attivata per impostazione predefinita sulla maggior parte delle distribuzioni Linux).
Come utilizzare Magic SysRq:
1. Premi e tieni premuti Alt + SysRq (SysRq è il tasto Stamp o Print Screen su molte tastiere).
2. Premi una per una le seguenti lettere, in questo ordine:
- R: Ripristina il controllo della tastiera.
- E: Termina tutti i processi (SIGTERM).
- I: Uccide immediatamente i processi ancora attivi (SIGKILL).
- S: Sincronizza i dischi (scrive tutti i dati non ancora salvati).
- U: Smonta tutti i file system.
- B: Riavvia il sistema.
Premi Alt + SysRq, poi premi in sequenza R, E, I, S, U, B.
Nota importante: Questa sequenza esegue un riavvio sicuro, ma termina forzatamente tutti i processi. Usala solo se non ci sono alternative.
3.2 Riavviare tramite la console
Se riesci ad accedere a una console testuale (ad esempio con Ctrl + Alt + F2) o tramite SSH, puoi riavviare il sistema in sicurezza utilizzando i comandi:
Riavvia il sistema immediatamente:
Codice: Seleziona tutto
sudo reboot
Codice: Seleziona tutto
sudo shutdown -r now
3.3 Spegnimento forzato
Se il sistema è completamente bloccato e nessuna delle opzioni precedenti funziona, l'ultima risorsa è uno spegnimento forzato.
Come fare:
- Tieni premuto il pulsante di accensione del computer per alcuni secondi fino a quando il sistema si spegne.
- Riaccendi il sistema normalmente.
Nota: Lo spegnimento forzato può causare perdita di dati o corruzione del file system. Dopo aver riavviato, esegui un controllo del file system per garantire l'integrità:
Codice: Seleziona tutto
sudo fsck /dev/sdX
Riavviare un sistema Linux bloccato richiede attenzione per evitare di danneggiare i dati. La sequenza Magic SysRq offre un metodo relativamente sicuro per riavviare il sistema, mentre l'accesso alla console o lo spegnimento forzato dovrebbero essere utilizzati solo come ultima risorsa. Dopo il riavvio, è importante analizzare la causa del blocco per prevenire futuri problemi.