Understanding /etc/fstab file


/etc/fstab is key file for file systems in any Linux Unix system. Learn fields, formats within /etc/fstab file. Understand meaning of each field and how it can be set.

 


/etc/fstab is one of the key file in running Linux or unix system. File system mounting can be controlled using this file. This is one of the file being used at boot to validate and mount file systems on machine.  This file is human readable and can be edited with text editor like vi.

This file contains 6 parameters per row. Each row represents one file system details. They are as below :

  1. Volume
  2. Mount point
  3. File system type
  4. Options
  5. Dump
  6. Pass

Lets see one by one –

1. Volume

This is disk or logical volume which is source to be mounted on the mount point specified in second field. See below example of fstab from Linux system.

In 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 universal unique ID assigned to each disk when its formatted in system. Disk can be identified by UUID or disk name in kernel.  Since its unique number, its 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 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 kernel on root disk. devpts, sysfs are paart of such system defined file systems.

Second Last entry,  you can see disk sdb is also defined as a volume for /app entry.

Lastly NFS share is mounted on /tmp/nfs_share directory. There IP address of 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 example of fstab from HPUX system.


2. Mount point:

Its second field in an entry of fstab. This is 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 ot be supplied to mount command when mounting any file system.


3. File system type:

This is FS type to be considered while mounting the give volume on specified mount point. Different file system types has different functions and advantages to offer. You need to specify same FS type which was used at time of formatting respective volume. ext3, ext4 (Linux FS), vxfs (veritas FS), nfs (Network FS), swap (SWAP FS) are few of types.

This can be supplied to mount command with -F option.


4. Options

Those are file system options which will enhance usage experience of mount point. They also impact on performance of file system and impact in recovery in case of failures. Value ‘defaults’ in above example instructs mount command to use parameters defined inbuilt. They can be seen in man page :

All available options can be summarized as below :

These options can be supplied to mount command using -o .


5. Dump

This is old fashioned backup option in case of server goes down. If this is set to 1 then FS dump will happen when 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 facility which checks file system for its consistency. During boot if fsck is invoked then it look for this filed. 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.


 

Any thoughts?