In this article, i will explain how to solve “failed to mount /etc/fstab” boot error in Linux. The file in question contains descriptive information concerning the filesystems the system can mount automatically at boot time.
This information is static and is read by other programs on the system such as mount, umount, dump and fsck. It has six important filesystem mount specification fields: the first field describes the block special device or remote filesystem to be mounted, the second field defines the mount point for the filesystem and the third specifies the filesystem type.
The fourth field defines the mount options associated with the filesystem, and the fifth field is read by dump tool. The last field is used by fsck tool to establish the order of filesystem-checks.
After editing the /etc/fstab to create an automount and rebooting my system; it booted into emergency mode showing the error message below.
Linux Emergency Mode
I logged in as root from the interface above, and typed the following command to look through the systemd journal; then I saw the errors shown in the screen shot (indicated using red).
As you can see, the main error (failure of etc-fstab.mount unit) lead to several other errors (systemd unit dependency issues) such as failure of local-fs.target, rhel-autorelabel-mark.service etc.
# journalctl -xb
Boot Error Messages
Causes of “failed to mount /etc/fstab” Error in Linux
The error above may result from any of the issues below, in the /etc/fstab file:
- missing /etc/fstab file
- wrong specification of filesystem mount options,
- failing mount points or
- unrecognized characters in the file.
To solve it, you can use the original file if you created a backup, otherwise comment out any changes you made using the “#” character (and also ensure that all the uncommented lines are filesystem mount lines).
So I opened the /etc/fstab using vi/vim/nano text editor to check for any errors.
# vi /etc/fstab
Linux /etc/fstab File
I realized I had typed an
“r” letter at the beginning of the file as shown in the screen shot above – this was recognized by the system as a special device which did not actually exist in the filesystem, thus resulting to the sequential errors shown above.
This took me several hours before noticing and fixing it. So I had to remove the letter, commented out the first line in the file, closed and saved it. After running a reboot, the system booted well again.
How to Avoid Such Issues in the Future
To avoid encountering such issues on your system, take note of the following:
Always create a backup of your config files before editing them. In case of any errors in your configs, you can revert to the default/working file.
# cp /etc/fstab /etc/fstab.orig
Secondly, check config files for any errors before saving them, certain applications offer utilities to check syntax of config files before running the application. Use these utilities where possible.
However, if you happen to get any system errors messages:
First look through the systemd journal using the journalctl utility to determine what exactly caused them:
# journal -xb
If you can’t resolve the errors in one way or the other, run to any of the millions of Linux forums on the web and post the issue there.