从外部 vfat 磁盘到本地 ext4 的 rsync 产生截然不同的大小

从外部 vfat 磁盘到本地 ext4 的 rsync 产生截然不同的大小

我找到了一个较旧的外部硬盘,我想将其重新用于其他用途。我正在将其同步到通过网络运行的 NAS,但需要很长时间。

所以我决定先rsync到我的本地驱动器(SSD),然后再做最后的备份到NAS。

我跑了rsync -avvz --progress /media/ubuntu/9AB4-7DB9/ubuntu/ bak。这似乎已经结束了。

但是当我比较两个目录的大小时,它们有很大不同。

du -kh bak
29G bak

du -kh /media/ubuntu/9AB4-7DB9/ubuntu/
56G /media/ubuntu/9AB4-7DB9/ubuntu/

这怎么可能?我一开始以为是vfat文件系统的问题——但到了这个程度?我不敢相信它的大小几乎翻了一番

我还认为这可能是-z的压缩选项rsync,但据我了解,它应该只在传输过程中压缩: -z, --compress compress file data during the transfer

有任何想法吗?我很困惑,只是想确保我的备份是否完整。谢谢,

答案1

du 命令以块而不是字节为单位测量文件大小。由于 vfat 和 ext4 使用完全不同的块大小,因此 2 倍甚至 8 倍的大小变化也不足为奇。

ext4 通常使用 4k 块,但 ext4 和 vfat 都在格式化磁盘时使用可变块大小设置。 vfat支持512b到32k之间的逻辑块大小; ext4 支持 1k 到 4k 之间的块大小。

如果是旧磁盘,则可能是 512b 块,也可能是 2k,具体取决于磁盘大小和属性。如果您有很多小于 2k 的文件,则在复制到 4k 块大小的 ext4 时,每个文件的大小都可能加倍。

相关内容