ext4 中的“幽灵”文件? (ktorrent分配的磁盘空间)

ext4 中的“幽灵”文件? (ktorrent分配的磁盘空间)

我正在使用 KTorrent 下载,并注意到当我选择“在启动 torrent 之前分配磁盘空间”时,它会在启动时创建所有文件(可能是空的),以避免碎片。

当我在文件夹中并使用 时ls,它显示分配的大小,但也显示总大小,而这两者不相加。df还仅报告实际使用的空间。

LS-lH

总计745M
-rw-r--r-- 1 ##### ##### 542M 二月 8 15:55 星际迷航 - 1x01 - The Cage.avi
-rw-r--r-- 1 ##### ##### 351M 二月 8 14:37 星际迷航 - 1x02 - 无人前去的地方.avi
-rw-r--r-- 1 ##### ##### 346M 二月 8 16:04 星际迷航 - 1x03 - The Corbomite Maneuver.avi
-rw-r--r-- 1 ##### ##### 350M 二月 8 16:02 星际迷航 - 1x04 - Mudd's Women.avi
-rw-r--r-- 1 ##### ##### 350M 二月 8 15:35 星际迷航 - 1x05 - 内部敌人.avi
-rw-r--r-- 1 ##### ##### 350M 二月 8 15:37 星际迷航 - 1x06 - 男人陷阱.avi
... (还有很多)

但是,通过该-s选项,我可以获得实际尺寸:

LS-S

总计728M
   0 星际迷航 - 1x01 - The Cage.avi
351M 星际迷航 - 1x02 - 前无古人后无来者之地.avi
 42M 星际迷航 - 1x03 - Corbomite Maneuver.avi
195M 星际迷航 - 1x04 - Mudd's Women.avi
5.8M 星际迷航 - 1x05 - 内部敌人.avi
9.7M 星际迷航 - 1x06 - 男人陷阱.avi
....(尺寸匹配)

这怎么可能?文件系统(ext4)中是否有一些“文件大小”设置,可以ls读取(有时)并df忽略?

答案1

Ktorrent 正在使用稀疏文件。基本上,稀疏文件是一个带有“漏洞”的文件:没有实际的磁盘空间用于文件的“空”区域(即仅包含零)。

因此,您的文件看起来具有一定的大小(在您的情况下,是您的《星际迷航》视频的大小),但实际上没有将磁盘空间用于那些尚未“填充”的区域(在您的情况下,Ktorrent 的部分)尚未下载),从而避免在真正需要时浪费磁盘空间。

相反,文件系统使用元数据来指示这些区域是空的。如果你要读取它们,你只会得到零。

du您可以使用或查看此类文件的实际磁盘使用情况,并使用或ls -s查看其表观磁盘使用情况。du -bls -l

df和报告的总大小ls -l仅显示真实的磁盘使用情况。

相关内容