将 2 个目录挂载或链接到 1 个目录

将 2 个目录挂载或链接到 1 个目录

我有2个目录:

  • /home/mvanorder
  • /mnt/data/home/mvanorder

我的计算机上有多个发行版,我会定期轮换并安装新发行版。然而,为了方便起见,所有共享的文件都在其中/mnt/data/home/mvanorder,然后创建符号链接以/home/mvanorder指向它们。

有谁知道是否可以让操作系统在其中查找文件,/home/mvanorder如果找不到,则在/mnt/data/home/mvanorder.与 a 类似mount --bind,但它会在查找绑定目录之前先查找原始目录。

答案1

您所描述的内容无法使用绑定安装或链接来完成。但是,您可以使用overlayfs.

挂载overlayfs将显示“合并的文件系统”,其中包含来自两者的文件和目录。上层文件系统优先于下层文件系统。如果文件都存在于两者中,则较高的文件系统版本将可见,以防它们合并的目录。对上层文件系统进行写入(如果上层文件系统中不存在文件,则将文件从下层复制到上层)。

根据您的情况,请用作/home/mvanorder下层文件系统和/mnt/data/home/mvanorder上层文件系统。

请注意删除时的行为:更改始终在上层文件系统而不是文件所在的文件系统。一个whiteout文件是在上层文件系统当文件被删除时覆盖文件系统挂载。空白文件使文件在覆盖文件系统挂载。当在overlayfs中创建新目录时,它被标记为不透明。在不透明目录上,仅使用上层文件系统版本,即使目录存在于下层文件系统中。这意味着当您删除overlayfs中的目录然后重新创建它时,只有上层版本可见。

有关的确切详细信息overlayfs在中进行了解释文档

相关内容