跳转至内容

Overlay filesystem

来自 ArchWiki

来自 最初的内核提交

Overlayfs 允许将一个通常是读写的目录树叠加到另一个只读目录树之上。所有修改都会写入到上层的、可写的层。这种机制最常用于 Live CD,但也有广泛的其他用途。
其实现方式与其他“联合文件系统”实现不同,它会在文件打开后,所有操作都直接指向底层、下层或上层的文件系统。这简化了实现,并在这些情况下允许原生性能。

Overlayfs 自 3.18 版本起就已包含在 Linux 内核中。

安装

Overlayfs 在默认内核中已启用,并且在发出挂载命令时会自动加载 overlay 内核模块

用法

要挂载 overlay,请使用以下 mount 选项:

# mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
注意 工作目录 (workdir) 需要是与上层目录在同一文件系统上的一个空目录。
  • 下层目录可以是只读的,也可以是 overlay 本身。
  • 上层目录通常是可写的。
  • workdir 用于在层之间切换文件时进行准备。

下层目录实际上可以是由 : 分隔的目录列表,对 merged 目录的所有更改仍会反映在 upper 中。

示例

# mount -t overlay overlay -o lowerdir=/lower1:/lower2:/lower3,upperdir=/upper,workdir=/work /merged
注意 下层目录的顺序是,最右边的最低,因此上层目录位于从左到右的下层目录列表的第一个目录之上;而不是列表中的最后一个目录之上,尽管顺序可能会暗示如此。

上述示例的顺序将是:

/upper
/lower1 
/lower2
/lower3

要将 overlayfs 条目添加到 /etc/fstab,请使用以下格式:

/etc/fstab
overlay /merged overlay noauto,x-systemd.automount,lowerdir=/lower,upperdir=/upper,workdir=/work 0 0

noautox-systemd.automount 挂载选项是必需的,以防止 systemd 在启动时因无法挂载 overlay 而卡住。现在,当 overlay 首次被访问时,它会被挂载,并且请求会被缓冲直到准备就绪。参见 fstab#systemd 自动挂载

只读 Overlay

有时,只想创建两个或多个目录组合的只读视图。在这种情况下,可以以更简单的方式创建,因为 upperwork 目录是不需要的。

# mount -t overlay overlay -o lowerdir=/lower1:/lower2 /merged

当未指定 upperdir 时,overlay 会自动以只读方式挂载。

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.