Frequently Asked Question
What is the /usr merge and why are /bin and /usr/bin the same now?
For most of Linux's history, /bin, /sbin, and /lib lived on the root partition and
held the bare minimum needed to boot to single-user mode; /usr/bin, /usr/sbin, and
/usr/lib held everything else and could live on a separate partition mounted later. This
split made sense in the 1970s when disks were tiny, Ken Thompson literally ran out of
space and moved files onto a second disk, but on modern systems with an initramfs the
root partition no longer needs to be self-sufficient, since the initramfs already mounts
/usr before the system tries to use anything from it.
The /usr merge, championed by Fedora and now standard on Arch, openSUSE, recent Debian,
and Ubuntu, replaces /bin, /sbin, /lib, and /lib64 with symlinks pointing into
/usr. The benefits are real: /usr can be mounted read-only (or shared over the network,
or snapshotted atomically), distribution packages don't have to worry about whether
/bin/grep and /usr/bin/grep are the same file, and the layout matches Solaris and the
systemd ecosystem's assumptions. Existing scripts using either path keep working because
the symlinks resolve transparently.