我经常需要将大型数据集从多个较小的驱动器复制到一个较大的驱动器。最近,我一直使用 WD Easystore 12TB 外置 USB 3.0 硬盘作为我的目标。复制系列中的所有文件大约需要 3 天。目标驱动器大部分时间处于空闲状态,等待源读取。通过同时从每个源运行 cp,我可以将复制时间控制在 20 小时以内,但这会使大多数文件变得支离破碎。
有一个 cp 补丁添加了预分配选项,但仅适用于支持 Fallocate 系统调用的文件系统,而 ntfs-3g 则不支持。 Rsync 有一个预分配选项,但它失败并显示“rsync:do_fallocate”“不支持操作(95)”,大概是出于同样的原因。
我尝试使用块大小大于文件大小的 dd ,希望如果直到整个文件已经在内存中才进行写入,则分配将是连续的,但文件最终仍然是碎片。我尝试使用 ntfsfallocate 为所有文件预分配空间(23k 文件大约需要 12 小时),但 cp 在覆盖文件时似乎没有使用现有分配。
是否有任何发行版都支持 Fallocate 的 Linux NTFS 驱动程序?
其他建议?