# mount.8

MOUNT(8)

MOUNT(8)

FreeBSD System Manager's Manual

MOUNT(8)

## [名称](#__u540D___u79F0_)

`mount` —

挂载文件系统

## [概要](#__u6982___u8981_)

`mount` \[`-adflpruvw`] \[`-F` fstab] \[`-o` options] \[`-t` \[`no`]type\[,type ...]] `mount` \[`-dfpruvw`] special | node `mount` \[`-dfpruvw`] \[`-o` options] \[`-t` \[`no`]type\[,type ...]] special node

## [描述](#__u63CF___u8FF0_)

`mount` 实用程序调用 nmount(2) 系统调用来准备 special 设备或远程节点 (rhost:path) 并将其移植到点 node 系统调用来准备特殊设备或远程节点 (rhost:path) 并将其移植到点节点处的文件系统树上。 如果未提供 special 或 node ，则从 fstab(5) 文件中获取适当的信息。

系统维护当前安装的文件系统的列表。 如果没有为 `mount` 提供参数，则打印此列表。

选项如下：

[`-a`](#a)

fstab(5) 中描述的所有文件系统都已挂载。 例外是那些标记为 “`noauto`” 、标记为 “`late`” 的那些（除非指定了 `-l` 选项）、那些被 `-t` 标志排除的（见下文），或者如果它们已经挂载（除了根文件系统总是重新安装以保留传统的单用户模式行为）。

[`-d`](#d)

导致除了实际的系统调用之外的所有事情都完成。 此选项与 `-v` 标志一起用于确定 `mount` 命令尝试执行的操作。

[`-F`](#F) fstab

指定要使用的 fstab 文件。

[`-f`](#f)

当试图将文件系统挂载状态从读写降级为只读时，强制撤销写访问。 还强制对不干净的文件系统进行 R/W 挂载（危险；谨慎使用）。

[`-L`](#L)

与 `-a` 选项一起使用时， *only* 挂载那些标记为 “`late`” 的文件系统。

[`-l`](#l)

当与 `-a` 选项一起使用时，还要挂载那些标记为 “`late`” 的文件系统。

[`-n`](#n)

为了与其他一些实现兼容，此标志当前是无操作的。

[`-o`](#o)

选项使用 `-o` 标志指定，后跟以逗号分隔的选项字符串。 如果指定了冲突的选项，则最右边的选项生效。可以使用以下选项：

[`acls`](#acls)

启用 POSIX.1e 访问控制列表或 ACL，可以通过 setfacl(1) 和 getfacl(1) 命令自定义。此标志与 `nfsv4acls` 标志互斥。

[`async`](#async)

文件系统的所有 I/O 都应该异步完成。 这是一个 *dangerous* 的标志，因为它不能保证磁盘上的文件系统结构将保持一致。 出于这个原因，应谨慎使用 `async` 标志，并且仅在存在某些数据恢复机制时使用。

[`automounted`](#automounted)

这个标志表明文件系统是由 automountd(8) 挂载的。 自动挂载的文件系统由 autounmountd(8) 自动卸载。

[`autoro`](#autoro)

以读写方式挂载文件系统。 如果失败并出现提示媒体可能是只读的错误，则自动尝试以只读方式挂载文件系统。

[`current`](#current)

当与 `-u` 标志一起使用时，这与指定当前对挂载文件系统有效的选项相同。

[`emptydir`](#emptydir)

要求挂载点目录为空。

[`force`](#force)

与 `-f` 相同；当试图将文件系统挂载状态从读写降级为只读时，强制撤销写访问。 还强制对不干净的文件系统进行 R/W 挂载（危险；谨慎使用）。

[`fstab`](#fstab)

当与 `-u` 标志一起使用时，这与为文件系统指定 fstab(5) 文件中列出的所有选项相同。

[`late`](#late)

当使用 `-a` 标志但没有 `-l` 标志运行 `mount` 时，应跳过此文件系统。

[`mountprog`](#mountprog)=⟨program⟩

强制 `mount` 使用指定程序挂载文件系统，而不是直接调用 nmount(2) 。例如：

mount -t foofs -o mountprog=/mydir/fooprog /dev/cd0 /mnt

[`multilabel`](#multilabel)

在指定的文件系统上启用多标签强制访问控制或 MAC。 如果文件系统支持多标签操作，则将为文件系统中的每个对象维护单独的标签，而不是为所有对象使用单个标签。 tunefs(8) 中 `-l` 标志的替代方案。 有关更多信息，请参见 mac(4) ，这会导致在挂载时自动设置多标签挂载标志。

[`nfsv4acls`](#nfsv4acls)

启用 NFSv4 ACL，可以通过 setfacl(1) 和 getfacl(1) 命令自定义。 该标志与 `acls` 标志互斥。

[`noasync`](#noasync)

元数据 I/O 应该同步完成，而数据 I/O 应该异步完成。这是默认设置。

[`noatime`](#noatime)

从文件读取时不要更新文件访问时间。 此选项在有大量文件且性能比更新文件访问时间更重要的文件系统上很有用（这很少重要）。 此选项当前仅在本地文件系统上受支持。

[`noauto`](#noauto)

使用 `-a` 标志运行 `mount` 时，应跳过此文件系统。

[`noclusterr`](#noclusterr)

禁用读取集群。

[`noclusterw`](#noclusterw)

禁用写集群。

[`nocover`](#nocover)

如果请求的挂载点已经是挂载点的根，则不要挂载。

[`noexec`](#noexec)

不允许在已挂载的文件系统上执行任何二进制文件。 此选项对于具有包含非自己架构的二进制文件系统的服务器很有用。 注意：此选项并非设计为安全功能，也不保证它会阻止恶意代码执行；例如，仍然可以执行驻留在 `noexec` 挂载分区上的脚本。

[`nosuid`](#nosuid)

不允许 set-user-identifier 或 set-group-identifier 位生效。 注意：如果您的系统上安装了公共可用的 suid 或 sgid 包装器（如 suidperl(1) ），则此选项毫无价值。 当用户没有超级用户权限时自动设置。

[`nosymfollow`](#nosymfollow)

不要遵循已安装文件系统上的符号链接。

[`ro`](#ro)

与 `-r` 相同；以只读方式挂载文件系统（即使是超级用户也可能不会写入）。

[`snapshot`](#snapshot)

此选项允许拍摄指定文件系统的快照。 此选项需要 `-u` 标志。 请注意，快照文件必须在被快照的文件系统中创建。 每个文件系统最多可以创建 20 个快照。 活动快照记录在超级块中，因此它们会在卸载和重新安装操作以及系统重新启动后持续存在。 完成快照后，可以使用 rm(1) 命令将其删除。 可以按任何顺序删除快照，但是您可能无法取回快照中包含的所有空间，因为另一个快照可能会占用它正在释放的一些块。 请注意，在快照上设置了 schg 标志，以确保即使是 root 用户也无法写入它们。 unlink 命令对快照文件有一个例外，因为它允许删除它们，即使它们设置了 schg 标志，所以在删除快照文件之前不需要清除 schg 标志。

拍摄快照后，您可以用它做三件有趣的事情：

1. 对快照文件运行 fsck(8) 。 假设文件系统在挂载时是干净的，您应该始终通过在快照上运行 fsck 获得干净（且不变）的结果。 这本质上是后台 fsck 进程所做的。
2. 在快照上运行 dump(8) )。 您将获得与快照时间戳的文件系统一致的转储。
3. 将快照挂载为文件系统的冻结映像。 挂载快照 /var/snapshot/snap1:

   mdconfig -a -t vnode -f /var/snapshot/snap1 -u 4 mount -r /dev/md4 /mnt

   您现在可以在 /var 处浏览冻结的 /mnt 文件系统。 一切都将处于拍摄快照时的相同状态。 一个例外是任何较早的快照都将显示为零长度文件。 完成安装的快照后：

   umount /mnt mdconfig -d -u 4

[`suiddir`](#suiddir)

挂载文件系统上的目录将响应设置的 SUID 位，方法是将任何新文件的所有者设置为与目录的所有者相同。 新目录将从其父目录继承该位。 执行位从文件中删除，并且不会提供给 root。

此功能设计用于通过 ftp、SAMBA 或 netatalk 为 PC 用户提供服务的文件服务器。 它为 shell 用户提供了安全漏洞，因此不应在 shell 机器上使用，尤其是在主目录上。 此选项需要内核中的 SUIDDIR 选项才能工作。 只有 UFS 文件系统支持此选项。 有关详细信息，请参阅 chmod(2) 。

[`sync`](#sync)

文件系统的所有 I/O 都应该同步完成。

[`update`](#update)

与 `-u` 相同；指示应该更改已安装文件系统的状态。

[`union`](#union)

使挂载点的命名空间显示为已挂载的文件系统根目录和现有目录的联合。 查找将首先在挂载的文件系统中完成。 如果这些操作由于文件不存在而失败，则访问底层目录。 所有创建都在挂载的文件系统中完成。

[`untrusted`](#untrusted)

文件系统是不受信任的，内核在使用它之前应该对文件系统的元数据进行更广泛的检查。 此选项适用于从不受信任的媒体（例如 USB 记忆棒或其他外部提供的媒体）挂载文件系统时使用。

任何特定于不是内部已知类型之一的文件系统类型的附加选项（请参阅 `-t` 选项）可以作为逗号分隔列表传递；这些选项以前导 “-” （破折号）区分。 例如 `mount` 命令：

mount -t cd9660 -o -e /dev/cd0 /cdrom

导致 `mount` 执行相当于：

/sbin/mount\_cd9660 -e /dev/cd0 /cdrom

带值的选项使用 -option=value 语法指定：

mount -t msdosfs -o -u=fred,-g=wheel /dev/da0s1 /mnt

相当于

/sbin/mount\_msdosfs -u fred -g wheel /dev/da0s1 /mnt

特定于内部未知的文件系统类型的其他选项（请参阅下面的 `-t` 选项的描述）可以在相关 /sbin/mount\_**XXX** 实用程序的手册页中进行描述。

[`-p`](#p)

以 fstab(5) 格式打印挂载信息。也暗示了 `-v` 选项。

[`-r`](#r)

文件系统将以只读方式挂载。以只读方式挂载文件系统（即使是超级用户也可能不会写）。 与 `-o` 选项的 `ro`- 参数相同。

[`-t`](#t) \[`no`]type\[,type ...]

[`-t`](#t_2) 后面的参数用于指示文件系统类型。 `ufs` 类型是默认值。 `-t` 选项可用于指示只能对指定类型的文件系统执行操作。 可以在逗号分隔的列表中指定一种以上的类型。 文件系统类型列表可以以 `no` 为前缀，以指定 *not* 应对其采取操作的文件系统类型。 例如 `mount` 命令：

mount -a -t nonfs,nullfs

挂载除 NFS 和 NULLFS 类型之外的所有文件系统。

`mount` 的默认行为是将 `-t` 选项直接传递给 `fstype` 选项中的 nmount(2) 系统调用。

但是，对于以下文件系统类型： `cd9660`, `mfs`, `msdosfs`, `nfs`, `nullfs`, `smbfs`, `udf` 和 `unionfs` ， `mount` 不会直接调用 nmount(2) ，而是会尝试执行 /sbin/mount\_type 中的程序，其中 type 为替换为文件系统类型名称。 例如， `nfs` 文件系统由程序 /sbin/mount\_nfs 挂载。

如果内核模块不存在并且内核模块可用，大多数文件系统将由内核动态加载。

[`-u`](#u)

[`-u`](#u_2) 标志指示应该更改已安装文件系统的状态。 上面讨论的任何选项（ `-o` 选项）都可以更改；文件系统也可以从只读更改为读写，反之亦然。 如果文件系统上的任何文件当前打开以供写入，则从读写更改为只读的尝试将失败，除非还指定了 `-f` 标志。 通过将参数中指定的选项应用到 `-o` 并最终应用 `-r` 或 `-w` 选项来确定选项集。

[`-v`](#v)

详细模式。 如果单独使用 `-v` ，则显示所有文件系统，包括使用 `MNT_IGNORE` 标志挂载的文件系统，并显示有关每个文件系统的附加信息（包括由 root 运行时的 fsid）。

[`-w`](#w)

文件系统对象将被读取和写入。

## [环境](#__u73AF___u5883_)

[`PATH_FSTAB`](#PATH_FSTAB)

如果设置了环境变量 `PATH_FSTAB` ，则所有操作都针对指定的文件执行。 如果进程环境或内存地址空间被视为 “tainted” ，则不会使用 `PATH_FSTAB` 。 （有关详细信息，请参阅 issetugid(2) 。）

## [文件](#__u6587___u4EF6_)

/etc/fstab

文件系统表

## [诊断](#__u8BCA___u65AD_)

各种各样，其中大多数是不言自明的。

`XXXXX file system is not available`

内核不支持相应的文件系统类型。 请注意，可以在静态（内核编译时）或动态基础上（由 kldload(8) 作为内核模块加载）提供对特定文件系统的支持。

## [参见](#__u53C2___u89C1_)

getfacl(1), setfacl(1), nmount(2), acl(3), mac(4), cd9660(5), devfs(5), ext2fs(5), fstab(5), procfs(5), tmpfs(5), automount(8), fstyp(8), kldload(8), mount\_cd9660(8), mount\_msdosfs(8), mount\_nfs(8), mount\_nullfs(8), mount\_smbfs(8), mount\_udf(8), mount\_unionfs(8), umount(8), zfs(8), zpool(8)

## [历史](#__u5386___u53F2_)

`mount` 实用程序出现在 Version 1 AT\&T UNIX 中。

## [注意事项](#__u6CE8___u610F___u4E8B___u9879_)

成功 `mount` 后，原始挂载点的权限决定是否可以从挂载的文件系统访问 .. 。 对于所有用户来说，在两个方向上遍历安装点的安装点的最小权限是 0111（对所有用户执行）。

使用 `mount` 优于使用文件系统特定的 mount\_**XXX**- 命令。 特别是， mountd(8) 仅在通过 `SIGHUP` 挂载文件系统时才会收到 `mount` 信号（导致更新导出列表）。

## [缺陷](#__u7F3A___u9677_)

损坏的文件系统可能会导致崩溃。

August 28, 2019

FreeBSD 13.1-RELEASE
