rsync 使用 nfs 共享给出“chown failed: Invalid argument (22)”

rsync 使用 nfs 共享给出“chown  failed: Invalid argument (22)”

我正在尝试通过以 root 身份运行的 shell 脚本,使用 rsync 将整个系统备份到外部磁盘:

#!/bin/bash
rsync -vSHPhhaX --numeric-ids --delete --exclude-from=/home/rena/.scripts/exclude-list / /home/rena/video/.backup/>/home/rena/video/.backup.log

该脚本在机器“akira”上运行。最初,/home/rena/video 是直接连接到 akira 的 USB 硬盘,脚本运行良好。

最近我移动了磁盘;现在它安装在另一台机器“yuki”的同一路径上,并通过 NFS 共享。所以 akira:/home/rena/video 仍然指同一个 USB 硬盘,只是现在它附加到 yuki 并通过 nfs 共享,而不是直接附加到 akira。该磁盘使用 ext3 并使用 Truecrypt 加密。

yuki 的 /etc/exports 是:

/home/rena  akira(rw,subtree_check,nohide,no_root_squash) rei(rw,subtree_check,nohide,no_root_squash)
/home/rena/video    akira(rw,subtree_check,nohide,no_root_squash) rei(rw,subtree_check,nohide,no_root_squash)

现在 rsync 为每个文件给出一个错误:

rsync: chown "/home/rena/video/.backup/boot/System.map-2.6.38-8-generic" failed: Invalid argument (22)

尽管被告知不要这样做,但 nfs 似乎正在“挤压”?

rena@akira $ stat /home/rena/video/.backup/boot/abi-2.6.38-10-generic
  File: `/home/rena/video/.backup/boot/abi-2.6.38-10-generic'
  Size: 730457          Blocks: 1440       IO Block: 65536  regular file
Device: 19h/25d Inode: 38822526    Links: 1
Access: (0644/-rw-r--r--)  Uid: (65534/  nobody)   Gid: (65534/ nogroup)
Access: 2011-10-19 22:17:12.000000000 -0600
Modify: 2011-06-28 13:19:43.000000000 -0600
Change: 2011-10-19 22:17:12.000000000 -0600

rena@yuki $ stat /home/rena/video/.backup/boot/abi-2.6.38-10-generic
  File: `/home/rena/video/.backup/boot/abi-2.6.38-10-generic'
  Size: 730457      Blocks: 1440       IO Block: 4096   regular file
Device: fc04h/64516d    Inode: 38822526    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-10-19 22:17:12.000000000 -0600
Modify: 2011-06-28 13:19:43.000000000 -0600
Change: 2011-10-19 22:17:12.000000000 -0600

从 akira 开始,UID 和 GID 看起来不同;也许 rsync 失败的原因是什么?

[编辑] 事实上它看起来像《阿基拉》中的,每一个共享上的文件具有 UID 和 GID 65534/nobody。

答案1

这似乎是您的 nfs 服务器 (yuki) 上的名称解析问题。

  1. 确保主机的名称解析首先设置为文件/etc/nsswitch.conf
  2. 如果存在,/etc/host.conf请确保解析顺序设置为:order hosts bind
  3. 将客户端的 IP 放入/etc/hostsNFS 服务器上。确保短名称是 IP 之后的第一个条目。

答案2

假设这不是 NFSv4,您似乎正在执行匿名共享,并且因为默认情况下没有匹配的 uid/gid,所以没有分配任何人/没有组。

相关内容