Linux NFS-HOWTO | ||
---|---|---|
上一页 |
以下是使用 Linux 与主要操作系统一起使用的已知问题列表。
/etc/exports 文件的格式,如第 3 节中的示例所示
/usr slave1.foo.com:slave2.foo.com,access=slave1.foo.com:slave2.foo.com /home slave1.foo.com:slave2.foo.com,rw=slave1.foo.com:slave2.foo.com |
AIX 使用 /etc/filesystems 文件而不是 /etc/fstab 文件。基于第 4 节中的示例的示例条目如下所示
/mnt/home: dev = "/home" vfs = nfs nodename = master.foo.com mount = true options = bg,hard,intr,rsize=1024,wsize=1024,vers=2,proto=udp account = false |
AIX 的 4.3.2 版本,以及可能更早的版本,要求使用以下选项导出文件系统:insecure选项,该选项使 NFS 监听来自不安全端口(即 1024 以上的端口,非 root 用户可以绑定到这些端口)的请求。 较旧版本的 AIX 似乎不需要这样做。
AIX 客户端将默认通过 TCP 挂载版本 3 NFS。如果您的 Linux 服务器不支持此功能,则可能需要指定vers=2和/或proto=udp在您的挂载选项中。
在/etc/exports中使用网络掩码似乎有时会导致客户端在另一个客户端重置时丢失挂载。可以通过显式列出主机来解决此问题。
显然,AIX 4.3.2 中的自动挂载相当糟糕。
一般来说,Tru64 Unix 服务器与 Linux 客户端配合得很好。 /etc/exports 文件的格式,如第 3 节中的示例所示
/usr slave1.foo.com:slave2.foo.com \ -access=slave1.foo.com:slave2.foo.com \ /home slave1.foo.com:slave2.foo.com \ -rw=slave1.foo.com:slave2.foo.com \ -root=slave1.foo.com:slave2.foo.com |
(root选项仅出于信息目的列在最后一个条目中;除非必要,否则不建议使用。)
Tru64 每次有挂载请求时都会检查/etc/exports文件,因此您不需要运行 exportfs 命令;实际上,在许多版本的 Tru64 Unix 上,该命令不存在。
/usr -ro,access=slave1.foo.com:slave2.foo.com /home -rw=slave1.foo.com:slave2.fo.com:root=slave1.foo.com:slave2.foo.com |
HP-UX 上的示例/etc/exportsIRIX 上的条目如下所示
/usr -ro,access=slave1.foo.com:slave2.foo.com /home -rw=slave1.foo.com:slave2.fo.com:root=slave1.foo.com:slave2.foo.com |
据报道,在使用在导出到基于 linux 2.2 的系统的导出时使用 nohide 选项时会出现问题。此问题已在 2.4 内核中修复。作为一种解决方法,您可以单独导出和挂载较低级别的文件系统。
截至 Kernel 2.4.17,仍然存在一些次要的互操作性问题,可能需要内核升级。特别是
确保应用 Trond Myklebust 的 seekdir(或 dir)内核补丁。最新版本(适用于 2.4.17)位于
http://www.fys.uio.no/~trondmy/src/2.4.17/linux-2.4.17-seekdir.dif
IRIX 服务器并不总是跨重启使用相同的fsid属性字段,这会导致inode number mismatch (inode 号码不匹配)如果挂载的 IRIX 服务器重新启动,则 Linux 客户端上出现错误。 补丁可从
http://www.geocrawler.com/lists/3/SourceForge/789/0/7777454/
Linux 内核 v2.4.9 及更高版本在读取从使用以下命令制作的导出的 IRIX XFS 文件系统的大型目录(数百个文件)时存在问题:naming version=1问题的原因可以在
http://www.geocrawler.com/archives/3/789/2001/9/100/6531172/
命名版本可以使用(在 IRIX 服务器上)
xfs_growfs -n mount_point |
找到。解决方法是使用-32bitclients选项在/etc/exports文件中导出这些文件系统。修复方法是将文件系统转换为“naming version=2”。 不幸的是,执行此操作的唯一方法是通过backup (备份)/mkfs (创建文件系统)/restore (恢复).
mkfs_xfs 在 IRIX 6.5.14(及更高版本)上默认创建naming version=2XFS 文件系统。 在 IRIX 6.5.5 到 6.5.13 上,使用
mkfs_xfs -n version=2 device |
IRIX 的 6.5.5 之前的版本不支持naming version=2XFS 文件系统。
高达 6.5.12 的 Irix 版本在挂载从 Linux 机器导出的文件系统时存在问题 - 挂载点“丢失”,例如:
# mount linux:/disk1 /mnt # cd /mnt/xyz/abc # pwd /xyz/abc |
Solaris 在服务器端与与其他操作系统略有不同的格式。 配置文件不是 /etc/exports,而是 /etc/dfs/dfstab。 条目的形式为 share 命令,其中第 3 节中示例的语法如下所示
share -o rw=slave1,slave2 -d "Master Usr" /usr |
Solaris 服务器对数据包大小特别敏感。 如果您将 Linux 客户端与 Solaris 服务器一起使用,请务必将rsize和wsize在挂载时设置为 32768。
最后,Solaris 上的 root squashing 存在一个问题:root 被映射到用户noone,这与用户nobody不同。 如果您在客户端计算机上以 root 身份处理文件权限时遇到问题,请务必检查映射是否按预期工作。
在服务器端,SunOS 使用其 /etc/exports 文件的最传统格式。 第 3 节中的示例如下所示
/usr -access=slave1.foo.com,slave2.foo.com /home -rw=slave1.foo.com,slave2.foo.com, root=slave1.foo.com,slave2.foo.com |
同样,root选项仅出于信息目的列出,除非必要,否则不建议使用。