Risoluzione dei problemi di Linux: 5 problemi comuni e come risolverli
Linux è un sistema operativo potente e affidabile, ma anche gli utenti esperti riscontrano problemi imprevisti. Che si tratti di un file eliminato, di una password di root dimenticata o di un sistema lento, sapere come risolvere i problemi in modo efficiente è la chiave per diventare un vero esperto di Linux.
Questa guida presenta scenari reali di risoluzione dei problemi di Linux insieme a soluzioni dettagliate, comuni tra gli amministratori di sistema, gli sviluppatori e gli utenti Linux di tutti i giorni.
Scenario 1: hai eliminato 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 dispone di un "Cestino" integrato per i file eliminati dal terminale.
Le opzioni di ripristino dipendono dal file system in uso.
Per i filesystem EXT3/EXT4
Usa extundelete, che è un'utilità open source progettata per recuperare i file cancellati dai file system ext3 ed ext4 in Linux.
sudo apt install extundelete # Debian-based
sudo yum install extundelete # RHEL-based
Prima di tentare il ripristino, smontare la partizione per evitare ulteriori scritture che potrebbero sovrascrivere i dati eliminati:
sudo umount /dev/sdX
Quindi, esegui il seguente comando per recuperare il file eliminato e assicurati di sostituire /dev/sdX
con la partizione effettiva in cui il file è stato eliminato.
sudo extundelete /dev/sdX --restore-all
Per i file system XFS, Btrfs o NTFS
Se il 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 istruzioni interattive per ripristinare i file persi.
sudo testdisk
Suggerimenti per la 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: Recupero di una password root dimenticata
Hai dimenticato la password di root e non puoi eseguire attività amministrative, il che significa che non puoi installare software, modificare le impostazioni di sistema o accedere a file critici.
È possibile reimpostare la password di root avviando la modalità di ripristino o modificando il bootloader GRUB.
Utilizzo della modalità di ripristino (Ubuntu/Debian)
Innanzitutto, riavvia il sistema e tieni premuto Maiusc
durante l'avvio per accedere al menu di GRUB, quindi seleziona "Opzioni avanzate" → "Modalità di ripristino" e scegli "Passa al prompt della 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
Utilizzo di rd.break (RHEL/CentOS/Fedora)
Innanzitutto, riavvia il sistema, premi e
nel menu GRUB e trova la riga che inizia con linux
e aggiungi rd.break
alla fine.
Quindi, 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 essere bloccato dall'accesso root.
- Utilizza le chiavi SSH invece delle password per l'autenticazione.
Scenario 3: è stato installato un pacchetto, ma non funziona
Hai installato un pacchetto, ma dice "comando non trovato
" quando provi a 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 è che prima devi verificare che il pacchetto sia 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
Quindi, controlla se il comando è nel PATH del tuo sistema.
which package-name
echo $PATH
Se il file binario si trova in una posizione non standard, aggiungerlo a PATH:
export PATH=$PATH:/usr/local/bin
Suggerimenti per la prevenzione:
- Riavvia il terminale o esegui
hash -r
dopo aver installato nuovi pacchetti. - Usa gestori di pacchetti come Snap o Flatpak, che gestiscono meglio le dipendenze.
Scenario 4: il sistema sta esaurendo lo spazio su disco
Il sistema visualizza un errore "Nessuno spazio rimasto sul dispositivo", impedendo gli aggiornamenti software, la registrazione e le normali operazioni.
Ecco come recuperare spazio su disco e mantenere il sistema in funzione senza intoppi.
Passaggio 1: controlla l'utilizzo del disco
La soluzione è che per prima cosa devi controllare quanto spazio viene utilizzato su ciascuna partizione del tuo sistema usando il comando df.
df -h
Passaggio 2: trova ed elimina file di grandi dimensioni
Quindi, individua i file più grandi che occupano spazio eseguendo du comando, che eseguirà la scansione del tuo sistema ed elencherà i primi 10 file o directory più grandi. Elimina i file non necessari utilizzando rm
o spostali su un'unità esterna.
du -ah / | sort -rh | head -10
Passaggio 3: rimuovere i registri non necessari
I registri sono essenziali per la risoluzione dei problemi e il monitoraggio dell'attività del sistema, ma possono crescere rapidamente e consumare una notevole quantità di spazio su disco.
Nel corso del tempo, i vecchi registri potrebbero non essere più necessari, rendendoli i principali candidati per la pulizia.
sudo journalctl --vacuum-time=2d # Deletes logs older than 2 days
sudo apt autoclean # Removes outdated package files
Passaggio 4: rimuovere i vecchi kernel (Ubuntu/Debian)
Quando aggiorni il tuo sistema, specialmente su Ubuntu o distribuzioni basate su Debian, vengono spesso installate nuove versioni del kernel Linux.
Tuttavia, i vecchi kernel non vengono rimossi automaticamente e, nel tempo, questi vecchi kernel possono accumularsi e occupare una notevole quantità di spazio su disco.
Rimuoverli è un modo sicuro ed efficace per liberare spazio senza compromettere la funzionalità del sistema.
sudo apt autoremove --purge
Suggerimenti per la prevenzione:
- Imposta la rotazione dei registri: utilizza logrotate per gestire automaticamente le dimensioni dei file di registro e i periodi di conservazione.
- Monitora l'utilizzo del disco: installa strumenti come ncdu per tenere traccia dell'utilizzo del disco e identificare i maiali di spazio.
- Pulizie regolari: Pianifica pulizie periodiche per rimuovere file temporanei, cache e pacchetti inutilizzati.
Scenario 5: Il server smette improvvisamente di rispondere
Stai gestendo un server Linux e, all'improvviso, smette di rispondere e provi a connetterti tramite SSH, ma la connessione scade o si rifiuta di stabilirsi. Potresti anche notare che il server è ancora acceso, ma non reagisce ad alcun comando.
Questa situazione può essere causata da vari problemi, tra cui:
- Elevato utilizzo della CPU o della memoria a causa di processi in esecuzione.
- Colli di bottiglia di I/O su disco, in cui il sistema è sovraccarico di operazioni di lettura/scrittura.
- Kernel panic o crash del sistema.
- Errori di rete, che impediscono l'accesso remoto.
Per ripristinare il controllo, segui questi passaggi per la risoluzione dei problemi.
Passaggio 1: accedere al server localmente o tramite TTY
Se SSH non funziona, prova ad accedere al server direttamente o tramite una sessione TTY:
- Su un computer fisico, utilizzare la console locale.
- In una macchina virtuale, utilizzare la console dell'hypervisor.
- Per i sistemi Linux, passare a un'altra sessione TTY utilizzando
Ctrl + Alt + F2
(oF3
,F4
, ecc.).
Passaggio 2: controllare il carico del sistema
Una volta effettuato l'accesso, controlla il carico del 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 della CPU indica una domanda elevata.
uptime
Successivamente, utilizzare top o htop per monitorare i processi in tempo reale:
top
Or
htop
Cerca i processi che consumano CPU o memoria eccessiva.
Passaggio 3: identificare e terminare i processi in fuga
Per identificare i processi che richiedono più risorse, eseguire:
ps aux --sort=-%cpu | head
Questo elenca i principali processi che consumano CPU, in cui è possibile trovare un processo problematico e terminarlo utilizzando:
kill -9 PID
Sostituire PID
con l'ID processo dell'applicazione problematica.
Passaggio 4: controlla i registri di sistema
Se il sistema continua a rispondere, verificare la presenza di errori nei registri:
sudo tail -f /var/log/syslog
Or
sudo dmesg | tail
Questi comandi visualizzano i messaggi di sistema recenti e i registri del kernel, che possono aiutare a identificare problemi hardware o software.
Passaggio 5: riavvia in modo sicuro utilizzando SysRq
Se il sistema è completamente bloccato, utilizzare la combinazione di tasti SysRq per riavviare in modo sicuro:
echo b > /proc/sysrq-trigger
Ciò attiva un riavvio sicuro, garantendo l'integrità dei dati sincronizzando i dischi e smontando i file system.
Conclusione
La risoluzione dei problemi è un'abilità essenziale per ogni utente Linux. Che si tratti di recuperare file eliminati, reimpostare le password o correggere errori di sistema, conoscere i comandi giusti può far risparmiare tempo e frustrazione.
Hai i tuoi suggerimenti per la risoluzione dei problemi? Condividili nei commenti! Costruiamo insieme un'utile comunità Linux.