web-dev-qa-db-ja.com

dfはext4パーティションがいっぱいであることを報告しますが、データはありません

最近、ホームパーティションがいっぱいであるという警告を受け取りました。 /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にコピーされたデータがたくさんありました。残念、ごめんなさい。

6
hannes

何らかのプロセスがまだ削除されたファイルを開いている可能性があります。この場合、それらは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

削除された大きなファイルを開いたプロセスがある場合、プロセスを停止するだけでディスク容量を再利用できます。あるいは、再起動しても同じことが行われます。

11
Richm

各ファイルシステムには、一定量のiノードとブロックを格納できます。十分なスペースがある場合でも、それ以上進むことはできません。

で設定を確認してください

dumpe2fs /dev/sda5

(ここでは重要なのは上位50行のみです)。

ブロックサイズより小さい小さなファイルが多数ある場合、多くのスペースが無駄になります。

1
ddeimeke