Mac OS X 扩展属性可以通过 NFS 存储到 Linux ext4 文件系统吗?

Mac OS X 扩展属性可以通过 NFS 存储到 Linux ext4 文件系统吗?

MacOSX 文件系统使用扩展属性(例如“com.apple.quarantine”、“com.apple.FinderInfo”):

$ ls -l@ .DS_Store 
-rw-r--r--@ 1 gareth  staff  18436  2 Nov 10:35 .DS_Store
    com.apple.FinderInfo       32
  1. 这些扩展属性是否可以存储在 NFS 挂载中?
  2. 这些扩展属性可以存储在 ext4 文件系统的 NFS 挂载中吗?也就是说,HFS+ 文件的扩展属性(使用 xattr -l 可以看到)可以在 ext4 文件系统上以某种方式看到(使用 getfattr -d )。

一个问题似乎是 ext4 文件系统要求用户属性以“user.”开头,这使其与 MacOSX 不兼容:例如,以下命令在 Linux 上运行,因为名称以“user”开头。

Linux# setfattr -n "user.hello" -v "some data" examplefile

但以下操作失败:

Linux# setfattr -n "com.apple.Finder" -v "some data" examplefile
setfattr: examplefile: Operation not supported

那么,除非自动重命名,否则扩展属性是否可以存储?例如,“com.apple.Finder”可以存储为“user.com.apple.Finder”。

我曾尝试使用 MacOSX NFS 客户端来挂载 Debian Linux NFS 服务器,以研究此问题。(Finder -> 前往 -> 连接到服务器...)挂载似乎可以工作,但一旦 GUI 尝试浏览,它就会尝试创建具有扩展属性的 .DS_Store 文件,整个 NFS 连接就会锁定并失败。(至少,我认为这是它失败的原因。在尝试浏览之前,我能够复制一个没有属性的小文件。)

任何对此问题的见解都将不胜感激。谢谢!

答案1

NFS 协议不支持扩展属性,因此您无法将本地扩展属性传输到服务器。有一些努力在 NFS 社区中使之成为可能,但是它需要一些时间才能实现。

相关内容