取消挂载文件系统会将该文件系统从文件系统挂载点删除,并从 /etc/mnttab 文件中删除相应项。部分文件系统管理任务无法在已挂载的文件系统上执行。出现以下情况时,应取消挂载文件系统:
文件系统不再需要,或者已被包含更新的软件的文件系统所替换。
需要使用 fsck 命令检查和修复文件系统。有关 fsck 命令的更多信息,请参见第 22 章,检查 UFS 文件系统一致性(任务)。
进行完整备份之前,应取消挂载文件系统。有关进行备份的更多信息,请参见第 25 章,备份文件和文件系统(任务)。
在系统关闭过程中,会自动取消挂载文件系统。
在紧急情况下,可以使用 umount -f 选项强制取消挂载繁忙的文件系统。建议在正常情况下不要使用此做法,因为取消挂载包含打开文件的文件系统可能会导致数据丢失。此选项只能用于 UFS 和 NFS 文件系统。
取消挂载文件系统的先决条件包括:
您必须是超级用户或承担等效角色。
必须有一个文件系统可用于取消挂载。不能取消挂载繁忙的文件系统。如果出现以下任一情况,则认为文件系统繁忙:用户正在访问文件系统中的目录,程序打开了该文件系统中的文件,文件系统正在被共享。通过执行以下操作,可以使文件系统可用于取消挂载:
转到其他文件系统中的目录。
从系统中注销。
使用 fuser 命令列出正在访问文件系统的所有进程并将其停止(如有必要)。有关更多详细信息,请参见如何停止访问文件系统的所有进程。
如果需要取消挂载用户正在使用的文件系统,请通知他们。
取消共享文件系统。有关取消共享文件系统的信息,请参见 unshare(1M)。
要验证是否已取消挂载一个或多个系统,请检查 mount 命令的输出。
$ mount | grep unmounted-file-system $ |
列出正在访问文件系统的所有进程,以便确定要停止的进程。
# fuser -c [ -u ] /mount-point |
针对文件系统挂载点的文件以及那些已挂载文件系统内的任何文件进行报告。
显示每个进程 ID 的用户登录名。
指定要为其停止进程的文件系统的名称。
停止正在访问文件系统的所有进程。
# fuser -c -k /mount-point |
SIGKILL 会发送到正在使用文件系统的每个进程。
在没有首先警告用户的情况下,不应停止用户进程。
验证是否没有进程正在访问文件系统。
# fuser -c /mount-point |
以下示例说明如何停止正在使用 /export/home 文件系统的进程 4006c。
# fuser -c /export/home /export/home: 4006c # fuser -c -k /export/home /export/home: 4006c # fuser -c /export/home /export/home: |
使用以下过程可取消挂载除根 (/)、/usr 或 /var 文件系统之外的文件系统。
根 (/)、/usr 和 /var 文件系统只能在关机过程中取消挂载。系统需要有这些文件系统才能正常工作。
确保已满足取消挂载文件系统的先决条件中列出的先决条件。
取消挂载文件系统。
# umount /mount-point |
其中 /mount-point 是要取消挂载的文件系统的名称。这可以是以下各项之一:
挂载文件系统的目录的名称
文件系统的设备名称路径
NFS 文件系统的资源
LOFS 文件系统的回送目录
以下示例说明如何取消挂载本地起始文件系统。
# umount /export/home |
以下示例说明如何取消挂载片 7 上的文件系统。
# umount /dev/dsk/c0t0d0s7 |
以下示例说明如何强制取消挂载 /export 文件系统。
# umount -f /export # |
以下示例说明如何取消挂载 /etc/vfstab 文件中除根 (/)、/proc、/var 和 /usr 文件系统之外的所有文件系统。
# umountall |
除繁忙的那些文件系统以外,将取消挂载其他所有文件系统。