Ubuntu cp -p 在已安装的 ZFS 池上

Ubuntu cp -p 在已安装的 ZFS 池上

在我的 Ubuntu 服务器上,我有几个自动挂载的 zfs 池。我遇到的问题是,当我尝试在保留权限的情况下复制文件时,出现以下错误:

cp:保留“blah.txt”的权限:操作不受支持

尽管如此,该文件仍然重复,连同原始文件属性。

有人能帮忙解释一下这个问题吗?

答案1

解决方案:禁用 ACL 制作

这是因为额外的 ACL 权限

查看并赞同: https://superuser.com/questions/198758/what-does-the-mean-in-the-acl-output-of-ls-l

当你cp -p 具有额外 ACL 的 NFS 挂载(ls -l显示 +)/tmp 之类的东西不支持额外的权限。

要修复此问题,首先需要让 NFS 服务器停止向新文件添加额外权限。在 OpenSolaris 或 OpenIndiana ZFS 框上,您可以按如下方式执行此操作:

zfs get sharenfs myzpool1
zfs set sharenfs=XXX myzool1

但不要使用 XXX,而要使用之前的内容并添加“,noaclfab”(看man share_nfs

您还可以删除现有文件的这些额外 ACL:

apt-get install acl
setfacl -b test.sh

递归地:

find . -exec setfacl -b {} \;

要在客户端修复此问题,您可以更新 /etc/sysconfig/autofs 中的以下行:

APPEND_OPTIONS="yes"
OPTIONS="--global-options nosuid,noacl,vers=3,retry=5000”

“noacl”关键字是相关部分,其他选项可能不需要解决这个特定问题,但它们是需要考虑的事情。

答案2

-p选项会保留多种不同类型的文件属性,例如所有权、时间等,如果其中任何一个属性未正确保存或必须进行某种可能有损的转换,那么您可能会看到该错误。您很可能还间接指示该过程保存您未注意且不包含任何有意义数据的属性(例如 xattrs 或 acls)。

最重要的是,如果它保留了您感兴趣的属性,那么就不必担心。

相关内容