我使用overlayFS
创建了一种简单的实验沙盒。
我想我明白它是如何运作的:
例如,我在/disk2
上安装了物理磁盘。然后我想覆盖以保留内容,所以我可以做类似的事情:
mount("overlay", "/disk2", "overlay", MS_MGC_VAL, "lowerdir=/disk2,upperdir=./upper,workdir=./work");
这很好用:当我的新流程尝试修改/disk2
下的内容时,它只会在 upper 下实际修改:这确实按预期工作。例如,我还可以看到 0,0 文件,以显示在 upper 中删除了某些内容,但未在 lower 中删除。
不幸的是,我似乎无法覆盖根/
:如果我执行以下代码:
mount("overlay", "/", "overlay", MS_MGC_VAL, "lowerdir=/disk2,upperdir=./upper,workdir=./work")
我仍然可以看到整个真实的 /
,当我写文件时,它们会被写入 real (即 lower >)位置,而不是 upper 中的位置。
我在这里做错了什么?
我在内核4.4.0-53
上。
答案 0 :(得分:-1)
根据我所读到的内容,我不认为一旦系统启动就以编程方式执行此操作。