fstab: what it is and how to use it
You’ve probably heard about ‘/etc/fstab’ file, but if you don’t know how to edit this file correctly, in this tutorial you will learn all the basics.
Table of Contents
- Introduction
- File structure
- First field
- Second field
- Third field
- Fourth field
- Fifth field
- Sixth field
Introduction
The file fstab
contains information about the filesystems the system can mount. Each filesystem is described on a separate line, and each field of the line is separated by tabs or spaces.
File structure
This is an example of fstab
content:
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda5
UUID=1234e5-ba60-4cee-b0c4-e9bf918a4e8e / ext4 rw,relatime 0 1
# /dev/sda2
UUID=CE27-DB3F /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
Each filesystem line is divided in 6 fields:
First field
Describes the block device or remote filesystem to be mounted. It can be a device name (like /dev/sda1
) or, more recommended, an UUID or LABEL. Device names often change when other disks are mounted or unmounted. You can use PARTUUID or PARTLABEL (partition identifiers for GPT disks) as well, but UUID is the most used identifier. You can find the filesystem UUID with lsblk -f
or sudo blkid
.
Second field
Describes the mount point (target) for the filesystem. For swap partitions, this field should be specified as none
.
Third field
Describes the type of the filesystem: ext4
, btrfs
, nfts
, etc. For swap partitions, filesystem type is swap
.
Fourth field
Describes the mount options associated with the filesystem. It is formatted as a comma-separated list of options. Some options are these ones:
defaults
: use default options (rw,suid,dev,exec,auto,nouser,async
).auto
: can mount the filesystem whenmount -a
is given or at a boot time.noauto
: do not mount whenmount -a
is given or at a boot time.user
: allow an ordinary user to mount. Only the user who mounts the filesystem can unmount it.users
: any user can mount and unmount the filesystem.nouser
: forbid an ordinary user to mount the filesystem.group
: allow an ordinary user to mount if one of that user’s groups matches the group of the device.owner
: only the device owner can mount.rw
: mount the filesystem read-write.ro
: mount the filesystem read-only.suid
: allow set-user-ID or set-group-ID bits to take effect.dev
: interpret character or block special devices on the filesystem.nodev
: do not interpret character or block special devices.exec
: allow execution of binaries.noexec
: do not allow direct execution of any binaries on the mounted filesystem.async
: all input/output to the filesystem should be done asynchronously.sync
: all I/O to the filesystem should be done synchronously.relatime
: update inode access times relative to modify or change time.
Fifth field
This field is used by dump
to determine which filesystems need to be dumped. This usually takes a value of 0
(the default if not present).
Sixth field
This field is used by fsck
to determine the order in which filesystem checks are done at boot time. Root filesystem should be specified with a value of 1
. Other filesystem should have a value of 2
. You can also put a value of 0
that means “don’t fsck”.
If you have any suggestion, feel free to contact me via social media or email.
Latest tutorials and articles:
Featured content: