menganalisis penggunaan disk mengabaikan mount

67

Ubuntu mengeluh bahwa sistem file root saya hampir penuh, tetapi ketika saya menggunakan baobab(alias "Disk Usage Analyzer") atau du -hmeringkas penggunaan semua sistem file lain yang dipasang juga.

Bagaimana saya bisa mengecualikan sistem file lain yang dipasang di berbagai subdirektori?

drevicko
sumber

Jawaban:

72

baobab: Jika Anda ingin menggunakan baobab, ini dimungkinkan dengan memasang sistem file root di tempat lain dan menganalisisnya. Dengan cara ini, sistem file lain tidak akan di-mount di mount root baru dan semua file yang disembunyikan oleh mount di bawah /akan dibuka dan dihitung dalam analisis Anda.

Dengan anggapan sistem file root Anda aktif sda1( dfakan memberi tahu Anda perangkat mana itu):

mkdir root-rebound
sudo mount /dev/sda1 root-rebound
baobab root-rebound

dan kemudian merapikan setelah Anda selesai:

sudo umount root-rebound
rmdir root-rebound

Atau Anda dapat meng-unmount sistem file tersebut secara manual. Anda juga dapat memindai hanya folder rumah Anda, karena kemungkinan besar akan berisi sumber penggunaan ruang disk yang berlebihan.

du memiliki dua opsi yang dapat mencegah penghitungan filesystem lain:

 -x, --one-file-system
         skip directories on different file systems
     --exclude=PATTERN
         exclude files that match PATTERN

Jadi,

du -hx

akan mengabaikan semua sistem file yang terpasang atau

du -h --exclude /media

akan mengabaikan semua file di /mediamana sebagian besar sistem file dipasang.

Jika Anda menggunakan du, mengurutkan sehingga hal-hal terbesar muncul di bagian bawah daftar dapat membantu menguraikan output. misalnya:

du -hx | sort -h
Cumulus007
sumber
2
Keren, saya tidak melihat opsi -x. Saya juga menemukan cara lain: Anda dapat me-mount sistem file lagi di suatu tempat, kemudian gunakan du atau baobab untuk menganalisisnya. Juga, saya merasa berguna untuk dilakukan du -hx | sort -h, meskipun baobab lebih mudah diinterpretasikan.
drevicko
@ Cumulos007 - jika itu keren dengan Anda, saya akan menambahkan solusi dan saran saya untuk jawaban Anda dan menerimanya
drevicko
Saya baik-baik saja!
Cumulus007
1
@wim no, versi GUI sepertinya tidak bisa menggunakan opsi -x du. Memasang sistem berkas root di tempat lain berfungsi - itulah yang saya lakukan hari ini (:
drevicko
1
du -kx | sort -nadalah jalan saya
Alejandro Teixeira Muñoz
6

Tergantung pada jenis sistem file Anda mungkin tidak diizinkan untuk me-mount sistem file root pada titik pemasangan di bawah /. Anda akan mendapatkan sesuatu yang mirip dengan ini:

mount: /dev/sda1 already mounted or /mnt busy
mount: according to mtab, /dev/sda1 is mounted on /

Mounting read only ( -o ro) mungkin membantu. Jika gagal, gunakan bind mount:

mount --bind / /mnt

Setelah dipasang, gunakan alat apa pun untuk menganalisis penggunaan disk, yaitu du -sh * | sort -h

Bram
sumber
3

Laporan bug ini menjelaskan cara mengkonfigurasi baobab untuk mengabaikan direktori. Sayangnya Anda tidak dapat melakukannya di dalam aplikasi itu sendiri, tetapi Anda harus menggunakan dconf-editordan membuka org.gnome.baobab.preferences. Di sini Anda akan menemukan item excluded-uris; ubah ini menjadi ['file:///path/to/ignore'](bekerja dengan tanda kutip tunggal untuk saya).

geira
sumber
Ini tidak benar-benar menjawab pertanyaan, tetapi ini adalah info yang berguna, dan seseorang yang mencari info tersebut mungkin berakhir di sini, jadi saya upvoting (:
drevicko
Ini menjawab pertanyaan tentang cara mengabaikan mount di baobab (dengan mengecualikan poin mount) tanpa harus me-remount partisi root. Setengah lainnya dari pertanyaan (du) sudah dijawab di pos yang diterima.
geira
2

Baobab berupaya memberi Anda kendali atas perangkat / partisi yang Anda pindai - buka Edit->Preferences. Biasanya, Anda hanya ingin memindai perangkat di Mount Point /. Ini tidak mengenali semua jenis tautan / mount / binding , jadi pada akhirnya Baobab mungkin masih menghasilkan hasil yang membingungkan jika Anda memiliki konfigurasi non-sepele.


Sebab du, fungsi shell berikut disebut dutopakan menampilkan tingkat atas folder yang ditentukan (atau folder saat ini). Dengan ini, Anda dapat menyelidiki sub-folder satu per satu.

function dutop() { du --max-depth=1 --one-file-system -h $@ |sort -h; }

Ini kemungkinan akan melaporkan kesalahan "Izin ditolak" yang tidak penting jika Anda menerapkannya /, tetapi Anda dapat menyelesaikannya dengan sesuatu seperti yang berikut ini, yang akan meminta kata sandi Anda (jika Anda belum memberikannya).

function sudutop() { sudo du --max-depth=1 --one-file-system -h $@ |sort -h; }

Untuk folder besar, ini mungkin memakan waktu cukup lama. Mereka tidak akan melaporkan status tambahan apa pun karena operasi pengurutan menyangga semua hasil antara. Tidak masalah untuk membatalkan dengan Ctrl-C jika Anda bosan menunggu.

bangsawan
sumber