Ubuntu的“设备上没有剩余空间”/ home,df显示100%满,ds显示很多,less得多

可能重复:
df和du的Linux根分区大小不同

在Ubuntu 12.04服务器上,普通用户无法再在/home创build或添加文件,遇到“设备上没有剩余空间”错误。

/home目录的容量为1.7TB,据我所知,在实际的数据存储或inode使用方面还远远不够。

df -h显示:

 Filesystem Size Used Avail Use% Mounted on /dev/md2 1.0T 18G 955G 2% / udev 7.7G 4.0K 7.7G 1% /dev tmpfs 3.1G 320K 3.1G 1% /run none 5.0M 0 5.0M 0% /run/lock none 7.7G 0 7.7G 0% /run/shm cgroup 7.7G 0 7.7G 0% /sys/fs/cgroup /dev/md3 1.7T 1.7T 0 100% /home /dev/md1 496M 45M 426M 10% /boot 

/home的确看起来相当饱满。

du -hs /homebuild议否则:

 1.4G /home 

没有出现inode问题 – df -i

 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/md2 67108864 75334 67033530 1% / udev 2013497 527 2012970 1% /dev tmpfs 2015816 440 2015376 1% /run none 2015816 2 2015814 1% /run/lock none 2015816 1 2015815 1% /run/shm cgroup 2015816 9 2015807 1% /sys/fs/cgroup /dev/md3 113909760 105981 113803779 1% /home /dev/md1 131072 239 130833 1% /boot 

我最近从/home删除了几千兆字节的应用程序caching和日志数据,但是这个数字在几十亿字节之内,远不及/home的容量。

更新1

 du -hs --apparent-size /home 1.2G /home du -hs /home 1.4G /home 

这里可能会发生什么?

检查文件仍然以写入模式打开:

 lsof | awk '/deleted/ && $4 ~ /[0-9]+w/ { print $0 }' 

你会看到这样的东西:

 ossec-mai 1111 ossecm 4w REG 3,3 ... (deleted) 

然后find仍然使用该文件的进程:

 cd /proc/1111/fd ls -l 4 

您可以释放空间,而无需重新启动服务,将大小降至零:

 > /proc/1111/fd/4 

试一试。