# Overlayfs {#sec-overlayfs} NixOS offers a convenient abstraction to create both read-only as well writable overlays. ```nix fileSystems = { "/writable-overlay" = { overlay = { lowerdir = [ writableOverlayLowerdir ]; upperdir = "/.rw-writable-overlay/upper"; workdir = "/.rw-writable-overlay/work"; }; # Mount the writable overlay in the initrd. neededForBoot = true; }; "/readonly-overlay".overlay.lowerdir = [ writableOverlayLowerdir writableOverlayLowerdir2 ]; }; ``` If `upperdir` and `workdir` are not null, they will be created before the overlay is mounted. To mount an overlay as read-only, you need to provide at least two `lowerdir`s.