fstab — static information about the filesystems
#include <fstab.h>
The file fstab
contains descriptive information about the various file
systems. fstab
is
only read by programs, and not written; it is the duty of the
system administrator to properly create and maintain this
file. Each filesystem is described on a separate line; fields
on each line are separated by tabs or spaces. Lines starting
with '#' are comments. The order of records in fstab
is important because
fsck(8), mount(8), and umount(8) sequentially
iterate through fstab
doing their thing.
The first field, (fs_spec
), describes the block
special device or remote filesystem to be mounted.
For ordinary mounts it will hold (a link to) a block special device node (as created by mknod(8)) for the device to be mounted, like `/dev/cdrom' or `/dev/sdb7'. For NFS mounts one will have <host>:<dir>, e.g., `knuth.aeb.nl:/'. For procfs, use `proc'.
Instead of giving the device explicitly, one may indicate the (ext2 or xfs) filesystem that is to be mounted by its UUID or volume label (cf. e2label(8) or xfs_admin(8)), writing LABEL=<label> or UUID=<uuid>, e.g., `LABEL=Boot' or `UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'. This will make the system more robust: adding or removing a SCSI disk changes the disk device name but not the filesystem volume label.
The second field, (fs_file
), describes the mount
point for the filesystem. For swap partitions, this field
should be specified as `none'. If the name of the mount point
contains spaces these can be escaped as `\040'.
The third field, (fs_vfstype
), describes the
type of the filesystem. Linux supports lots of filesystem
types, such as adfs
, affs
, autofs
, coda
, coherent
, cramfs
, devpts
, efs
, ext2
, ext3
, hfs
, hpfs
, iso9660
, jfs
, minix
, msdos
, ncpfs
, nfs
, ntfs
, proc
, qnx4
, reiserfs
, romfs
, smbfs
, sysv
, tmpfs
, udf
, ufs
, umsdos
, vfat
, xenix
, xfs
, and possibly others. For
more details, see mount(8). For the
filesystems currently supported by the running kernel, see
/proc/filesystems
. An entry
swap
denotes a file
or partition to be used for swapping, cf. swapon(8). An entry
ignore
causes the
line to be ignored. This is useful to show disk partitions
which are currently unused.
The fourth field, (fs_mntops
), describes the
mount options associated with the filesystem.
It is formatted as a comma separated list of options. It contains at least the type of mount plus any additional options appropriate to the filesystem type. For documentation on the available options for non-nfs file systems, see mount(8). For documentation on all nfs-specific options have a look at nfs(5). Common for all types of file system are the options ``noauto'' (do not mount when "mount -a" is given, e.g., at boot time), ``user'' (allow a user to mount), and ``owner'' (allow device owner to mount), and ``comment'' (e.g., for use by fstab-maintaining programs). The ``owner'' and ``comment'' options are Linux-specific. For more details, see mount(8).
The fifth field, (fs_freq
), is used for these
filesystems by the dump(8) command to determine
which filesystems need to be dumped. If the fifth field is
not present, a value of zero is returned and dump
will assume that the
filesystem does not need to be dumped.
The sixth field, (fs_passno
), is used by the
fsck(8) program to determine
the order in which filesystem checks are done at reboot time.
The root filesystem should be specified with a fs_passno
of 1, and other
filesystems should have a fs_passno
of 2. Filesystems
within a drive will be checked sequentially, but filesystems
on different drives will be checked at the same time to
utilize parallelism available in the hardware. If the sixth
field is not present or zero, a value of zero is returned and
fsck
will assume
that the filesystem does not need to be checked.
The proper way to read records from fstab
is to use the routines
getmntent(3).