Aufs

aufs (short for advanced multi-layered unification filesystem) implements a union mount for Linux file systems. The name originally stood for AnotherUnionFS until version 2.

Developed by Junjiro Okajima in 2006, aufs is a complete rewrite of the earlier UnionFS. It aimed to improve reliability and performance, but also introduced some new concepts, like writable branch balancing, and other improvements – some of which are now implemented in the UnionFS 2.x branch.

aufs was rejected for merging into mainline Linux. Its code was criticized for being "dense, unreadable, [and] uncommented". Instead, OverlayFS was merged in the Linux kernel. After several attempts to merge aufs into mainline kernel, the author has given up.

Use
Aufs is included in Debian "Jessie" (v8) and Ubuntu 16.04 out of the box. Debian "Stretch" (v9) does not include aufs anymore, but provides a package aufs-dkms, which auto-compiles the aufs kernel module using Dell's dkms.

Docker originally used aufs for container filesystem layers. It is still available as one of the storage backends but is deprecated in favour of the overlay2 backend which uses OverlayFS.

Several Linux distributions have chosen aufs as a replacement for UnionFS, including:
 * Knoppix live CD Linux distribution – since the end of 2006, "for better stability and performance"
 * NimbleX since version 2008. Switched simultaneously with Linux-Live
 * Porteus LiveCD, run fully in RAM
 * Slax (and Linux-Live scripts in general) since version 6
 * Xandros Linux distribution, available in the ASUS Eee PC model 901
 * Ubuntu 10.04 LTS Live CD
 * Debian 6.0 Live media
 * Gentoo Linux LiveDVD 11.0
 * Gentoo Linux LiveDVD 11.2
 * Gentoo Linux LiveDVD 12.0
 * Salix Live via Linux-Live scripts until version 13.1.1 and via SaLT from version 13.37
 * Puppy Linux versions can run fully in RAM with changes saved to disk on shutdown. For example, Slacko 5.3.3 running as a LiveCD.
 * Manjaro Linux via their patched official kernels