gpt4 book ai didi

linux - 如何在overlayfs中使用多个低层

转载 作者:太空狗 更新时间:2023-10-29 11:08:18 25 4
gpt4 key购买 nike

根据this文档应该可以使用 overlayfs 的多个较低层,但我无法让它在内核 3.18.13 上工作。我是不是用错了,还是我需要更新的内核,如果是的话是哪个?

这个有效:

>>>mkdir lower1 lower2 upper workdir merged
>>>echo hello > lower1/myfile
>>>sudo mount -t overlay overlay -olowerdir=lower1,upperdir=upper,workdir=workdir/ merged
>>>cat merged/myfile
hello

与文档非常相似的示例:

>>>sudo mount -t overlay overlay -olowerdir=lower1:lower2 merged
mount: wrong fs type, bad option, bad superblock on overlay,
missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.
>>>dmesg | tail -n1
[42131.327203] overlayfs: missing upperdir or lowerdir or workdir

好的,让我们添加它们:

>>>sudo mount -t overlay overlay -olowerdir=lower1:lower2,upperdir=upper,workdir=workdir/ merged
mount: wrong fs type, bad option, bad superblock on overlay,
missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.
>>>dmesg | tail -n1
[42155.052961] overlayfs: failed to resolve 'lower1:lower2': -2

最佳答案

使用多个 overlayfs 挂载来实现多个较低目录的“堆叠”可能很诱人,但是,这已被证明无法实现 beyond two mounts与更高版本的内核。也就是说,如果您将一组上层/下层目录挂载到一个挂载点,然后使用与另一个 overlayfs 挂载的下层目录相同的挂载点,则第三次挂载尝试将失败,您将在 dmesg 中看到:“overlayfs: maximum fs stacking depth exceeded”。我看到 why a limiting stacking depth is needed ,但我不清楚为什么当前将其设置为 2。

因此,如果您坚持使用 3.18 并且还不能迁移到 3.19(如 toto38 所建议的),那么您正在寻找一种无需重新编译内核即可使用多个“较低”目录的方法吗?如果您使用的是 RHEL/Centos/Fedora,那么 funionfs 可能是您最好的选择 ( yum install funionfs )。您可以在单个挂载命令中指定多个只读的低级目录:

funionfs -o dirs=<FIRST_LOWER_RO_DIR_PATH>=RO:<SECOND_LOWER_RO_DIR_PATH>=RO:<UPPER_RW_DIR_PATH> NONE <MOUNT_POINT_DIR_PATH>

我从来没有比较过 overlayfs 和 funionfs 之间的性能,尽管 overlayfs 在内核空间中工作而 funionfs 在用户空间中(通过 fuse),所以我认为 funionfs 可能比 overlayfs 有更多的开销。

关于linux - 如何在overlayfs中使用多个低层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31044982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com