Linux è un sistema operativo potente e affidabile, ma anche gli utenti esperti si trovano ad affrontare problemi imprevisti. Che si tratti di un file cancellato, di una password di root dimenticata o di un sistema lento, sapere come risolvere i problemi in modo efficiente è fondamentale per diventare un vero esperto di Linux.
Questa guida presenta scenari di risoluzione dei problemi reali di Linux insieme a soluzioni passo passo, che sono comuni tra gli amministratori di sistema, gli sviluppatori e gli utenti quotidiani di Linux.
Scenario 1: Hai Cancellato Accidentalmente un File Importante
Hai cancellato accidentalmente un file importante usando il comando rm, e ora devi recuperarlo. A differenza di Windows e macOS, Linux non ha un “Cestino” integrato per i file cancellati dal terminale.
Le tue opzioni di recupero dipendono dal filesystem in uso.
Per i Filesystem EXT3/EXT4
Usa extundelete, che è un’utilità open-source progettata per recuperare file cancellati dai filesystem ext3 e ext4 in Linux.
sudo apt install extundelete # Debian-based sudo yum install extundelete # RHEL-based
Prima di tentare il recupero, smonta la partizione per prevenire ulteriori scritture che potrebbero sovrascrivere i dati cancellati:
sudo umount /dev/sdX
Successivamente, esegui il seguente comando per recuperare il file cancellato e assicurati di sostituire /dev/sdX
con la partizione effettiva da cui è stato cancellato il file.
sudo extundelete /dev/sdX --restore-all
Per i Filesystem XFS, Btrfs o NTFS
Se il tuo sistema utilizza XFS, Btrfs o NTFS, lo strumento testdisk è un’opzione migliore.
sudo apt install testdisk # Debian-based sudo yum install testdisk # RHEL-based
Esegui testdisk e segui le indicazioni interattive per ripristinare file persi.
sudo testdisk
Consigli di prevenzione:
-
- Usa trash-cli: Invece di
rm
, usatrash-cli
per inviare i file a un cestino recuperabile.
- Usa trash-cli: Invece di
sudo apt install trash-cli trash-put myfile.txt
- Abilita backup regolari: Imposta rsync o Timeshift per eseguire automaticamente il backup dei file importanti.
Scenario 2: Recuperare una password di root dimenticata
Hai dimenticato la tua password di root e non puoi eseguire attività amministrative, il che significa che non puoi installare software, cambiare le impostazioni di sistema o accedere a file critici.
Puoi reimpostare la password di root avviando in modalità di recupero o modificando il bootloader GRUB.
Utilizzando la modalità di recupero (Ubuntu/Debian)
Prima, riavvia il tuo sistema e tieni premuto Shift
durante l’avvio per accedere al menu GRUB, quindi seleziona “Opzioni avanzate” → “Modalità di ripristino” e scegli “Passa alla shell di root“.
Qui, rimonta il filesystem di root come scrivibile e reimposta la password di root.
mount -o remount,rw / passwd root
Riavvia il sistema.
reboot
Utilizzando rd.break (RHEL/CentOS/Fedora)
Prima, riavvia il tuo sistema, premi e
nel menu GRUB e trova la riga che inizia con linux
e aggiungi rd.break
alla fine.
Successivamente, monta il filesystem di root e reimposta la password di root.
mount -o remount,rw /sysroot chroot /sysroot passwd root
Infine, esci e riavvia.
exit reboot
Suggerimenti per la prevenzione:
- Crea un utente sudo senza password per evitare di rimanere bloccato senza accesso di root.
- Utilizza le chiavi SSH anziché le password per l’autenticazione.
Scenario 3: Hai Installato un Pacchetto, ma Non Funziona
Hai installato un pacchetto, ma dice “comando non trovato
” quando provi ad eseguirlo, cosa che di solito accade quando il binario non è nel PATH del tuo sistema, il pacchetto non è installato correttamente o c’è una dipendenza mancante.
La soluzione è verificare innanzitutto se il pacchetto è installato o meno.
dpkg -l | grep package-name # Debian-based rpm -qa | grep package-name # RHEL-based
Se manca, reinstallalo:
sudo apt install package-name sudo yum install package-name
Successivamente, controlla se il comando è nel tuo sistema PATH.
which package-name echo $PATH
Se l’eseguibile si trova in una posizione non standard, aggiungilo a PATH:
export PATH=$PATH:/usr/local/bin
Suggerimenti di prevenzione:
- Riavvia il terminale o esegui
hash -r
dopo aver installato nuovi pacchetti. - Utilizza gestori di pacchetti come Snap o Flatpak, che gestiscono meglio le dipendenze.
Scenario 4: Il Tuo Sistema Sta Finendo Lo Spazio su Disco
Il tuo sistema mostra un errore “Spazio esaurito sul dispositivo“, impedendo gli aggiornamenti software, la registrazione e le operazioni normali.
Ecco come recuperare spazio su disco e mantenere il tuo sistema funzionante correttamente.
Passo 1: Controlla l’Utilizzo del Disco
La soluzione è, innanzitutto, controllare quanto spazio è utilizzato su ciascuna partizione del tuo sistema utilizzando il comando df.
df -h
Passo 2: Trova ed Elimina File di Grandi Dimensioni
Successivamente, individua i file più grandi che occupano spazio eseguendo il comando du, che scannerizzerà il tuo sistema e elencherà i 10 file o cartelle più grandi. Elimina i file non necessari usando il comando rm
o spostandoli su un’unità esterna.
du -ah / | sort -rh | head -10
Passo 3: Rimuovere i Log Non Necessari
I log sono essenziali per la risoluzione dei problemi e il monitoraggio dell’attività di sistema, ma possono crescere rapidamente e consumare una quantità significativa di spazio su disco.
Con il tempo, i vecchi log potrebbero non essere più necessari, rendendoli candidati ideali per la pulizia.
sudo journalctl --vacuum-time=2d # Deletes logs older than 2 days sudo apt autoclean # Removes outdated package files
Passo 4: Rimuovere i Vecchi Kernel (Ubuntu/Debian)
Quando aggiorni il sistema, soprattutto su Ubuntu o sulle distribuzioni basate su Debian, vengono spesso installate nuove versioni del kernel Linux.
Tuttavia, i vecchi kernel non vengono rimossi automaticamente e nel tempo possono accumularsi occupando una quantità significativa di spazio su disco.
La loro rimozione è un modo sicuro ed efficace per liberare spazio senza influenzare la funzionalità del sistema.
sudo apt autoremove --purge
Suggerimenti per la Prevenzione:
- Impostare la Rotazione dei Log: Utilizzare logrotate per gestire automaticamente le dimensioni dei file di log e i periodi di conservazione.
- Monitorare l’Utilizzo del Disco: Installare strumenti come ncdu per tenere traccia dell’utilizzo del disco e identificare gli spazio occupati.
- Pulizie Regolari: Pianificare pulizie periodiche per rimuovere file temporanei, cache e pacchetti non utilizzati.
Scenario 5: Il Tuo Server Risulta Improvvisamente Non Rispondente
Stai gestendo un server Linux e improvvisamente smette di rispondere e provi a connetterti tramite SSH, ma la connessione va in timeout o rifiuta di stabilirsi. Potresti anche notare che il server è ancora acceso, ma non reagisce a nessun comando.
Questa situazione può essere causata da vari problemi, tra cui:
- Alti utilizzi di CPU o memoria dovuti a processi in esecuzione incontrollata.
- Ostruzioni di I/O del disco, dove il sistema è sovraccarico di operazioni di lettura/scrittura.
- Panici del kernel o crash di sistema.
- Guasti di rete, che impediscono l’accesso remoto.
Per ripristinare il controllo, segui questi passaggi di risoluzione dei problemi.
Passaggio 1: Accedi al Server Localmente o tramite TTY
Se SSH non funziona, prova ad accedere direttamente al server o tramite una sessione TTY:
- Su una macchina fisica, utilizza la console locale.
- Su una macchina virtuale, utilizza la console dell’ipervisore.
- Per i sistemi Linux, passa a un’altra sessione TTY usando
Ctrl + Alt + F2
(oF3
,F4
, ecc.).
Passaggio 2: Controlla il Carico di Sistema
Dopo esserti autenticato, controlla il carico di sistema e l’utilizzo delle risorse, che mostreranno le medie di carico del sistema su 1, 5 e 15 minuti. Un valore di carico superiore al numero di core CPU indica una domanda elevata.
uptime
Successivamente, utilizza top o htop per monitorare i processi in tempo reale:
top Or htop
Cerca i processi che consumano troppa CPU o memoria.
Passaggio 3: Identifica ed Elimina i Processi Fuori Controllo
Per identificare i processi che consumano più risorse, esegui:
ps aux --sort=-%cpu | head
Questo elenca i processi che consumano più CPU, dove puoi trovare un processo problematico e terminarlo usando:
kill -9 PID
Sostituisci PID
con l’ID del processo dell’applicazione problematica.
Passaggio 4: Controlla i Log di Sistema
Se il sistema risponde ancora, controlla i log per gli errori:
sudo tail -f /var/log/syslog Or sudo dmesg | tail
Questi comandi visualizzano messaggi recenti del sistema e registri del kernel, che possono aiutare a identificare problemi hardware o software.
Passo 5: Riavviare in Sicurezza Utilizzando SysRq
Se il sistema è completamente bloccato, utilizza la combinazione di tasti SysRq per riavviare in sicurezza:
echo b > /proc/sysrq-trigger
Questo attiva un riavvio sicuro, garantendo l’integrità dei dati sincronizzando i dischi e smontando i filesystem.
Conclusione
La risoluzione dei problemi è un’abilità essenziale per ogni utente Linux. Che si tratti di recuperare file eliminati, reimpostare password o correggere errori di sistema, conoscere i comandi giusti può far risparmiare tempo e frustrazione.
Hai dei tuoi suggerimenti per la risoluzione dei problemi? Condividili nei commenti! Costruiamo insieme una comunità Linux utile.