我已将olddevice安装到/mnt:
$ mount olddevice /mnt
我想在/mnt挂载点更改设备。为此,我简单地将newdevice挂载在它上面:
$ mount newdevice /mnt
这样,在olddevice上仍有文件描述符的进程可以继续在旧设备上工作,但使用/mnt的新进程将使用newdevice。
我可以检测到olddevice 何时不再使用并决定卸载它。我的问题是如何卸载它:
$ umount olddevice
umount: olddevice: umount failed: Invalid argument.
可以直接卸载吗?还是必须先卸载新设备(我不希望这样)?
如果您尚未在启用挂载传播的情况下运行,例如按照 systemd 默认设置,请先运行:
然后:
然后安全地拆卸魔法——注意不要卸载整个系统:
通常,我喜欢使用
mount
/umount
命令的递归变体。你说你开始时只有一个文件系统安装在下面/mnt
。在上面的序列中,我使用了umount -R /root.orig/mnt
. 如果在 的子目录上还挂载了一个文件系统/mnt
,则此umount -R
命令可能会在中途失败。即因为子挂载上没有打开的文件,但主挂载上仍有一些打开的文件。IMO 这感觉类似于umount -l
工作原理。umount -l /path
反汇编和分离挂载树,每个独立的文件系统在没有打开文件时立即关闭。