许多人一直在说Linux不保留有关绑定安装的信息,因此无法获取它们及其来源的列表。这里有些例子:
从这里的评论之一:
IIRC不会在任何地方保存此信息:之后
mount --bind
,两个副本是等效的,没有一个副本比另一个副本更“原始”。毕竟,如果您已经卸载了,可能就没有原稿了/mnt
。从这个网站上的答案:
因此,记住什么挂载是绑定挂载的唯一方法是保留在中的挂载命令的日志
/etc/mtab
。绑定安装操作由bind mount选项指示(这将导致忽略文件系统类型)。但是mount没有选择仅列出通过一组特定的选项集安装的文件系统的选项。来自Debian错误报告:
这是故意的。两个安装点在所有方面都完全相等,因此内核不会保留任何标志来区分它们。
上面是胡说八道。该工具findmnt
能够列出绑定安装的源路径(以device[source-path]
;形式;我也试图使其仅列出源路径,而不列出设备)。如果Linux内核要维护绑定安装,那么该信息必须存储在某个地方,否则它就不知道/home
绑定到了/users
。那么这些数据在哪里呢?它是否存储在RAM中的某些模糊区域中?是否findmnt
在看/proc
什么地方?
/proc/self/mountinfo
最近才进行了重组。我当时在我的RHEL6机器上,之前没有路径信息,但是我的RHEL7机器上有,并且如您的链接中所述Wheezy也有。
/dev/A
挂载/B
并执行操作时mount --bind /B /C
,较早的内核只会记住/B → /dev/A
和/C → /dev/A
,而他们不会记住/B
和之间的任何关系/C
。因此,卸载/B
自然不会对产生影响/C
。较新的内核记住这/C
是的绑定安装/B
,但是以某种方式(/C
如果/B
已卸载)不会阻止其继续工作,我不知道具体如何。
findmnt
您运行的是哪个版本,并且提供了哪些选择?煤矿不打印出来一样,并查看源代码,它看起来是使用_PATH_PROC_MOUNTINFO
它看起来是/proc/self/mountinfo
不具有在它这个信息无论是。