df menunjukkan semua ruang yang diambil, tetapi du tidak bertambah

28

Saya mengalami masalah dengan Ubuntu 12.04 LTS. Ini adalah kedua kalinya saya mengalami masalah ini dalam 3 minggu terakhir. Pertama kali dijelaskan dalam pertanyaan tertutup ini di StackOverflow . Versi TL; DR adalah saya berhasil menggunakan semua inode pada sistem 450G ext4 yang menyusun dan membangun tumpukan Android kurang dari 20 kali.

Saya pikir saya sedang memecahkan masalah dengan memformat ulang disk sebagai XFS sehingga penyimpanan inode dapat tumbuh.

Pagi ini setelah melakukan pembangunan semalam, saya memiliki ruang kosong kurang dari 1GB. Tidak ada apa-apa di mesin ini selain apa yang dibutuhkan untuk membangun Android. Saya telah melakukan 5 total build pada sumber platform. Build membuat banyak file, lalu saya hapus sesaat setelahnya make clean. Saya tidak benar-benar kurang dari 1GB tetapi alat melaporkannya seperti itu. Saya menghapus banyak file sementara dan memiliki sekitar 40GB "dibebaskan". Beberapa jam kemudian, hanya diam, saya kembali ke gratis kurang dari 1GB.

Menjalankan Ubuntu dari flash drive mengembalikan yang berikut untuk partisi ...

$ 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-

Inilah bukti bahwa ada sesuatu yang salah. Ketika saya menjalankan du(dengan dan tanpa --apparent-size) atau Visual Usage Analyzer visual, saya menunjukkan bahwa saya benar-benar hanya menggunakan sekitar 35GB atau lebih. 98,7% dari ruang yang digunakan ada /home/eric, tetapi dutidak menambahkannya. Perbedaannya adalah antara /home/ericdan/home/eric/android

masukkan deskripsi gambar di sini

Saya telah membaca pertanyaan-pertanyaan yang relevan di sini dan di SO dan mereka biasanya menyarankan itu menghapus file yang dipegang oleh proses terbuka. Saya reboot ke flash drive untuk menjalankan tes ini, jadi seharusnya tidak membuka file. FWIW, / tmp kosong.

Apakah ada alat yang dapat saya instal pada flash drive untuk memulihkan ruang 'hilang'? Saya dapat mencoba membebaskan memori pada sistem dan menjalankannya di sana, tetapi saya berasumsi lebih baik melakukan ini dari flash drive.

Haruskah saya mengkonfigurasi sistem ini dengan cara yang berbeda? Saya lebih suka tidak melakukan penghapusan dan pemasangan lagi, tetapi saya membutuhkan sistem pembangunan Android yang berkelanjutan.

FOLLOWUP - Saya harus menginstal instalasi minggu lalu dan menginstal ulang 12,04 untuk menyelesaikan pekerjaan. Ketika saya melihat Android build lagi minggu ini, saya akan mengawasi penggunaan disk dan memberikan informasi di sini karena saya belajar lebih banyak.

Terima kasih

Eric Cloninger
sumber
1
Sudahkah Anda memeriksa Mengapa df dan du menunjukkan keluaran yang berbeda ?
jokerdino
@jokerdino Ya, saya mengikuti petunjuk di utas itu dan beberapa utas serupa lainnya. Saya me-restart sistem serta memulai kembali dari flash drive. Setelah restart sistem masih menampilkan seluruh disk sebagai terisi. Terima kasih.
Eric Cloninger
Data file di Linux dihitung referensi sehingga Anda tidak perlu me-restart sesering di Windows. Mungkin Anda tetap menjalankan emulator sambil menimpa file data di bawahnya?
aquaherd
@EricCloninger Saya harus menambahkan diri saya ke daftar pengguna bagaimana terjadi masalah yang sama. Ini adalah pertanyaan saya menggunakan 12.10 dan ini adalah pertanyaan dari pengguna 11.04.
Lucio
Juga, salin dan tempel output ls -lah ~di paste.ubuntu.com dan tautkan dalam pertanyaan Anda.
Lucio

Jawaban:

19

Di Oracle Linux, ini terjadi ketika Anda memiliki (banyak / besar) file yang dihapus tetapi masih terbuka oleh proses yang sedang berjalan. Kemudian hentikan proses atau reboot mesin membantu.

Michel Samia
sumber
Bekerja untuk saya di server yang memeluk file log. Terima kasih!
miccet
12
Gunakan lsof +L1, untuk memeriksa id proses, dan bunuh.
Jeff Tian
3

Saya baru-baru ini mengalami ini, dan dalam kasus saya fsckperlu dijalankan.

Saya lakukan touch /forcefsck && rebootdan setelah beberapa menit, server kembali online dan tiba-tiba hilang 6 GB hilang.

mpontillo
sumber
1

Sebelum Anda melangkah jauh ..... bawa sistem ke mode pengguna tunggal dan lakukan fsck LENGKAP (saya benar-benar berarti penuh fsck -f /dev/sda5) dari sistem file dan lihat apa yang ditunjukkannya. Anda mungkin menemukan ruang sebagai bagian dari area masalah pada disk Anda atau ketidakcocokan antara apa yang dialokasikan dan apa yang ada pada disk.

mdpc
sumber
sudo fsck -f / dev / sda5 dari flash drive tidak melakukan apa-apa saat drive diformat XFS. Itu menyarankan saya untuk menggunakan xfs_check . xfs_check / dev / sda5 tidak mengembalikan hasil. xfs_repair / dev / sda5 menjalankan perbaikannya tetapi tidak melaporkan sesuatu yang tidak biasa. Setelah keduanya, saya masih 99% penuh. Thx
Eric Cloninger
1

Kita dapat melakukan tes, dumengatakan Anda memiliki ruang kosong 10GB, sementara dfkata 300 MB, dapatkah Anda menulis file (atau beberapa file) dengan ukuran, katakanlah, 2 GB? Jika Anda bisa, itu berarti bahwa df hanya salah (dan sebenarnya tidak ada masalah 'ruang hilang'). Jika tidak, maka duitu salah (yang akan menarik).

user_1729
sumber
1

Saya belum menemukan penyebab masalah ini, tetapi unik untuk ubuntu 12.04.

Baru saja menyiapkan server baru, saya mulai dengan Ubuntu 12.04 dan mengalami ini; du menunjukkan sekitar 111 penggunaan GiB, sementara df sekitar 170 GiB.

Booting menggunakan systemrescuecd 3.3.0 dan memeriksa lagi menunjukkan perbedaan kurang dari 1 GiB.

Membiarkan partisi dan sistem file (ext4) tidak berubah, saya memindahkan direktori ubuntu dan menginstal Debian 7.0. Sekali lagi, perbedaan antara du dan df adalah <1 GiB.

Dengan ubuntu 10.04, pada partisi yang sama dan ext4 fs:

Dari df -m /,

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

dan dari du -mx,

tail -1 /root/diskuse 
406920  .

yang cukup dekat.

pengguna163269
sumber
0

Gambar yang Anda diposting memberitahu Anda di mana ruang yang digunakan: /home/eric. Sepertinya Anda memiliki file yang sangat besar di sana memonopoli semua ruang, atau mungkin sejumlah besar file yang lebih kecil. Buka direktori home Anda, pastikan untuk menampilkan file tersembunyi ( Ctrl+ Hdi Nautilus), dan urutkan berdasarkan ukuran file.

psusi
sumber
0

Ini sering disebabkan oleh file di dalam direktori, yang juga memiliki sistem file berbeda yang terpasang di dalamnya. Perbaikan tipikal adalah boot dengan disk penyelamat, atau dalam mode pengguna tunggal, dan mengosongkan direktori, setelah memverifikasi bahwa mereka tidak digunakan sebagai titik pemasangan ( cat /proc/mountsatau df -h).

Tim Small
sumber