我在使用 overlayfs 时遇到以下问题:我可以使用以下行顺利挂载 overlayfs /etc/fstab
:
none /home/student overlayfs lowerdir=/home/student,upperdir=/home/.student_rw 0 0
这很有效并且mount
命令正确显示了覆盖:
pc:~$ mount -l -t overlayfs
none on /home/student type overlayfs (rw,lowerdir=/home/student,upperdir=/home/.student_rw)
所以现在当学生退出机器时我会/home/.student_rw
使用脚本删除内容——这也能正常工作。
问题是,登录的学生应该找到一个干净的主目录,其中的设置已预先配置,/home/student
因为 overlayfs 不会触碰 lowerdir 文件夹。但是 overlayfs“记住”了已删除的文件,并且不会显示它们,即使它们存在于 lowerdir 中。重新启动后,这种方法可以正常工作。但我希望它在注销和登录时也能正常工作。我该如何解决这个问题?对我来说,一个可能的解决方案似乎是让 upperdir 重新读取 lowerdir。我该怎么做?
完全相同的方法对于 aufs 非常有效,但 aufs 不再受精确支持。
答案1
只需执行:
echo 3 > /proc/sys/vm/drop_caches
这将使内核从内存中删除缓存、dentry 和 i-node 数据。