Filesystem Hierarchy Standard
This section describes the root directory structure. The contents of the root
filesystem should be adequate to boot, restore, recover, and/or repair the system:
- To boot a system, enough must be present on the root partition to mount
other filesystems. This includes utilities, configuration, boot loader information,
and other essential start-up data. /usr, /opt, and /var
are designed such that they may be located on other filesystems.
- To enable recovery and/or repair of a system, those utilities needed by
an experienced maintainer to diagnose and reconstruct a damaged system should
be present on the root filesystem.
- To restore a system, those utilities needed to restore from system backups
(on floppy, tape, etc.) should be present on the root filesystem.
The primary concern used to balance these considerations, which favor placing
many things on the root filesystem, is the goal of keeping root as small as reasonably
possible. For several reasons, it is desirable to keep the root filesystem small:
- It is occasionally mounted from very small media.
- The root filesystem has many system-specific configuration files in it.
Possible examples include a kernel that is specific to the system, a different
hostname, etc. This means that the root filesystem isn't always shareable between
networked systems. Keeping it small on networked systems minimizes the amount
of space lost on servers to unshareable files. It also allows workstations with
smaller local hard drives.
- While you may have the root filesystem on a large partition, and may be
able to fill it to your heart's content, there will be people with smaller partitions.
If you have more files installed, you may find incompatibilities with other
systems using root filesystems on smaller partitions. If you are a developer
then you may be turning your assumption into a problem for a large number of
users.
- Disk errors that corrupt data on the root filesystem are a greater problem
than errors on any other partition. A small root filesystem is less prone to
corruption as the result of a system crash.
Software should never create or require special files or subdirectories in the
root directory. Other locations in the FHS hierarchy provide more than enough flexibility
for any package.
BEGIN RATIONALE
There are several reasons why introducing a new subdirectory of the root filesystem
is prohibited:
- It demands space on a root partition which the system administrator may
want kept small and simple for either performance or security reasons.
- It evades whatever discipline the system administrator may have set up for
distributing standard file hierarchies across mountable volumes.
END RATIONALE
/
bin
boot
dev
etc
home
lib
mnt
opt
root
sbin
tmp
usr
var
|
the root directory
Essential command binaries
Static files of the boot loader
Device files
Host-specific system configuration
User home directories
Essential shared libraries and kernel modules
Mount point of temporary partitions
Add-on application software packages
Home directory for the root user
Essential system binaries
Temporary files
Secondary hierarchy
Variable data
|
Tree 3.1
Each directory listed above is specified in detail in separate subsections below.
/usr and /var each have a complete section in this document due
to the complexity of those directories.
The operating system kernel image should be located in either / or
/boot. Additional information on kernel placement can be found in the section
regarding /boot, below.
Previous: The Filesystem
Next: /bin : Essential user command binaries (for
use by all users)
Up: Table of Contents
Translated by
troff2html
1.5 on 16 November 1997 by quinlan