df mostra tutto lo spazio occupato, ma du non si somma


28

Sto riscontrando un problema con Ubuntu 12.04 LTS. Questa è la seconda volta che riscontro questo problema nelle ultime 3 settimane. La prima volta è descritta in questa domanda chiusa su StackOverflow . La versione TL; DR è riuscita a utilizzare tutti gli inode su un sistema ext4 450G compilando e costruendo lo stack Android meno di 20 volte.

Pensavo di risolvere il problema riformattando il disco come XFS in modo che la memoria degli inode potesse crescere.

Stamattina, dopo aver fatto una build durante la notte, ho meno di 1 GB di spazio libero. Su questa macchina non c'è altro che ciò che è necessario per costruire Android. Ho fatto 5 build totali sui sorgenti della piattaforma. La build crea un mucchio di file, quindi li elimmo poco dopo con make clean. Non sono in realtà meno di 1 GB, ma gli strumenti lo segnalano in questo modo. Ho cancellato un sacco di file temporanei e ho avuto "40" liberati. Un paio d'ore dopo, solo al minimo, sono tornato a meno di 1 GB di spazio libero.

L'esecuzione di Ubuntu da un'unità flash restituisce quanto segue per la partizione ...

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      468521456 468255460    265996 100% /media/f71c77eb-b4cc-

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda5      1691760 624214 1067546   37% /media/f71c77eb-b4cc-

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       447G  447G  260M 100% /media/f71c77eb-b4cc-

Ecco la prova che qualcosa non va. Quando corro du(con e senza --apparent-size) o Visual Disk Usage Analyzer, dimostro che sto usando solo circa 35 GB o giù di lì. Il 98,7% dello spazio utilizzato è presente /home/eric, ma dunon si somma a quello. La discrepanza è tra /home/erice/home/eric/android

inserisci qui la descrizione dell'immagine

Ho letto le domande pertinenti qui e su SO e di solito suggeriscono che sono file eliminati detenuti da processi aperti. Ho riavviato in un'unità flash per eseguire questo test, quindi non dovrebbe essere file aperto. FWIW, / tmp è vuoto.

Esiste uno strumento che posso installare su un'unità flash per recuperare lo spazio "perso"? Posso provare a liberare memoria sul sistema ed eseguirlo lì, ma presumo sia meglio farlo da un'unità flash.

Dovrei configurare questo sistema in modo diverso? Preferirei non eseguire un'altra pulizia e installazione, ma ho bisogno di un sistema di build Android sostenibile.

FOLLOWUP - Ho dovuto eseguire l' annullamento dell'installazione la settimana scorsa e ho reinstallato la 12.04 per completare il lavoro. Mentre ripasso le build di Android questa settimana, terrò d'occhio l'utilizzazione del disco e fornirò informazioni qui mentre apprenderò di più.

Grazie



@jokerdino Sì, ho seguito le indicazioni in quel thread e in alcuni altri thread simili. Ho riavviato il sistema e il riavvio da un'unità flash. Dopo il riavvio il sistema mostra ancora l'intero disco come occupato. Grazie.
Eric Cloninger,

I dati dei file in Linux vengono conteggiati come riferimento, quindi non è necessario riavviarli spesso come in Windows. Forse hai tenuto in esecuzione l'emulatore mentre sovrascrivi i suoi file di dati sul retro?
aquaherd,

@EricCloninger Devo aggiungere me stesso all'elenco degli utenti come è successo lo stesso problema. Questa è la mia domanda usando 12.10 e questa è la domanda di un utente 11.04.
Lucio,

Inoltre, copia e incolla l'output di ls -lah ~in paste.ubuntu.com e collegalo alla tua domanda.
Lucio,

Risposte:


19

Su Oracle Linux succede quando hai (molti / grandi) file che vengono eliminati ma che sono ancora aperti da un processo in esecuzione. Quindi l'arresto dei processi o il riavvio della macchina aiuta.


Ha funzionato per me su un server abbracciando i file di registro. Grazie!
Miccet,

12
Utilizzare lsof +L1, per verificare l'id del processo e ucciderlo.
Jeff Tian,

3

Di recente mi sono imbattuto in questo, e nel mio caso fsckdoveva essere eseguito.

L'ho fatto touch /forcefsck && reboote dopo pochi minuti il ​​server è tornato online e improvvisamente i miei 6 GB mancanti sono stati liberati.


1

Prima di andare lontano ..... porta il sistema in modalità singolo utente e fai un Fsck COMPLETO (intendo davvero pieno fsck -f /dev/sda5) del filesystem e vedi cosa mostra. È possibile trovare lo spazio come porzioni di aree problematiche sul disco o mancata corrispondenza tra ciò che viene allocato e ciò che è presente sul disco.


sudo fsck -f / dev / sda5 da un'unità flash non ha fatto nulla poiché l'unità è formattata XFS. Mi ha consigliato di usare xfs_check . xfs_check / dev / sda5 non ha restituito risultati. xfs_repair / dev / sda5 ha eseguito le sue riparazioni ma non ha segnalato nulla di insolito. Dopo entrambi, sono ancora pieno al 99%. Grazie
Eric Cloninger,

1

Possiamo fare un test, dudice che hai 10 GB di spazio libero, mentre dfdice 300 MB, puoi scrivere un file (o più file) con dimensioni, per esempio, 2 GB? Se puoi, ciò significa che df è semplicemente sbagliato (e in realtà non c'è nessun problema di "spazio perso"). In caso contrario, allora duè sbagliato (che sarà interessante).


1

Non ho trovato la causa di questo problema, ma è unico per Ubuntu 12.04.

Appena impostato un nuovo server, ho iniziato con Ubuntu 12.04 e mi sono imbattuto in questo; du ha mostrato circa 111 GiB di utilizzo, mentre df era di circa 170 GiB.

L'avvio utilizzando systemrescuecd 3.3.0 e il controllo di nuovo ha mostrato una differenza inferiore a 1 GiB.

Lasciando invariata la partizione e il file system (è ext4), ho rimosso le directory di Ubuntu e ho installato Debian 7.0. Ancora una volta, la differenza tra du e df era <1 GiB.

Con Ubuntu 10.04, sulla stessa partizione e ext4 fs:

Da df -m /,

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2              2814679    407164   2264538  16% /

e da du -mx,

tail -1 /root/diskuse 
406920  .

che è abbastanza vicino.


0

L'immagine che hai postato ti dice dove viene utilizzato lo spazio: /home/eric. Sembra che tu abbia un file molto grande lì dentro che registra tutto lo spazio, o forse un gran numero di file più piccoli. Apri la tua home directory, assicurati di mostrare i file nascosti ( Ctrl+ Hin Nautilus) e ordina per dimensione del file.


0

Questo è spesso causato da file all'interno di una directory, che ha anche un diverso filesystem montato su di essa. Una correzione tipica è l'avvio con un disco di ripristino, o in modalità utente singolo, e svuotare le directory, verificando che non vengano utilizzate come punti di montaggio ( cat /proc/mountso df -h).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.