文件系统 – du -sh和df -h之间的不一致

前端之家收集整理的这篇文章主要介绍了文件系统 – du -sh和df -h之间的不一致前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道当du -sh的结果小于文件系统使用df -h返回的结果时,这种情况很常见. (因为有些文件在进程等中仍然是打开的.)但在我的情况下,我有相反的结果.

我正在运行Ubuntu 12.04并尝试获取NFS挂载的已用大小

df -h返回使用的270G,而挂载文件夹的du -sh返回使用的320G.

更新:
我正在使用以下选项安装分区:

nas-server:/path/to/mount /mnt/mount/point  nfs proto=tcp,rsize=8192,wsize=8192,hard,intr,exec

有谁知道这可能来自哪里?磁盘上的正确数量应为270G~

谢谢你的帮助.我会提供任何必要的额外信息.

解决方法

du计算硬链接文件使用的块一次,而不是每个硬链接一次.但是,重复数据删除有一些方法可能会失败:

>表du用于删除链接文件是固定大小的.如果您拥有的硬链接文件多于表可以存储的文件,则重复数据删除可能不会成功. (某些版本的du有一个动态大小的表,没有这个问题.)
>重复数据删除基于inode值.如果NAS服务器为硬链接文件显示不同的inode编号,则无法进行重复数据删除.有些NAS服务器可以很好地呈现inode,因为它们使用的是具有inode的文件系统.其他人必须“假装”并且做得不好.

顺便说说…

du只计算文件数据.

df计数块用于文件数据加上所有元数据:目录,超级块,inode表,直接/间接/双向直接块等.

因此,df应该返回比du更小的“使用”尺寸.如果发生相反的情况,我会假设这种重复数据删除被破坏或者NAS服务器已经做了一些让df显示无效信息的东西.

猜你在找的Linux相关文章