覆盖文件系统

覆盖文件系统

如果您需要知道,我使用的是具有内核版本的 GNU+Linux 发行版5.5.5

所以,假设我有一个名为 根据。进一步假设该目录只包含一个空文件,名为A
理想情况下,我想该目录将其内容保留到名为的新目录中。然后,我会在文件中写入一些内容A此外,创建一个新的空文件,名为(代替)。

我想要实现的预期行为是根据目录内容保持不变(即空文件A仅),同时进行的更改目录持续存在。

这是我能给你的最简单的例子,请记住根据可能包含很多文件,因此这样做的目的只是为了尽可能避免复制这些文件。

你知道这是否可能吗?如果是这样,怎么办?
谢谢

答案1

你可以看一下覆盖文件系统,或者在某些发行版上仍然可用奥夫斯

这是OverlayFS的描述Linux 内核文档

覆盖文件系统

本文档描述了在 Linux 中提供覆盖文件系统功能的新方法的原型(有时称为联合文件系统)。覆盖文件系统尝试呈现一种文件系统,该文件系统是将一个文件系统覆盖在另一个文件系统之上的结果。

这是一个 OverlayFS 的工作示例。它需要两个额外的目录,一个用于保留永久更改:所有数据都将写入那里,因此磁盘空间将消耗在那里,以及同一文件系统中的一个空工作目录。

因此,假设您的目录可以位于三个不同的文件系统中,并且安装为/fs1,/fs2并且/fs3(当然所有目录都可以位于同一文件系统上):

/fs1/base
/fs2/delta
/fs2/work
/fs3/fork

如上一个链接中所述,您可以使用以下命令安装最终的合并视图 ( /fs3/fork):

mount -t overlay overlay -olowerdir=/fs1/base,upperdir=/fs2/delta,workdir=/fs2/work /fs3/fork

就是这样。您必须阅读文档才能了解限制(例如:何时涉及 NFS 等)

相关内容