Blocchi o errori del sistema su Linux

La Bash di Linux è una potente shell a riga di comando, apprezzata per la sua versatilità e utilizzata per la gestione e l'automazione del sistema tramite script.
Rispondi
FrancyDotNet
Moderatore
Moderatore
Messaggi: 969
Iscritto il: 01/05/2024, 23:26

Blocchi o errori del sistema su Linux

Messaggio da FrancyDotNet »

1. Identificare il tipo di blocco

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.
Segni di un blocco parziale:
  • 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).
Cosa fare:
  1. Prova a terminare il programma bloccato:

    Codice: Seleziona tutto

    Alt + Tab
    per cambiare finestra e chiudere il programma problematico.
    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>
  2. 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.
Possibili cause di un blocco completo:
  • 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.
Cosa fare:
  1. 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.
  2. 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.
  3. 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
o

Codice: Seleziona tutto

htop
per identificare processi problematici.

Esempio di utilizzo di `htop` per terminare un processo:

Codice: Seleziona tutto

  htop
  
- Individua il processo bloccato.
- 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
Questo comando riavvia il gestore grafico (ad esempio GDM, LightDM o SDDM), risolvendo eventuali problemi legati al display o all’interfaccia grafica.


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>
- Questo termina tutti i processi associati all'utente, inclusi quelli grafici, e ti riporta alla schermata di login.


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
- Analizza i processi con `top`:

Codice: Seleziona tutto

top
Usa i comandi interni di `top` per ordinare i processi (ad esempio, premi P per ordinare per utilizzo CPU o M per RAM).


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>
- Una volta connesso, puoi:
- 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.
Esempio completo:
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
Riavvia il sistema dopo aver sincronizzato i dischi e smontato i file system:

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
Sostituisci /dev/sdX con il dispositivo corretto (ad esempio /dev/sda).

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.
Rispondi

Torna a “Bash”