A union mount显示单个层次结构中多个目录(分支)的组合视图.好的,但我如何在实践中使用一个,哪一个?
许多联合装载技术可在现代Linux系统上使用:OverlayFS,aufs,UnionFS,各种基于FUSE的文件系统,……
鉴于用例,我如何确定哪一个适合?特别是:
>哪些需要在典型系统上进行root访问? (换句话说,非特权用户可以创建联合装载吗?)
>哪些可以挂载/(当然有root访问权限)?
>哪些支持写入底层分支? (即如果/ foo和/ bar是联合安装到/ union,我可以写入/ foo和/ bar吗?)
>哪些支持可写的写入策略? (例如,我可以将新创建的文件发送到分支B,即使我在两个分支上存在文件时从分支A获取内容吗?)
>哪些支持依赖于文件的分支之间的优先级顺序? (例如,我是否可以在拥有它的所有分支中获得最新文件?)
用法示例将不胜感激.
请避免专注于特定点的答案.我正在寻找全面的答案,审查可用的软件(类似于What is a bind mount?).好的答案将得到赏识.
解决方法:
在每个具体点上:
> Root访问:如果它使用FUSE,它不需要root,如果它不使用FUSE,它需要root,除非你使用任何功能(有潜在危险)或命名空间进行特殊设置.
>挂载/:我假设你的意思是启动时的根文件系统,在这种情况下,任何以内核模式运行的应该在理论上工作,尽管有些比其他更可靠.大多数LiveCD都是这样做的,所以我建议寻找有关这个特定点的信息.
>写入底层分支:这取决于你的意思.如果你的意思是将写入传播到已安装的视图到下层分支,我不知道.如果您的意思是从主文件系统本身写入带外的较低分支,技术上所有三大分支都可以,但它们都需要重新安装以确保将更改传播到已安装的视图.
>可配置的写策略:我不是特别了解这一点,但我认为大3(UnionFS,AUFS和OverlayFS)不支持它.
>依赖于文件的优先级顺序:我认为这也属于第三个子问题,并且在那里,我不知道有任何特别支持它.
至于其中每一个的更具体细节:
> UnionFS:据我所知,这是Linux的原始可堆叠联合文件系统实现.它已经存在很长时间了,很多Linux LiveCD都使用它.它以内核模式运行,并且需要使用上游内核的补丁.
> AUFS:起源于UnionFS的分支,然后变成了它自己的东西.这个尝试合并主线,并因代码质量而被拒绝.它在一些发行版的LiveCD中取代了UnionFS,主要是Debian和Gentoo衍生产品.与UnionFS一样,它以内核模式运行,需要上游内核的补丁.
> OverlayFS:我不太了解这个的最初发展,除了它也支持几个BSD衍生物.它尤其是Linux内核中的上游覆盖/联合文件系统实现.它也以内核模式运行.
> UnionFS-FUSE:这个有点混乱命名的项目实际上与UnionFS无关,除了提供基本相同的功能.它是联合文件系统中使用最广泛的FUSE实现,但这就是我所知道的.
> mhddfs:这个奇怪的异常值比传统的union文件系统更类似于文件粒度raid0实现.它支持根据空间使用情况在多个后备目录中平衡文件.它也是基于FUSE的.
需要注意的几个具体事项并非特定于特定实现:
>所有内核选项都有对后备文件系统的限制,最明显的是不使用网络文件系统或BTRFS.
>当用作根文件系统时,所有FUSE实现都存在问题.这不是特定于union文件系统的实现,但更常见的是FUSE的问题.来源:https://www.icode9.com/content-3-384701.html