rsync bases its sync on:
-
checksum
-
timestamp
-
If you base on checksum, it has to read every file completely (on source and destination), create a checksum, and then decide to transfer something or not. This is slow, but won´t miss any changed files.
-
If you base on timestamps, rsync will consider files with the same name, length, and timestamp as unchanged. This is fast. But this will only work good if both filesystems do use the same sort of timestamps. (otherwise it will fall back to checksum)
If one filesystem does have an other representation of timestamps this can´t work. (for example timestamps between fat32 and ext2 have different resolution)