最近、ホームパーティションがいっぱいであるという警告を受け取りました。 /home
にマウントされたExt4パーティションであり、/dev/sda
は240 GB SSDです。
hannes@XFLR6 ~> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 5.2G 13G 30% /
none 3.9G 792K 3.9G 1% /dev
none 3.9G 2.4M 3.9G 1% /dev/shm
none 3.9G 712K 3.9G 1% /var/run
none 3.9G 0 3.9G 0% /var/lock
/dev/sda5 193G 175G 7.9G 96% /home
/dev/sdb5 357G 92G 264G 26% /mnt/schacht
ご覧のとおり、df -h
(およびgparted)は、/dev/sda5
が96%満杯であることを報告します。ただし、Ubuntu Disk Usage Analyzerおよびdu -h
は約89 GBのデータしか検出しません。 ~/.gvfs
は空で、/home
の下に他のファイルシステムはマウントされていません。それはどうですか? du
をルートとして実行しようとしましたが、何も変わりません。
root@XFLR6 ~# Sudo fdisk -l /dev/sda
Disk /dev/sda: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003e4c5
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2432 19530752 83 Linux
/dev/sda2 2432 28450 208984065 5 Extended
/dev/sda5 2432 27963 205077504 83 Linux
/dev/sda6 27963 28450 3905536 82 Linux swap / Solaris
編集:whoops-~
ではなく/home
でのみdu
を実行しました。意図せずに/home
にコピーされたデータがたくさんありました。残念、ごめんなさい。
何らかのプロセスがまだ削除されたファイルを開いている可能性があります。この場合、それらはdu
出力には表示されませんが、df
出力にはカウントされます。
これらをチェックする簡単な方法の1つは、/proc
をユーザーroot
としてリストすることです(ヒントSudo su
はルートシェルを取得する必要があります)。開いているが削除されたファイルには、シンボリックリンクターゲット名の最後に(deleted)
が付きます。
ls -l /proc/*/fd/* | grep deleted | grep /home
開いているファイルのリストが表示されます。それができたら、特定のファイルのls -lL
からファイルのサイズがわかるはずです。
例として(ここでは/tmp
に例がないため、システムで/home
を使用)、ユーザーmysql
が所有するいくつかのファイルがあります。
richm@viking:/$ Sudo su
root@viking:/# ls -l /proc/*/fd/* | grep deleted | grep /tmp
lrwx------ 1 root root 64 Oct 13 06:30 /proc/1489/fd/11 -> /tmp/ibwmCqpg (deleted)
lrwx------ 1 root root 64 Oct 13 06:30 /proc/1491/fd/12 -> /tmp/ib9MTMQi (deleted)
root@viking:/# ls -lL /proc/1489/fd/11
-rw------- 0 mysql2 mysql2 0 Aug 24 14:09 /proc/1489/fd/11
root@viking:/# ls -lL /proc/1491/fd/12
-rw------- 0 mysql mysql 1320 Oct 15 13:40 /proc/1491/fd/12
削除された大きなファイルを開いたプロセスがある場合、プロセスを停止するだけでディスク容量を再利用できます。あるいは、再起動しても同じことが行われます。
各ファイルシステムには、一定量のiノードとブロックを格納できます。十分なスペースがある場合でも、それ以上進むことはできません。
で設定を確認してください
dumpe2fs /dev/sda5
(ここでは重要なのは上位50行のみです)。
ブロックサイズより小さい小さなファイルが多数ある場合、多くのスペースが無駄になります。