当我们执行此操作时(在 linux redhat 7.x 上)
umount /grop/sdc
umount: /grop/sdc: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
我们可以看到忙时挂载失败。
但是当我们remount
这样做时...重新安装就成功了,如下所示:
mount -o rw,remount /grop/sdc
echo $?
0
非常有趣。
remount 是否使用 () 之类的选项umount -l
?remount
to umount
/和有什么不一样mount
?
答案1
man mount
:
重新安装
尝试重新挂载已挂载的文件系统。这通常用于更改文件系统的安装标志,尤其是使只读文件系统可写。它不会更改设备或安装点。重新挂载功能遵循 mount 命令与 fstab 中的选项配合使用的标准方式。这意味着只有在完全指定设备和目录时,mount 命令才不会读取 fstab(或 mtab)。
当当前未使用文件系统时,使用 remount 选项将挂载选项从 修改ro
为rw
。
目标正忙。
如果文件系统已在使用中,则无法正确卸载它,则需要找到访问文件的进程(fuser -mu /path/
),终止正在运行的进程,然后卸载文件。
答案2
GAD3R 对手册页的引用回答了您的问题:
这通常用于更改文件系统的安装标志,
该解释中没有任何地方说重新挂载调用了 umount 函数。
也许您可以在这些联机帮助页中找到答案
man 2 mount
:
对 mount() 的调用执行多种常规操作类型之一,具体取决于 mountflags 中指定的位。选择要执行的操作是通过测试 mountflags 中设置的位来确定的,测试按照此处列出的顺序进行:
重新挂载现有挂载:mountflags 包括 MS_REMOUNT。
重新挂载现有挂载 可以通过在 mountflags 中指定 MS_REMOUNT 来重新挂载现有挂载。这允许您更改现有挂载的挂载标志和数据,而无需卸载并重新挂载文件系统。 target 应该与初始 mount() 调用中指定的值相同。