「umount(8)」-

  LINUX MANUAL PAGES

卸载文件系统

命令语法格式

umount -a [-dflnrv] [-t fstype] [-O option…]

umount [-dflnrv] {directory|device}…

umount -h | -V

命令描述

命令umount将提到的文件系统与文件层次结构分离。 通过给出已挂载目录的目录来指定文件系统。 给文件系统所在的特殊设备也可以使用,但是已经过时,主要是因为如果该设备挂载在多个目录上,它将会失败。

请注意,文件系统在“busy”时无法卸载 – 例如,当文件系统上有打开的文件,或者某个进程在其中有工作目录时,或者正在使用其中的交换文件时。 违规进程甚至可以自行卸载 – 它会打开libc,而libc可能会打开例如locale文件。 懒惰卸载(–lazy)可以避免这个问题。

命令支持的选项及含义

-a, –all
除了proc,devfs,devpts,sysfs,rpc_pipefs,nfsd文件系统之外,卸载/proc/self/mountinfo(或弃用的/ etc/mtab)中描述的所有文件系统。此文件系统列表可以替换为–types umount选项。

-A, –all-targets
卸载指定文件系统的当前命名空间中的所有挂载点。 文件系统可以由其中一个挂载点或设备名称(或UUID等)指定。 当此选项与–recursive一起使用时,文件系统中的所有嵌套挂载都将以递归方式卸载。

仅在/etc/mtab是/proc/mounts的符号链接的系统上支持此选项。

-c, –no-canonicalize
不要规范化路径。 路径规范化基于stat(2)和readlink(2)系统调用。 在某些情况下,这些系统调用可能会挂起(例如在NFS上如果服务器不可用)。 该选项必须与挂载点的规范路径一起使用。

有关此选项的更多详细信息,请参见mount(8)手册页。 请注意,umount不会将此选项传递给/sbin/umount.type帮助程序。

-d, –detach-loop
当卸载的设备是环路设备时,也可以释放此环路设备。 对于mount(8)初始化的设备,此选项是不必要的,在这种情况下,默认情况下启用“autoclear”功能。

–fake
除了实际的系统调用或umount帮助程序执行外,导致一切都要完成;这个’伪造’卸载文件系统。 它可用于从已弃用的/etc/mtab中删除条目(先前使用-n选项卸载的)。

-n, –no-mtab
无需在/etc/mtab中写入即可卸载。

-f, –force
强制卸载(如果无法访问NFS系统)。

请注意,此选项不保证umount命令不会挂起。 强烈建议使用不带符号链接的绝对路径,以避免在umount中无法访问的NFS上发生不必要的readlink和stat系统调用。

-i, –internal-only
即使存在,也不要调用/sbin/umount.filesystem帮助程序。 默认情况下,如果存在这样的辅助程序,则会调用它。

-l, –lazy
懒惰卸载。 立即从文件层次结构中分离文件系统,并在它不再忙时立即清除对该文件系统的所有引用。

-O, –test-opts option…
仅卸载在/etc/fstab中设置了指定选项的文件系统。 可以在逗号分隔列表中指定多个选项。 每个选项都可以带有“no”前缀,表示不应对此选项采取任何操作。

-R, –recursive
递归卸载每个指定的目录。 如果链中的任何卸载操作因任何原因失败,则每个目录的递归将停止。 挂载点之间的关系由/proc/self/mountinfo条目确定。 文件系统必须由mountpoint路径指定;不支持按设备名称(或UUID)进行递归卸载。

-r, –read-only
当卸载失败时,尝试以只读方式重新安装文件系统。

-t, –types type…
指示仅应对指定类型的文件系统执行操作。 可以在逗号分隔列表中指定多个类型。 文件系统类型列表可以带有“no”前缀,表示不应对所有提到的类型采取任何操作。 请注意,umount从内核(/proc/mounts)读取有关已安装文件系统的信息,文件系统名称可能与/etc/fstab中使用的文件系统名称不同(例如“nfs4”与“nfs”)。

-v, –verbose
详细模式。

-V, –version
显示版本信息并退出。

-h, –help
显示帮助信息并退出。

注意事项

回环设备(LOOP DEVICE)

命令umount将自动分离先前由mount(8)命令初始化的循环设备,而与/etc/mtab无关。

在这种情况下,设备初始化为“autoclear”标志(有关更多详细信息,请参见losetup(8)输出),否则必须使用选项–detach-loop或调用losetup -d <device>。 自Linux 2.6.25起支持自动删除功能。

外部帮助程序(EXTERNAL HELPERS)

外部卸载帮助程序的语法是:

# umount.suffix {directory|device} [-flnrv] [-t type.subtype]

其中suffix是文件系统类型(或mtab文件中uhelper=或helper=标识的值)。选项-t可用于具有子类型支持的文件系统。 例如:

# umount.fuse -t fuse.sshfs

当普通用户需要能够卸载未在/etc/fstab中定义的挂载点时(例如对于由udisks(1)挂载的设备),标记uhelper=something(非特权帮助程序)可以出现在/etc/mtab文件中。

文件mtab中的helper=type标记会将所有卸载请求重定向到/sbin/umount.type助手,而与UID无关。

请注意,/etc/mtab当前已被弃用,并且helper=和另一个用户空间挂载选项由libmount维护。

相关文件

/etc/mtab
已挂载的文件系统表(不建议使用并通常由符号链接替换为/proc/mounts)

/etc/fstab
已知文件系统表

/proc/self/mountinfo
内核生成的挂载文件系统表。

相关环境变量

LIBMOUNT_FSTAB=<path>
覆盖fstab文件的默认位置(suid忽略)

LIBMOUNT_MTAB=<path>
覆盖mtab文件的默认位置(suid忽略)

LIBMOUNT_DEBUG=all
启用libmount调试输出

相关手册

umount(2), losetup(8), mount(8)

参考文献

  • man 8 umount, Version 2.32-0.1

更新日志

  • 11/15/2018 创建文章