Red Hat Certified System Administrator(RHCSA)
Create and Configure File Systems
Configure systems to mount file systems at or during boot
In this article, you will learn how to configure Linux systems to mount file systems automatically during boot. Mounting a file system means attaching it to a directory within your existing directory hierarchy, allowing you to access and create files on it. Previously, file systems may have been created but not mounted, which prevents access to their directories and files.
Below is a step-by-step guide that demonstrates how to mount a file system manually and configure permanent mounts in the /etc/fstab file.
─────────────────────────────────────────────
1. Mounting a File System Manually
First, inspect the directory used for temporary mounts. The /mnt
directory is conventionally used for this purpose:
$ ls /mnt/
This directory should be empty initially.
Assume you want to mount an XFS file system that has already been created on the partition /dev/vdb1
. To mount it, use the following command:
$ sudo mount /dev/vdb1 /mnt/
After mounting, you can create files on the file system. For example, create a test file and list the directory contents:
$ ls /mnt/
$ sudo touch /mnt/testfile
$ ls -l /mnt/
-rw-rw-r--. 1 aaron aaron 30 Jan 31 14:30 testfile
To confirm the file system is mounted, use the lsblk
command:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 8:0 0 20G 0 disk
├─vda1 8:1 0 1G 0 part /boot
├─vda2 8:2 0 19G 0 part
├─cs-root 253:0 0 17G 0 lvm /
└─cs-swap 253:1 0 2G 0 lvm [SWAP]
Once you are finished with work on the file system, unmount it using the umount
command (note that the command is spelled without an "n"):
$ sudo umount /mnt/
You can verify that the /mnt
directory is empty again:
$ ls /mnt/
Mount Points at Boot
When Linux boots, certain file systems (like /dev/vda1
mounted on /boot
) are automatically mounted according to the instructions provided in configuration files.
For example, the following output from lsblk
shows various mount points:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 8:0 0 20G 0 disk
├─vda1 8:1 0 1G 0 part /boot
├─vda2 8:2 0 19G 0 part
│ ├─cs-root 253:0 0 17G 0 lvm /
│ └─cs-swap 253:1 0 2G 0 lvm [SWAP]
vdb 8:16 0 100G 0 disk
├─vdb1 8:17 0 4G 0 part
├─vdb2 8:18 0 4G 0 part
└─vdb3 8:19 0 2G 0 part
─────────────────────────────────────────────
2. Configuring Automatic Mounting with /etc/fstab
When booting, a Linux system mounts file systems according to the configurations specified in the /etc/fstab
file. To automatically mount our XFS file system on /dev/vdb1
, follow these steps:
Create a directory that will serve as the mount point. In this example, we create
/mybackups
:$ sudo mkdir /mybackups
Edit the
/etc/fstab
file using your preferred text editor. In this example, we use Vim:$ sudo vim /etc/fstab
The /etc/fstab
file contains six fields per line:
- Field 1: The block device file (e.g.,
/dev/vdb1
), indicating the partition or storage resource. - Field 2: The mount point (e.g.,
/mybackups
), where the file system will be attached. - Field 3: The file system type (e.g.,
xfs
). If using another file system type likeext4
, adjust this accordingly. - Field 4: Mount options (commonly set to
defaults
). - Field 5: Dump utility flag (commonly
0
since dump is rarely used). - Field 6: File system check order at boot (use
0
to disable,1
for the root partition, and2
for other partitions).
A sample line to mount the XFS file system on /dev/vdb1
to /mybackups
would be:
/dev/vdb1 /mybackups xfs defaults 0 2
For context, a typical /etc/fstab
file might look like this:
/dev/mapper/cs-root / xfs defaults 0 0
/dev/vdb1 /mybackups xfs defaults 0 2
# If you had an ext4 partition, it might look like:
#/dev/vdb2 /mybackups ext4 defaults 0 2
# After editing this file, run 'systemctl daemon-reload' to update systemd configuration.
After saving your changes, update systemd units generated from /etc/fstab
without needing to reboot immediately:
$ sudo systemctl daemon-reload
Verify that the /mybackups
directory is empty before reboot:
$ ls /mybackups/
After rebooting the system, you should find the test file in /mybackups
, confirming that the file system was automatically mounted during boot. Check with:
$ ls -l /mybackups/
-rw-rw-r-- 1 aaron aaron 30 Jan 31 14:30 testfile
You can also inspect mount points with:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 8:0 0 20G 0 disk
├─vda1 8:1 0 1G 0 part /boot
├─vda2 8:2 0 19G 0 part
├─cs-root 253:0 0 17G 0 lvm /
├─cs-swap 253:1 0 2G 0 lvm [SWAP]
vdb 8:16 0 10G 0 disk
├─vdb1 8:17 0 4G 0 part
├─vdb2 8:18 0 4G 0 part /mybackups
└─vdb3 8:19 0 2G 0 part
To reboot the system, run:
$ sudo systemctl reboot
─────────────────────────────────────────────
3. Configuring a Swap Partition to Mount Automatically
If you have created a swap partition (e.g., on /dev/vdb3
), you can enable it to activate automatically at boot. To do this, edit the /etc/fstab
file:
$ sudo vim /etc/fstab
Locate a line similar to the following, which mounts swap space for another device:
/dev/mapper/cs-swap none swap defaults 0 0
Then add or modify the line for the swap partition on /dev/vdb3
:
/dev/vdb3 none swap defaults 0 0
Note that for swap, the second field is set to "none" because it does not attach to any directory. The file system type is "swap," and the last two fields are set to 0 since swap space is not backed up or checked during boot.
After saving the file, reboot your system and verify that the swap partition is active:
$ swapon --show
Tip on Swap Filesystems
Swap partitions do not mount to a directory. Instead, they enable virtual memory to improve system performance.
─────────────────────────────────────────────
4. Using UUIDs Instead of Device Names
Instead of specifying a block device file like /dev/vda1
, you can use UUIDs (Universally Unique Identifiers). UUIDs are especially useful because device names may change if storage devices are connected in a different order.
A typical /etc/fstab
line using a UUID looks like this:
UUID=3b93b1ba-e44a-4f75-aa38-c93ed32e34e2 /boot xfs defaults 0 0
For comparison, the same mount point can be defined using the device name:
/dev/vda1 /boot xfs defaults 0 0
To check the UUID of a block device, use the blkid
command. For example, to view the UUID for /dev/vdb1
:
$ sudo blkid /dev/vdb1
/dev/vdb1: LABEL="FirstF5" UUID="9ab8cfa5-2813-4b70-ada0-7abd0ad9d289" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="569a3fcc-f9eb-9147-888d-9e3ffe9ccdb0"
─────────────────────────────────────────────
Conclusion
This guide has shown you how to mount file systems both manually and automatically using /etc/fstab
, as well as how to configure a swap partition and use UUIDs for improved device management. Now it's time to put this knowledge into practice by mounting file systems and configuring the /etc/fstab
file on your Linux system. Happy configuring!
Watch Video
Watch video content
Practice Lab
Practice lab