/etc/fstab is a key file for file systems in any Linux Unix system. Learn fields, formats within /etc/fstab file. Understand the meaning of each field and how it can be set.
/etc/fstab
is one of the key files in running a Linux or UNIX system. File system mounting can be controlled using this file. This is one of the files being used at boot to validate and mount file systems on the machine. This file is human-readable and can be edited with a text editor like vi
.
This file contains 6 parameters per row. Each row represents one file system details. They are as below :
- Volume
- Mount point
- File system type
- Options
- Dump
- Pass
Let’s see one by one –
1. Volume
This is a disk or logical volume which is the source to be mounted on the mount point specified in the second field. See the below example of fstab from the Linux system.
# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Thu Dec 5 15:47:52 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_00-lv_root / ext4 defaults 1 1
UUID=f2918ad9-f5ce-485d-81ae-e874f57f6f57 /boot ext4 defaults 1 2
/dev/mapper/vg_00-lv_home /home ext4 defaults 1 2
/dev/mapper/vg_00-lv_tmp /tmp ext4 defaults 1 2
/dev/mapper/vg_00-lv_usr /usr ext4 defaults 1 2
/dev/mapper/vg_00-lv_var /var ext4 defaults 1 2
/dev/mapper/vg_00-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb /app ext3 defaults 1 2
10.10.2.3:/my_share /tmp/nfs_share nfs defaults 0 0
In the above example, you can see volume is specified by UUID or logical volume name or disk name or IP:/directory.
/boot
entry is specified by UUID. UUID is a universally unique ID assigned to each disk when it’s formatted in the system. The disk can be identified by UUID or disk name in the kernel. Since its unique number, it’s ideal to use UUID in fstab for important file systems!
/var
, /tmp
, etc entries are defined using volume as a logical volume name. They are logical volumes part of the volume group vg00
. See LVM legends to get familiarize with naming conventions.
/dev/shm
is defined by tmpfs volume. Its a temporary file system volume created and identified by the kernel on the root disk. devpts
, sysfs
are part of such system-defined file systems.
Second Last entry, you can see disk sdb
is also defined as a volume for /app
entry.
Lastly, the NFS share is mounted on /tmp/nfs_share
directory. There IP address of the NFS server and its exported share volume name combination is defined as a volume.
This is the first argument to be supplied in mount
command while mounting any filesystem.
Normally HPUX uses LVM as a partition manager hence only logical volumes are found as a volume entry in fstab. See below the example of fstab from the HPUX system.
$ cat /etc/fstab
# System /etc/fstab file. Static information about the file systems
# See fstab(4) and sam(1M) for further details on configuring devices.
/dev/vg00/lvol3 / vxfs delaylog 0 1
/dev/vg00/lvol1 /stand vxfs tranflush 0 1
/dev/vg00/lvol4 /home vxfs delaylog 0 2
/dev/vg00/lvol5 /opt vxfs delaylog 0 2
/dev/vg00/lvol6 /tmp vxfs delaylog 0 2
/dev/vg00/lvol7 /usr vxfs delaylog 0 2
/dev/vg00/lvol8 /var vxfs delaylog 0 2
/dev/vg00/lvol10 /var/adm/sw vxfs delaylog 0 2
/dev/vg00/lvol11 /admin vxfs delaylog 0 2
10.10.2.3:/my_share /tmp/nfs_share nfs defaults 0 0
2. Mount point
Its second field in an entry of fstab. This is the name of the directory on which volume should be mounted. It should always be an absolute path (i.e. starts with/and has all directory hierarchy till last expected directory) in this field.
Directories like /var
, /boot
, /tmp
, /stand
, /usr
, /home
, /proc
, /sys
are (and should be) reserved for system mount points. In HPUX even logical volume numbers of root VG are reserved for system mount points like lvol1 should always be /stand
. 2 for swap, 3 for root, etc.
This is the second argument to be supplied to mount
command when mounting any file system.
3. File system type
This is FS type to be considered while mounting the given volume on the specified mount point. Different file system types have different functions and advantages to offer. You need to specify the same FS type which was used at the time of formatting respective volume. ext3, ext4 (Linux FS), vxfs (veritas FS), NFS (Network FS), swap (SWAP FS) are a few types.
This can be supplied to mount
command with -F
option.
4. Options
Those are file system options that will enhance the user experience of the mount point. They also impact on the performance of the file system and impact in recovery in case of failures. Value defaults
in the above example instructs mount
command to use parameters defined inbuilt. They can be seen in the man page :
defaults
Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.
All available options can be summarized as below :
| |
sync | All I/O to the filesystem should be done synchronously. |
async | All I/O to the filesystem should be done asynchronously. |
atime | inode access time is controlled by kernel defaults. |
noatime | Do not update inode access times on this filesystem |
auto | Mount it when -a used (mount -a) |
noauto | Dont ‘auto’ |
dev | Interpret character or block special devices on the filesystem |
nodev | Dont ‘dev’ |
diratime | Update directory inode access times on this filesystem. |
nodiratime | Dont ‘diratime’ |
dirsync | All directory updates within the filesystem should be done synchronously. |
exec | Permit execution of binaries |
noexec | Dont ‘exec’ |
group | Allow normal group users to mount |
mand | Allow mandatory locks on this filesystem. |
relatime | Update inode access times relative to modify or change time. |
norealtime | Dont ‘realtime’ |
delaylog | Affect how vxfs maintains journals which impacts performance and ability to recover the file system |
nomand | Dont ‘mand’ |
suid | Allow set-user-identifier or set-group-identifier bits to take effect. |
nosuid | Dont ‘suid’ |
remount | Attempt to remount an already-mounted filesystem. |
rw | Read write mode |
ro | Read only mode |
owner | Allow non-root user to mount if he is owner of device |
user | Allow an ordinary user to mount the filesystem. |
nouser | Dont ‘user’ |
largefiles | Allow file size more than 2TB |
transflush | Performance related |
These options can be supplied to mount command using -o
.
5. Dump
This is an old fashioned backup option in case the server goes down. If this is set to 1 then FS dump will happen when the system goes down due to some issue. Setting this 0 will nullify this option.
6. Pass
This tells kernel about file system check priority or sequence. fsck
is a facility that checks the file system for its consistency. During boot, if fsck
is invoked then it looks for this file. If set to 0, fsck
will be skipped for that mount point. If set to 1 then that mount points will be first in sequence to be fscked.