Overlayfs 的预期行为?下层丢失文件

Overlayfs 的预期行为?下层丢失文件

我正在尝试构建一个合并的覆盖结构,我可以在其中替换(离线,甚至重新启动)下层。不知何故,它没有按预期工作来演示我的问题,我使用了以下示例:

mkdir lower upper work merged
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
mkdir merged/test
getfattr -n trusted.overlay.opaque upper/test
umount merged
mkdir -p lower/test
touch lower/test/blub.txt
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
ls -la merged/test
umount merged
touch upper/test/bla.txt
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
ls -la merged/test
umount merged
rm -rf lower upper work merged

结果如下:

root@linux:/data# mkdir lower upper work merged
root@linux:/data# mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
root@linux:/data# mkdir merged/test
root@linux:/data# getfattr -n trusted.overlay.opaque upper/test
# file: upper/test
trusted.overlay.opaque="y"

root@linux:/data# umount merged
root@linux:/data# mkdir -p lower/test
root@linux:/data# touch lower/test/blub.txt
root@linux:/data# mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
root@linux:/data# ls -la merged/test
total 8
drwxr-xr-x 2 root root 4096 Feb  3 18:30 .
drwxr-xr-x 1 root root 4096 Feb  3 18:30 ..
root@linux:/data# umount merged
root@linux:/data# touch upper/test/bla.txt
root@linux:/data# mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
root@linux:/data# ls -la merged/test
total 8
drwxr-xr-x 2 root root 4096 Feb  3 18:32 .
drwxr-xr-x 1 root root 4096 Feb  3 18:30 ..
-rw-r--r-- 1 root root    0 Feb  3 18:32 bla.txt
root@linux:/data# umount merged
root@linux:/data# rm -rf lower upper work merged

所以基本上我在空的合并的overlayfs 上创建一个新文件夹。正如预期的那样,它在上层创建了这个目录。但是使用“trusted.overlay.opaque”设置呢?

现在,设置该属性后,我对较低文件系统的更改将在将来隐藏。更改是离线完成的,所以应该有效吗?

在 debian(4.19 内核) 和 archlinux(5.10 内核) 上测试

感谢您的时间 :)

相关内容