我正在寻找一种实现文件系统文件/目录访问层的方法。
所以我可以有这样的结构:
/mountPointMerged/
/mountPointLayer1/a/b/c.txt
/mountPointLayer2/a/b/c.txt
/mountPointLayer3/a/b/c.txt
访问文件时/mountPointMerged/a/b/c.txt
,如果安装了第二层,则只有第三层未安装时才会读取/写入该文件,如果第二层和第三层都被卸载,则将访问第一层。
关键是,必须发生合并。因此,将这些文件专门添加到这些层中:
/mountPointLayer1/a/b/d.txt
/mountPointLayer2/a/b/e.txt
/mountPointLayer3/a/b/f.txt
将提供以下结果:
ls /mountPointMerged/a/b/
c.txt
d.txt
e.txt
f.txt
在 处创建的任何新文件/mountPointMerged/
都将写入最顶层的安装层。但其他层可以通过访问 ex.:/mountPointLayer2/a/b/c.txt
而不是直接访问/mountPointMerged/
。
可以通过某种方式完成吗?
答案1
我发现的最灵活、最直接的选项是 AUFS,例如:
mount -t aufs -o "br=CustomFolderToWriteAt:CustomTopOverriderFolder:CustomInBetweenOverriderFolders:CustomLowestPriorityFolder" none CustomMergedMountPointFolder
CustomFolderToWriteAt 将包含将在 CustomMergedMountPointFolder 写入的所有修改,即使您是touch
一个文件,它也会在那里创建此类的完整副本。
CustomInBetweenOverriderFolders,可以有多个,这里用“:”分隔。
对其他自定义文件夹的更改会立即应用于合并的 CustomMergedMountPointFolder。