I am posting this to share a solution to an issue I had.

We are moving hundreds of thousands of files from Windows SMB/CIFS shares to our new Open-E NAS (DSS really, but primarily using the NAS functionality). As a part of the migration, I set up a batch job on our Windows server to use ROBOCOPY to make sure any updates made on the Windows share was replicated to the NAS.

As others have found, the Linux filesystem used by Open-E (I think EXT3) has a 1-second time resolution for time/date stamps on files. Copying the files from my Windows NTFS volume with 100 nanosecond resolution to the EXT3 volume causes the time/date stamp to be rounded to the nearest second. If the time is "rounded down", then ROBOCOPY will think the file on the NAS is always older than the file on NTFS, so it will always re-copy the file any time it compares the two.

The partial solution was to use the "/FFT" option in ROBOCOPY to make it compare the time/date stamp as if it were using the FAT16 filesystem which has a 2-second resolution. This helped in most cases, but I was still having files that were being re-copied even though looking at the properties of the files on NTFS and NAS volumes showed the same time down to the second. My guess is that with the /FFT option ROBOCOPY was expecting to only see files with even-numbered seconds, not odd-numbered due to the 2-second time resolution.

The final solution was upgrading from ROBOCOPY version XP010 which comes with the Windows Server 2003 Resource Kit to the ROBOCOPY version XP026 which is found at the link below as a part of the ROBOCOPY GUI kit. After you install the robocopy.exe will be in your System32 directory, so you may have to update your scripts and/or delete the robocopy.exe from your "Program Files" directory so you are executing the correct version.


The XP026 version properly compares the time/date stamps between NTFS and NAS EXT3 volumes if you use the /FFT option, and I no longer get re-copies of files that have not changed.

The caveat is that others have reported that ROBOCOPY XP026 does not return an ERRORLEVEL value other than 0. If you rely on the return code from ROBOCOPY, you may need to stick with XP010.