我看过各种文章以及 Wikipedia 上的解释,但我很难理解它的意思。到目前为止,我理解 UnionFS 是一个提供目录联合视图的模块。它位于已安装目录的上一层。UnionFS 没有安装点。
让我困惑的是 UnionFS 如何知道应该以统一的方式显示什么?
答案1
UnionFS 在目录级别而非设备级别工作,因此它没有挂载点 - 它位于现有挂载点之上,每个挂载点可能都是一个分支 - 例如,在只读 iso9660 cd rom 文件系统上有一个基础层(或使用正确的术语 - 具有根文件系统的低优先级层),在 ramdisk 上有一个分支。每个分支都分配有一个优先级,优先级较高的分支将覆盖优先级较低的分支。
如果一个目录存在于两个下级分支,那么Unionfs目录的内容和属性就是两个下级目录的组合。
如果一个文件存在于两个分支中,则Unionfs文件的内容和属性与优先级较高的分支中的文件相同,优先级较低的分支中的文件被忽略。
最后,如果有重复,则会隐藏重复的目录以简化操作。
Linux杂志有相当全面的描述关于 unionfs 的工作原理,如果你想要更多的信息,而不仅仅是简单的解释
答案2
它的 VFS 操作是回调到底层文件系统的 VFS 层的小存根。因此,当您读取目录时,它会读取底层文件系统的目录并合并文件列表。