Overlayfs
Merges a readonly base directory (lower
) and a new directory (upper
) into a writable directory (merged
)
Changes made in this writable directory are saved in upper
test
merged
setup:
mkdir lower
mkdir upper
mkdir merged
mkdir work
sudo mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
files in lower
or upper
are available in merged
touch lower/1
touch upper/2
ls -1 merged
creating a file in merged
will create it in upper
touch merged/3
ls -1 upper
file changes
When a file from lower
is changed in merged
, the change is persisted in upper
echo "from lower" > lower/change-me
cat merged/change-me
echo "changed in merged" > merged/change-me
cat lower/change-me
cat upper/change-me
deleting files
What happens when a file from lower
is deleted in merged
?
touch lower/delete-me
ls -1 merged/
rm -v merged/delete-me
still in lower
(readonly): ls -1 lower
but it becomes a character special file: stat upper/delete-me
cleanup
sudo umount merged
sudo rm -r work
rmdir merged
output of find . -type f | sort
:
./lower/1
./lower/change-me
./lower/delete-me
./upper/2
./upper/3
./upper/change-me