Rsync “Operation not permitted”

rsync

I am trying to so a simple rsync to a USB hard disc, the command is

rsync -az --modify-window=2 /home /mnt/exthd/tmp/

I am running this as root.

but I get a lot of errors that all seem to relate to insufficient permissions :

rsync: chown "/mnt/exthd/tmp/home/someuser" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/someuser/.bash_logout" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/someuser/.bash_profile" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/someuser/.bashrc" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest/.bash_logout" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest/.bash_profile" failed: Operation not permitted (1)
rsync: chown "/mnt/exthd/tmp/home/guest/.bashrc" failed: Operation not permitted (1)
rsync: symlink "/mnt/exthd/tmp/home/guest/fred2" -> "fred" failed: Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1042) [sender=3.0.7]

This is version 3.0.7. I have tried using the –super option to no effect. Any ideas?

Best Answer

The FAT file system (which Linux's mount calls vfat) is not able to store some of the permission and ownership data that is stored about your files on the Linux side.

Your options seem to be:

  • Format the disk with ext3/4 or some other file system that supports these attributes. I think even NTFS would do the job if you are sharing with Windows.
  • Store those extra properties using the --fake-super option so rsync writes xattrs in the file instead of using the file system attributes
  • Ignore the error, those properties will just be lost.
  • Wrap your data set in a tar file and put the tar file on FAT system. All the attributes are maintained and will be present if you ever extract it.