Ubuntu root drive kehabisan ruang, saya tidak dapat menemukan sumber melalui du atau lsof

10

Drive root pada mesin Ubuntu 15.10 hampir kehabisan ruang, tetapi saya tidak dapat menemukan sumbernya. Drive yang kehabisan ruang adalah sdb2, 313M dari 51G tersedia. Sistem file adalah ext4.

Berikut sudo du -h / --max-depth=1hasilnya:

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           789M  9.4M  780M   2% /run
/dev/sdb2        51G   48G  313M 100% /
tmpfs           3.9G   12K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sdb1       511M  3.4M  508M   1% /boot/efi
tmpfs           789M  8.0K  789M   1% /run/user/1000
/dev/sda1       239G  122M  239G   1% /media/DATA

Tetapi saya tidak dapat menemukan file besar. Total penggunaan di /tampaknya hanya 3,4 G. Ini adalah output dari sudo du -h / --max-depth=1:

4.0K    /mnt
188K    /tmp
406M    /home
339M    /var
8.1M    /etc
361M    /lib
du: cannot access ‘/proc/7626/task/7626/fd/4’: No such file or directory
du: cannot access ‘/proc/7626/task/7626/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/7626/fd/3’: No such file or directory
du: cannot access ‘/proc/7626/fdinfo/3’: No such file or directory
0    /proc
13M    /bin
du: cannot access ‘/run/user/1000/gvfs’: Permission denied
9.4M    /run
1.6M    /root
4.0K    /lib64
16K    /lost+found
0    /sys
1.1M    /media
12K    /dev
222M    /opt
2.0G    /usr
62M    /boot
9.5M    /sbin
4.0K    /cdrom
8.0K    /srv
3.4G    /

Saya menemukan pertanyaan serupa di sini: Di luar ruang disk, apa sumbernya?

Dalam hal ini, sepertinya masalah disebabkan oleh log yang dihapus yang entah bagaimana tidak ditutup oleh proses yang sedang berjalan, dan cara untuk menemukannya adalah dengan menjalankannya sudo lsof | grep deleted. Dalam kasus saya, hasilnya adalah

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

Juga, masalahnya tetap ada setelah me-reboot sistem, jadi tidak mungkin itulah penyebabnya.

Solusi lain yang disarankan adalah meng-unmount /var/lib/ureadahead/debugfs, tapi saya ragu untuk melakukannya.

Apa lagi yang bisa salah?

biggvsdiccvs
sumber
lakukan reboot. ada beberapa file yang dihapus tetapi terkunci.
Ipor Sircer
Saya mencobanya, tetapi tidak ada yang berubah.
biggvsdiccvs
1
Periksa kesalahan filesystem, dan perbarui ke rilis Ubuntu yang didukung.
Michael Hampton
6
jalankan saja "du -sh *" saat Anda berada di folder root. Jangan gunakan --max-depth flag
Orphans
1
@Orphans sepertinya saya tidak melihat yang *bersarang melawan ypu"
user9517

Jawaban:

21

Yah, itu hanya dugaan tetapi mungkin berhasil: Saya pikir pengguna pernah lupa untuk me /dev/sda1- mount /media/DATAdan semua data ditulis /dev/sdb2alih-alih /dev/sda1.

Untuk memeriksanya, tolong, lepas /media/DATAdan periksa file dan folder di bawah jalur ini.

Fedor Dikarev
sumber
Terima kasih, memang begitu! Kecuali saya pikir itu mungkin koneksi drive yang buruk daripada siapa pun yang lupa memasang apa pun. Itu seluruh setup tidak dapat diandalkan dan saya tidak yakin bagaimana drive yang terpasang ke /media/DATA- itu tidak di /etc/fstab.
biggvsdiccvs
Jika Anda tidak ingin meng-unmount sistem file (misalnya, jika Anda tidak ingin mematikan proses yang menggunakannya), Anda dapat menggunakan bind mount untuk melihat (dan menghapus) file yang disembunyikan oleh mount.
Johnny
7

Saya secara teratur menggunakan 'ncdu' untuk itu, cukup kecil untuk tetap menginstalnya.

sudo apt-get install ncdu

Pastikan Anda menjalankannya sebagai root atau melalui sudo:

sudo ncdu /
Roy Jacobs
sumber
1
Tidak akan membantu dalam kasus ini.
Gerald Schneider
2

Ketika Anda ingin tahu di mana ruang yang digunakan dalam sistem file tertentu, Anda dapat menggunakan perintah ini untuk menemukan 20 direktori terbesar, yang dapat membantu Anda menemukan di mana ruang paling banyak digunakan,

du -m / |sort -n |tail -20

Tetapi filesystem root lebih sulit, karena semua filesystem di-mount ke root. Tetapi argumen -x (--one-file-system) hanya akan melaporkan sistem file yang diinginkan,

du -m -x / |sort -n |tail -20
ChuckCottrill
sumber
1
df -h *.* 

Mungkin membantu.

Lintasi direktori dan jumlah byte yang digunakan.

steJav
sumber