1# Overlayfs {#sec-overlayfs}
2
3NixOS offers a convenient abstraction to create both read-only as well writable
4overlays.
5
6```nix
7{
8 fileSystems = {
9 "/writable-overlay" = {
10 overlay = {
11 lowerdir = [ writableOverlayLowerdir ];
12 upperdir = "/.rw-writable-overlay/upper";
13 workdir = "/.rw-writable-overlay/work";
14 };
15 # Mount the writable overlay in the initrd.
16 neededForBoot = true;
17 };
18 "/readonly-overlay".overlay.lowerdir = [
19 writableOverlayLowerdir
20 writableOverlayLowerdir2
21 ];
22 };
23}
24```
25
26If `upperdir` and `workdir` are not null, they will be created before the
27overlay is mounted.
28
29To mount an overlay as read-only, you need to provide at least two `lowerdir`s.