我对 mount 命令的 --make-{shared,slave,private,unbindable} 标志感到困惑

我对 mount 命令的 --make-{shared,slave,private,unbindable} 标志感到困惑

我对命令的--make-shared--make-slave--make-private标志感到困惑。--make-unbindablemount

有人可以用简单的语言解释一下每个标志的作用吗?它们之间有什么区别?

答案1

命令中的这些标志mount是高级功能,可修改绑定挂载的工作方式。它们对挂载命名空间也有同样的效果,有时用于systemd允许进程拥有自己的私有挂载。

--make-unbindable标志可防止以后对部分或全部挂载进行绑定挂载:

mount --make-unbindable /master

#Both of these will fail
mount --rbind /master /slave
mount --rbind /master/subdir /slave

其他标志影响挂载中子挂载的更改如何在未来的绑定挂载和命名空间之间同步。仍然需要使用--rbind而不是来递归共享所有--bind现存的带有绑定挂载的子挂载,除了如上所述不可绑定的挂载。

类似--bind,所有这些标志也都有带前缀的变体r,并以递归方式应用于所有包含的挂载点。

--make-[r]shared标志(systemd 的初始状态)启用主挂载和未来副本之间的同步。例如,对于 处的现有挂载/master, 和 都master-submountslave-submount挂载在 和/master/slave

mount --make-rshared /master
mount --rbind /master /slave
mount /dev/$DEVICE /master/master-submount
mount /dev/$DEVICE /slave/slave-submount

--make-[r]private标志停止进一步同步。这对于任何现存的继续上面的例子,卸载/master/master-submount/slave/slave-submount不是/slave/master-submount现在卸载和处的副本/master/slave-submount

mount --make-rprivate /slave
umount /master/master-submount
umount /slave/slave-submount

--make-[r]slave标志可用于仅中断更新其他,但仍会收到它们。如果rslave使用 代替rprivate上述,/master/slave-submount仍不会被卸载/slave,但/slave/master-submount也会被卸载/master


这些标志的完整文档不在页面中man,但可以访问https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt

相关内容