Overlay filesystem
(重定向自 Overlayfs)
出自 最初的内核提交
- Overlayfs 允许将一个目录树(通常是读写)覆盖到另一个目录树(只读)上。所有修改都将写入到上层可写层。这种机制最常用于 Live CD,但也存在各种其他用途。
- 该实现与其他“联合文件系统”实现的不同之处在于,在文件打开后,所有操作都直接转到下层或上层的基础文件系统。这简化了实现,并在这些情况下实现了原生性能。
Overlayfs 自 Linux kernel 3.18 版本以来就已存在。
安装
Overlayfs 在默认内核中已启用,并且在发出挂载命令时会自动加载 overlay
内核模块。
用法
要挂载 overlay,请使用以下 mount
选项
# mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
注意: 工作目录 (
workdir
) 需要是与上层目录位于同一文件系统上的空目录。- 下层目录可以是只读的,也可以是另一个 overlay。
- 上层目录通常是可写的。
- 工作目录用于准备在层之间切换的文件。
下层目录实际上可以是 :
分隔的目录列表,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
noauto
和 x-systemd.automount
挂载选项是必要的,以防止 systemd 在启动时因挂载 overlay 失败而挂起。现在,overlay 在首次访问时挂载,并且请求会被缓冲,直到它准备就绪。请参阅 fstab#使用 systemd 自动挂载。
只读 overlay
有时,只需要创建两个或多个目录组合的只读视图。在这种情况下,可以使用更简单的方式创建,因为 upper
和 work
目录是不需要的
# mount -t overlay overlay -o lowerdir=/lower1:/lower2 /merged
当未指定 upperdir
时,overlay 会自动挂载为只读。