$ tree upper/ lower/
upper/
├── upper-file1
└── upper-subdir1
lower/
├── lower-file1
└── lower-subdir1
2 directories, 2 files
Merge:
$ sudo mount -t overlay overlay -o lowerdir=./lower,upperdir=./upper,workdir=./workdir ./merged
$ tree lower upper workdir merged/
lower
├── lower-file1
└── lower-subdir1
upper
├── upper-file1
└── upper-subdir1
workdir
└── work [error opening dir]
merged/
├── lower-file1
├── lower-subdir1
├── upper-file1
└── upper-subdir1
5 directories, 4 files
vagrant@localhost:~/work/merged $ touch lower-subdir1/lower-file1-from-overlay
vagrant@localhost:~/work/merged $ touch upper-subdir1/upper-file1-from-overlay
$ tree merged/
merged/
├── lower-file1
├── lower-subdir1
│ └── lower-file1-from-overlay
├── upper-file1
└── upper-subdir1
└── upper-file1-from-overlay
2 directories, 4 files
vagrant@localhost:~/work $ tree upper/
upper/
├── lower-subdir1
│ └── lower-file1-from-overlay
├── upper-file1
└── upper-subdir1
└── upper-file1-from-overlay
2 directories, 3 files
vagrant@localhost:~/work $ tree lower/
lower/
├── lower-file1
└── lower-subdir1
1 directory, 1 file
$ cat /proc/filesystems | grep overlay
$ sudo modprobe overlay
$ lsmod | grep overlay
overlay 45056 0
$ cat /proc/filesystems | grep overlay
nodev overlay