为什么从 HFS+ 复制到 Ext4 时会出现大小差异?

为什么从 HFS+ 复制到 Ext4 时会出现大小差异?

我正在将一堆文件从 HFS+ 卷复制到我的 Ext4 Ubuntu 文件系统。它们都是电影文件。当我复制一个文件时,它几乎总是会变大 4K。复制的文件正好比原始文件大 4,096 字节。

我认为这是因为添加了某种元数据,但它到底是什么?

此外,在 600 个文件中,有两个文件大小没有增加。它们完全相同。为什么会这样?

答案1

我不知道。但这很正常。

您可以尝试使用 du 查看文件:

du -c *.mov
du -c --apparent-size *.mov

第一个命令将告诉磁盘使用情况(磁盘上占用了多少空间)。

第二个将显示数据的实际大小(与文件存储的位置无关)。

答案2

我猜这两个文件系统的块大小不同。块是存储单元,允许文件系统进行一些抽象以跟踪空间分配。单个块是最小存储单元;使用 4K 块的文件系统将使用 4K 块来存储 1K 文件。更小的块需要更多的磁盘空间来存储元数据。最佳块大小将根据典型文件大小、存储介质的总容量和使用的文件系统而有所不同。现代文件系统将根据后两个因素选择合理的块大小;系统管理员可以根据对文件系统使用的期望调整块大小或选择文件系统。

因此,这两个文件系统可能因为磁盘大小不同而具有不同的块大小,或者因为这两个不同的文件系统具有不同的块大小优化方案,很可能是因为对元数据的处理方式不同。两个文件没有占用额外的 4K,可能正好小到每个文件占用的块比前者少一个。

相关内容