如何在 FAT 文件系统中使用 rsync?

如何在 FAT 文件系统中使用 rsync?

我想编写一个简单的备份脚本,将一些数据保存到 FAT 驱动器。我应该重新格式化驱动器并使用更好的文件系统,还是可以将 rsync 与 FAT 一起使用?如果可以,我可能会遇到什么问题?性能会差很多吗?

编辑:这是在 Linux 上,甚至不知道 Windows 有 rsync。源是各种文件系统(很乱),目标当前格式化为 FAT32。

谢谢您的回答,我可能会重新格式化,因为我不完全确定我们将拥有的文件大小。

答案1

如果可以的话,我建议重新格式化为 Linux 文件系统。如上所述,FAT 的文件大小限制相对较低,可能无法正确处理权限和所有权。更重要的是,FAT 无法像 ext3 那样精确地跟踪文件的修改时间(FAT 只能精确到 2 秒的窗口内)。这会导致特别糟糕的行为,因为rsync它有时会决定原始文件比备份文件更新或更旧,以至于需要重新复制数据或至少重新检查哈希值。总而言之,这会导致备份性能非常差。如果你必须坚持使用 FAT,研究rsync--size-only标志--modify-window作为解决方法。

答案2

我使用 rsync 备份我在运行 Linux(Ubuntu 10.4)的笔记本电脑上存储和处理的照片。我将它们备份到一个非常基本的 NAS 中,该 NAS 具有 1TB 硬盘,格式化为 FAT32。NAS 外壳和固件非常基础,因此不允许重新格式化驱动器。

我使用的命令是:

$ rsync --progress --modify-window=1 --update --recursive --times \
  /home/mloskot/Pictures /mnt/nas/Pictures

为了允许正确的时间比较,使用了 --modify-window=1 选项,因为 FAT32 以 2 秒的分辨率记录文件时间戳,这与 Linux 上使用的文件系统不同。--update 可避免不必要地复制现有文件 - 它的行为类似于增量备份。

为了进行基于大小的比较,您可以指定 --size-only 选项。

答案3

这是 Linux 上的 rsync 与 FAT(哪个版本的 FAT?)磁盘之间的同步吗,还是您使用的是 Windows 版本的 cwRsync?

无论如何,FAT16 和 32 都适用于这两个版本(我自己还没有尝试过 FAT12)。如果您使用的是 Linux 系统,我预计 FAT 文件系统的性能会比使用 Linux 格式的文件系统稍差一些,因为它们通常速度稍慢(如果我错了,希望有人能纠正我)。

答案4

您使用 FAT 驱动器有什么原因吗?Rsync 应该可以保存数据,但您会丢失有关文件的元信息...所有权、权限等...并且如果您 rsync 大型文件,则可能会出现问题,因为 FAT 的文件大小限制为 2 GB。

我无法评论性能,我从未对它进行过基准测试,与其他产品进行比较。我想这也与驱动器本身的规格以及与此相关的文件系统有很大关系。

如果你可以,我会将其重新格式化为您计划在计算机上使用的本机格式(OS X?Linux?),如果不为别的,只是为了保留元数据,并在几个月后同步由于文件系统限制而出错的内容时摆脱前额拍打。通常可以通过共享导出与其他系统共享,或者如果您使用 NTFS,您可以保留一些元数据,但仍然可以获得大多数跨系统兼容性,因为 Mac、NT 和 Linux 现在都支持 NTFS R/W 功能。

相关内容