我通过挂载尝试了一个简单的覆盖示例:sudo mount -t overlay -o lowerdir=/tmp/lower,upperdir=/tmp/upper/upper, workdir=/tmp/upper/workdir none /tmp/overlay
(我从示例中运行了完整的脚本:https://blog.programster.org/overlayfs)
挂载成功:
/tmp/lower-fs.img on /tmp/lower type ext4 (ro)
/tmp/upper-fs.img on /tmp/upper type ext4 (rw)
none on /tmp/overlay type overlay
(rw,lowerdir=/tmp/lower,upperdir=/tmp/upper/upper,workdir=/tmp/upper/workdir)
然而,当我尝试写入只读和覆盖区域时出现错误:
echo "hello world" >> /tmp/lower/lower-file.txt
bash: /tmp/lower/lower-file.txt: Read-only file system
我使用以下内核:
$ uname -a
Linux user-VirtualBox 4.4.50-040450-generic #201702181144 SMP Sat Feb 18
16:45:38 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
感谢您的任何想法
答案1
您需要写信给覆盖挂载。您粘贴的命令试图直接写入下层,而下层确实是以只读方式挂载的……
改用这个,它应该可以工作:
$ echo "hello world" >> /tmp/overlay/lower-file.txt
请注意,您将在挂载中看到下层的内容/tmp/overlay
,但所做的任何修改都将转到上层(引擎盖下),同时您将获得覆盖挂载点下各层的合并视图,这是您应该访问的。