Gli errori senza una causa chiara sono i problemi più irritanti da affrontare. E anche se Linux è solitamente specifico nei suoi messaggi di errore, questa è una delle poche volte in cui sbaglia.
Il messaggio "Errore Spazio vuoto sul dispositivo" non spiega molto, soprattutto se l'unità è lungi dall'essere piena. Perché viene visualizzato questo messaggio di errore? Perché non riesci a creare nuovi file nonostante disponga di spazio sufficiente sul disco? E, soprattutto, come risolverlo?
Scopriamolo.
Il tuo disco rigido ha effettivamente abbastanza spazio?
Prima di affrettarti a trovare una soluzione, assicurati innanzitutto che ci sia un problema. Dopotutto, se lo spazio su disco è effettivamente esaurito nel tuo sistema, non c'è bisogno di farsi prendere dal panico. Puoi semplicemente rimuovere i dati non necessari per liberare più spazio.
Esistono due comandi di sistema Linux per ottenere informazioni sullo spazio su disco: du e df. Il comando du stima l'utilizzo dello spazio su disco, mentre il comando df analizza lo spazio libero presente sul disco. Usandoli insieme a sudo ottieni un rapporto accurato di quanto spazio è effettivamente disponibile sul disco.
Ora utilizzeremo df per vedere quanto spazio libero è disponibile. Il comando df è molto più semplice da usare poiché mostra solo i filesystem montati e le relative statistiche di utilizzo. Ancora una volta, utilizzeremo il flag -h per rendere l'output leggibile.
sudo df -h .
L'idea è di sommare i risultati dei comandi du e df. Qualsiasi discrepanza indica spazio su disco che non è disponibile liberamente nonostante non venga utilizzato da file o cartelle.
Perché Linux mostra "Spazio rimasto sul dispositivo"?
Se visualizzi il messaggio di errore "Spazio insufficiente sul dispositivo" nonostante disponga di spazio libero sufficiente sul disco, la colpa non è dell'hardware. Capire la causa esatta dell'errore può richiedere un po' di tempo per la risoluzione dei problemi.
Correzione 1: riavviare i processi utilizzando i file eliminati
La causa più probabile dell'errore "Spazio esaurito sul dispositivo" è un processo che utilizza ancora un file eliminato. Per fortuna, correggere questo errore è facile. Devi solo riavviare il processo per liberare lo spazio di archiviazione riservato.
Dopodiché lo spazio di archiviazione occupato dal processo dovrebbe essere nuovamente disponibile, consentendoti di scrivere file senza incorrere in errori.
Correzione 2: controllare gli inode
Sebbene ogni unità abbia un numero elevato di inode, è finita. E se il tuo sistema è pieno di un numero incredibile di file, è possibile raggiungere questo limite prima di esaurire la capacità di archiviazione dell'unità. Ecco perché è meglio avere file di grandi dimensioni piuttosto che troppi piccoli.
Puoi facilmente verificare la disponibilità degli inode utilizzando il flag -i con il comando df. In questo modo:
sudo df -i
Ciò indicherà chiaramente il numero totale di inode presenti nel filesystem, insieme alla quantità attualmente in uso. Se non sono rimasti inode liberi sul tuo sistema, questa è la fonte dell'errore "Spazio esaurito sul dispositivo".
Poiché gli inode vengono creati solo alla prima formattazione dell'unità, non è possibile generare altri inode. Tutto quello che puoi fare è eliminare tutti i file non necessari per liberare gli inode per file futuri.
Correzione 3: contrassegnare i blocchi danneggiati
La corruzione dei dati è il destino inevitabile di qualsiasi disco rigido. Anche se una nuova unità non presenta questo problema, i dischi rigidi più vecchi inizieranno gradualmente a "guastare".
Ciò significa che parti del disco rigido vengono rese inutilizzabili, anche se il filesystem le considera ancora funzionanti. Questi blocchi danneggiati gonfiano falsamente lo spazio libero apparente sull'unità, quando in realtà non è possibile scrivere alcun file su di essi. Ciò porta a un errore "Spazio esaurito sul dispositivo", poiché il sistema operativo tenta e non riesce a memorizzare i dati in queste posizioni.
Non esiste un modo reale per risolvere questo problema, poiché i settori danneggiati sono il risultato dell'usura fisica di un disco rigido. L'unica cosa che puoi fare è contrassegnare i settori danneggiati in modo che non vengano più referenziati dal file system..
Per fare ciò è necessario eseguire l'avvio da CD dal vivo, poiché non è possibile eseguire un controllo del file system all'interno di un'unità in esecuzione. Una volta fatto ciò, usa semplicemente il seguente comando:
sudo fsck -vcck /dev/sda
Questo sostituisce /dev/sda con il percorso dell'unità che desideri riparare. Ciò rileverà automaticamente tutti i blocchi danneggiati sull'unità e li contrassegnerà come inutilizzabili. Tuttavia, non ti offrirà alcuna capacità di archiviazione aggiuntiva, quindi preparati a ripulire alcuni file inutili per liberare spazio sull'unità.
Qual è il modo migliore per correggere l'errore "Spazio esaurito sul dispositivo"?
Il motivo abituale per cui viene visualizzato l'errore "Spazio esaurito sul dispositivo" su Ubuntu o su qualsiasi altra distribuzione Linux è che un file eliminato è ancora utilizzato da un processo in esecuzione. Ciò riserva lo spazio di archiviazione occupato dal file, impedendo ad altre operazioni di scrivere dati in quello spazio.
Risolvere questo problema è anche il più semplice, poiché tutto ciò che devi fare è riavviare il processo in questione. Le altre cause dell'errore, tuttavia, non sono così facili da risolvere.
Se la tua unità è afflitta da blocchi di dati errati o ha esaurito gli inode, non esiste un modo diretto per risolvere questi problemi. È necessario eliminare i file esistenti per fare spazio alla scrittura di nuovi dati.
.