(Posting using the preformatted-text button </>
is much more usable than screen shots)
/overlay
is the r/w portion of the file system. It can be seen more clearly with mount
. Here, from an Archer C7v2
$ mount
/dev/root on /rom type squashfs (ro,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
cgroup on /sys/fs/cgroup type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct,blkio,memory,devices,freezer,net_cls,pids)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
/dev/mtdblock4 on /overlay type jffs2 (rw,noatime)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
debugfs on /sys/kernel/debug type debugfs (rw,noatime)
One general reference on overlay file systems is https://wiki.archlinux.org/index.php/Overlay_filesystem
In brief, when looking for a file for read, the overlay is checked first. If the file exists, then it is used. If not, then the underlying file system is checked and used, if present. For write, the write is to the top-most overlay (multiples are possible). For delete, the top-most overlay gets a special mark, "Wite-Out" in a way, that indicates that the file, even if present on lower layers, "does not exist".