14

I'm trying to backup my whole server using a simple rsync on a NFS mounted volume on '/nas'

Here's my rsync command

rsync -sav -S --stats -H --numeric-ids --delete -D 
--exclude-from="/usr/local/bin/rsync_nas1_exclude" / /nas1/

Getting the following error :

rsync: chown "/nas1/home/8003/.local/share/icons/application-x-wine-extension-its.png" 
failed: Invalid argument (22)

or

rsync: chown "/nas1/home/8003/.local/share/applications/wine/Programs/FxPro - Trader"     failed: Invalid argument (22)

Any idea why ? I use the '-s' param to protect file names

Khaled
  • 36,533
  • 8
  • 72
  • 99
Disco
  • 1,421
  • 5
  • 20
  • 34

3 Answers3

14

The error is on chown. My guess : your target NFS mount is a FAT32 or NTFS volume that doesn't support chown. You have two options : format it with a Linux filesystem like ext3, or drop rights and owners entirely ( --no-owner --no-group rsync options).

wazoox
  • 6,918
  • 4
  • 31
  • 63
1

I've been having the same problem for a long time with no solution in sight. The issue seems to be that NFS won't let you change a file's UID/GID to ones that don't exist on the server:

# for a local file, it works fine:
rena@akira:~ $ sudo chown -v 999:999 testfile 
changed ownership of `testfile' to 999:999

# but if the file is on an NFS share, it fails:
rena@akira:/mnt/yuki $ sudo chown -v 999:999 testfile
chown: changing ownership of `testfile': Invalid argument
failed to change ownership of `testfile' to 999:999

It seems this is a bit of a design flaw in NFS; you can't use it to back up files owned by someone who doesn't exist on the server. But maybe there's a way to disable this check?

Rena
  • 145
  • 1
  • 6
  • It works for me, on my NFS server. Maybe it's a limitation of the distro/OS running on the NFS server? – wazoox May 10 '15 at 11:58
1

In my case the issue turned out to be the NFS version. With NFSv4, uid/gid that did not exist at the server side were not allowed, whereas NFSv3 (as long as it was exported with no_root_squash) did not mind. So after I added vers=3 to the mount options in /etc/fstab rsync was able to chown just fine.

Wim
  • 156
  • 2