在 Oracle® Solaris 11.2 中管理网络文件系统

退出打印视图

更新时间: 2014 年 7 月
 
 

mount 命令

使用此命令,可以将已命名的文件系统(本地或远程)附加到指定的挂载点。有关更多信息,请参见 mount(1M) 手册页。在不使用参数的情况下,mount 将显示当前在计算机上挂载的文件系统列表。

标准 Oracle Solaris 安装中包括的每种文件系统类型都有 mount 命令的特定选项。有关 NFS 文件系统选项,请参见 mount_nfs(1M) 手册页。有关 UFS 文件系统选项,请参见 mount_ufs(1M) 手册页。

您可以使用 NFS URL 而非标准 server:/pathname 语法选择要从 NFS 服务器挂载的路径名。有关详细信息,请参见如何使用 NFS URL 挂载 NFS 文件系统


Caution

注意  -  mount 命令不会对无效选项发出警告。该命令将默认忽略所有无法解释的选项。请确保验证所有已使用的选项,以防止出现意外行为。


NFS 文件系统的 mount 选项

本节介绍挂载 NFS 文件系统时 –o 标志后面可跟随的一些选项。有关选项的完整列表,请参阅 mount_nfs(1M) 手册页。

bg|fg

可以使用这些选项来选择挂载失败时的重试行为。–bg 选项将导致挂载尝试在后台运行。–fg 选项将导致挂载尝试在前台运行。缺省值为 –fg,对于必须可用的文件系统,该选项是最佳选择,因为可防止在挂载完成之前进行进一步处理。对于非关键文件系统,–bg 是不错的选择,因为客户机在等待挂载请求完成的同时可以执行其他处理。

forcedirectio

此选项可改进大型连续数据传输的性能。数据将直接复制到用户缓冲区。不会在客户机的内核中执行任何缓存操作。缺省情况下,该选项处于禁用状态 (noforcedirectio)。

要允许应用程序向客户机上的单个文件发出并发写入以及并发读取和写入,请使用 –forcedirectio 挂载选项。使用该选项,可针对已挂载文件系统中的所有文件启用该功能。您还可以使用 directio() 接口对客户机上的单个文件启用该功能。除非启用了此功能,否则对文件的写入一定是串行化的。而且,如果正在进行并发写入或并发读取和写入,该文件将不再支持 POSIX 语义。

有关如何使用该选项的示例,请参阅使用 mount 命令

largefiles

使用此选项,可以访问大于 2 GB 的文件。由于只能在服务器上控制是否可以访问大文件,因此在 NFS 版本 3 挂载中将默认忽略此选项。缺省情况下,所有的 UFS 文件系统都使用 –largefiles 进行挂载。对于使用 NFS 版本 2 协议的挂载,–largefiles 选项将导致挂载失败,且会出现错误。

nolargefiles

此选项用于 UFS 挂载,可以保证文件系统中不会存在大文件。由于只能在 NFS 服务器上控制大文件的存在,因此使用 NFS 挂载时不存在用于 –nolargefiles 的选项。系统将拒绝使用此选项尝试对文件系统进行 NFS 挂载,且会显示错误。

nosuid|suid

–nosuid 选项与指定 –nodevices 选项和 –nosetuid 选项等效。指定 –nodevices 选项时,禁止在已挂载的文件系统上打开特定于设备的文件。指定 –nosetuid 选项时,系统将忽略位于文件系统中的二进制文件的 setuid 位和 setgid 位。进程将使用执行该二进制文件的用户的特权运行。

–suid 选项与指定 –devices 选项和 –setuid 选项等效。指定 –devices 选项时,允许在已挂载的文件系统上打开特定于设备的文件。指定 –setuid 选项时,内核将接受位于文件系统中的二进制文件的 setuid 位和 setgid 位。

如果这两个选项都没有指定,则缺省选项为 –suid,这将提供指定 –devices 选项和 –setuid 选项这一缺省行为。

下表介绍了将 –nosuid–suid–devices–nodevices,以及 –setuid–nosetuid 组合的效果。请注意,在每个选项组合中,限制性最强的选项将确定行为。

组合选项的行为
选项
选项
选项
与使用 –nosetuid–nodevices 等效
–nosuid
–nosetuid
–nodevices
与使用 –nosetuid–nodevices 等效
–nosuid
–nosetuid
–devices
与使用 –nosetuid–nodevices 等效
–nosuid
–setuid
–nodevices
与使用 –nosetuid–nodevices 等效
–nosuid
–setuid
–devices
与使用 –nosetuid–nodevices 等效
–suid
–nosetuid
–nodevices
与使用 –nosetuid–devices 等效
–suid
–nosetuid
–devices
与使用 –setuid–nodevices 等效
–suid
–setuid
–nodevices
与使用 –setuid–devices 等效
–suid
–setuid
–devices

–nosuid 选项为访问可能不可信服务器的 NFS 客户机提供了附加安全性。使用此选项挂载远程文件系统会减少通过导入不可信设备或导入不可信 setuid 二进制文件来升级特权的机会。所有这些选项在所有的 Oracle Solaris 文件系统中都是可用的。

public

与 NFS 服务器联系时,此选项将强制使用公共文件句柄。如果服务器支持公共文件句柄,则由于不使用 MOUNT 协议,挂载操作会比较快。此外,由于不使用 MOUNT 协议,公共选项允许穿过防火墙进行挂载。

rw|ro

–rw–ro 选项指示文件系统以读写方式挂载还是以只读方式挂载。缺省值为读写,该选项适用于远程起始目录、邮件假脱机目录或需要由用户更改的其他文件系统。只读选项适用于不应该由用户更改的目录。例如,用户不应写入手册页的共享副本。

sec=mode

可以使用此选项指定在挂载事务期间使用的验证机制。mode 的可用值包括:

  • krb5-针对 Kerberos 版本 5 验证服务

  • krb5i-针对具备完整性的 Kerberos 版本 5

  • krb5p-针对具备保密性的 Kerberos 版本 5

  • none-针对无验证

  • dh-针对 Diffie-Hellman (DH) 验证

  • sys-针对标准 UNIX 验证

上述模式还在 /etc/nfssec.conf 中进行了定义。

soft|hard

如果服务器没有做出响应,则使用 –soft 选项挂载的 NFS 文件系统将返回错误。–hard 选项将使挂载继续重试,直到服务器做出响应为止。缺省值为 –hard,大多数文件系统都应该使用此选项。应用程序不会经常检查从使用 –soft 选项挂载的文件系统返回的值,这可能会使应用程序出现故障或可能导致文件损坏。如果应用程序检查返回值,则路由问题和其他情况可能仍然会干扰应用程序或导致文件损坏。在大多数情况下,不应该使用 –soft 选项。如果文件系统是使用 –hard 选项挂载的且不可用,则使用该文件系统的应用程序将挂起,直到该文件系统可用为止。

使用 mount 命令

以下示例显示了不同的情况:

  • 在 NFS 版本 2 或 NFS 版本 3 中,以下两个命令将以只读方式从服务器 bee 挂载 NFS 文件系统。

    # mount -F nfs -r bee:/export/share/man /usr/man
    # mount -F nfs -o ro bee:/export/share/man /usr/man

    在 NFS 版本 4 中,以下命令行将完成同样的挂载。

    # mount -F nfs -o vers=4 -r bee:/export/share/man /usr/man
  • 在 NFS 版本 2 或 NFS 版本 3 中,即使已挂载 /usr/man,以下命令中的 –O 选项也会强制在本地系统上挂载服务器 bee 中的手册页。

    # mount -F nfs -O bee:/export/share/man /usr/man

    在 NFS 版本 4 中,以下命令将完成同样的挂载:

    # mount -F nfs -o vers=4 -O bee:/export/share/man /usr/man
  • 在 NFS 版本 2 或 NFS 版本 3 中,以下命令使用客户机故障转移。

    # mount -F nfs -r bee,wasp:/export/share/man /usr/man

    在 NFS 版本 4 中,以下命令使用客户机故障转移。

    # mount -F nfs -o vers=4 -r bee,wasp:/export/share/man /usr/man

    注 -  在命令行中使用时,列出的服务器必须支持同一版本的 NFS 协议。从命令行中运行 mount 时,请不要同时使用 NFS 版本 2 和 NFS 版本 3 服务器。您可以将这两种服务器与 autofs 一起使用,因为 autofs 将自动选择 NFS 版本 2 或 NFS 版本 3 服务器的最佳子集。
  • 以下示例显示了如何将 NFS URL 与 NFS 版本 2 或 NFS 版本 3 中的 mount 命令一起使用。

    # mount -F nfs nfs://bee//export/share/man /usr/man

    以下示例显示了如何将 NFS URL 与 NFS 版本 4 中的 mount 命令一起使用。

    # mount -F nfs -o vers=4 nfs://bee//export/share/man /usr/man
  • 以下示例显示了如何使用 –forcedirectio 挂载选项使客户机允许对文件进行并发写入以及并发读取和写入操作。

    # mount -F nfs -o forcedirectio bee:/home/somebody /mnt

    在本示例中,命令从服务器 bee 挂载 NFS 文件系统,并对目录 /mnt 中的每个文件启用并发读取和写入。启用对并发读取和写入的支持时,将发生以下情况。

    • 客户机允许应用程序并行写入文件。

    • 客户机上禁用缓存。因此,来自读取和写入的数据将保留在服务器上。更明确地说,由于客户机不会高速缓存已读取或写入的数据,所以将从服务器读取应用程序尚未为其自身高速缓存的所有数据。客户机的操作系统不会具有此数据的副本。通常,NFS 客户机将在内核中高速缓存数据以供应用程序使用。

      由于在客户机上禁用了缓存,因此将禁用读前进程和写后进程。当内核预料应用程序下一步可能请求的数据时会发生读前进程。然后,内核将提前启动收集该数据的进程。内核的目标是在应用程序请求数据之前将数据准备就绪。

      客户机使用写后进程增加写吞吐量。数据将被高速缓存到内存中,而不是在应用程序每次将数据写入文件时立即启动 I/O 操作。随后,数据将被写入磁盘。

      写后进程很可能会允许以较大的块写入数据,或者允许从应用程序异步写入数据。通常,使用较大块的结果是会增大吞吐量。异步写入允许应用程序处理和 I/O 处理之间有重叠。此外,异步写入允许存储子系统通过提供更好的 I/O 顺序来优化 I/O。同步写入在存储子系统上强制执行可能不是最优的 I/O 顺序。

    • 如果应用程序不准备处理未被高速缓存的数据语义,则性能可能会大大降低。多线程应用程序可以避免此问题。


    注 -  如果未启用对并发写入的支持,则对所有的写入请求进行串行化。如果正在处理写入请求,则第二个写入请求必须等待第一个写入请求完成之后才能继续进行。
  • 以下示例显示了如何使用不含参数的 mount 命令显示客户机上挂载的文件系统。

    % mount
    / on /dev/dsk/c0t3d0s0 read/write/setuid on Wed Apr 7 13:20:47 2004
    /usr on /dev/dsk/c0t3d0s6 read/write/setuid on Wed Apr 7 13:20:47 20041995
    /proc on /proc read/write/setuid on Wed Apr 7 13:20:47 2004
    /dev/fd on fd read/write/setuid on Wed Apr 7 13:20:47 2004
    /tmp on swap read/write on Wed Apr 7 13:20:51 2004
    /opt on /dev/dsk/c0t3d0s5 setuid/read/write on Wed Apr 7 13:20:51 20041995
    /home/kathys on bee:/export/home/bee7/kathys              
      intr/noquota/nosuid/remote on Wed Apr 24 13:22:13 2004