我在远程位置有两台小型 Ubuntu 服务器,它们相互备份数据。我正在尝试解决问题,有人建议我的文件系统可能不兼容,并检查 fstab 条目。老实说,我对此有点不适应。
服务器 1 有一个外部 USB 驱动器,其条目为:
UUID=[the drive's UUID] /mnt/bigdisk auto nosuid,nodev,nofail,x-gvfs-show 0 0
服务器 2 使用 Synology NAS,条目为:
192.168.30.102:/volume1/bigdisk /mnt/bigdisk nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
我现在真的不知道这些行是从哪里来的。可能是几年前遵循的一些指南。它们看起来还好吗?例如,我看到第一个将 auto 作为一个由空格分隔的条目,而第二个将其包含在逗号分隔的列表中。
我尝试阅读 FSTAB 的 MAN 页。有几个项目没有描述,例如 x-gvfs-show 和 nolock。
如果有帮助的话,我尝试解决的问题是,使用 rdiff-backup 将文件从服务器 2 备份到服务器 1 时未保留所有权(但相反则进行保留)。
谢谢。
答案1
不,它们不需要相同,只要目标文件系统提供预期的功能。
例如,如果您使用 xattrs 备份文件(或者备份过程本身依赖于 xattrs,例如 rsync 的 fake-super),那么目标文件系统当然必须支持 xattrs……它不再需要任何 fstab 选项,但过去曾经需要。
(除此之外,不同的文件系统有不同的选项——从 ext4 磁盘备份到 XFS 磁盘是可以的,但一些特定于 ext4 的选项对于 XFS 来说没有任何意义。)
因此,就您而言,预期的功能是 root 能够使用chown
和分配任意所有者 UID 给现有文件。问题在于目标文件系统是 NFS – 通常,NFS 服务器以“root_squash”模式运行,这使 root 完全没有特权:如果客户端坚持认为操作(例如 chown)是由 root 完成的,则服务器实际上会表现得好像是由“nobody”用户完成的。这意味着 root 不允许 chown 任何东西。
为了避免这种情况,请将 NAS 上的 NFS 导出选项更改为使用no_root_squash
,如上所述在此论坛主题中。请注意,这是一个导出选项,不是两侧的文件系统选项。
(总的来说,这个问题并不只存在于 NFS 中;许多其他网络文件系统不为 root 提供特殊处理,因为它们通过帐户授予访问权限,而不是信任客户端指定的 UID。)