File systems and UUIDs have a special relationship on Linux systems. What are these very long identifiers and how can you view the connections between them and disk partitions? Credit: Nathan Van de Graaf / Thinkstock / Linux The /etc/fstab file is a very important file on Linux systems. It contains information that allows the system to connect to disk partitions and determine where they should be mounted in the file system. While this file has played an important role over the years, its format has changed with the introduction of UUIDs and, on some systems, a more reliable file-system type. Here’s an example of an /etc/fstab file on a Fedora system: $ cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Mar 12 12:26:55 2021 # # 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. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=a9e33237-9114-44ae-afd5-8ddb231d301f / btrfs subvol=root 0 0 UUID=15f42905-5897-4804-9c51-e6d5e169e6c2 /boot ext4 defaults 1 2 #UUID=a9e33237-9114-44ae-afd5-8ddb231d301f /home btrfs subvol=home 0 0 UUID=d867ced1-8d81-47c6-b299-3365ba8a02de /home ext4 defaults Each line in the file (other than the comments) represents a file system and has six fields. describes the disk partition (more on the UUIDs below) identifies the mount point shows the file system type (could be ext4, xfs, btrfs, f2fs, vfat, ntfs, hfsplus, tmpfs, sysfs, proc, iso9660, udf, squashfs, nfs, cifs or something else) provides mount options determines if the file system might be dumped (0 = not) using the dump command (not often used) determines if file-system checking should be done at boot time (0 = not) The btrfs file system is a modern copy-on-write (CoW) filesystem for Linux that provides advanced features while also focusing on fault tolerance, repair and easy administration. The /etc/fstab file shown above is unusual in that a new OS was just recently installed on /dev/sda and the /home folder from the system before the upgrade (on a separate disk) was then remounted after the first reference to /home was commented out. What are UUIDs? Those lengthy device identifiers that you see in /etc/fstab that are labeled UUID (universally unique identifier) are 128 bit (32 hex characters) long and arranged in an 8-4-4-4-12 character sequence. One way to view how the UUIDs connect with the device names (e.g., /dev/sda1) is to use the blkid command. $ sudo blkid /dev/sda1: UUID="15f42905-5897-4804-9c51-e6d5e169e6c2" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="01a5b4ea-01" /dev/sda2: LABEL="fedora_localhost-live" UUID="a9e33237-9114-44ae-afd5-8ddb231d301f" UUID_SUB="25ba7101-46bd-4eb8-87d4-91b404f93a4c" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="01a5b4ea-02" /dev/sdb1: UUID="d867ced1-8d81-47c6-b299-3365ba8a02de" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="drive2" PARTUUID="5cf63888-8b4a-4d13-8453-4eb3a87c3e09" /dev/zram0: UUID="3b156a62-8b04-4725-b5ea-f0d817ff4109" TYPE="swap" /dev/sdc1: UUID="76E8-CACF" BLOCK_SIZE="512" TYPE="exfat" PARTUUID="fa2cb833-01" You can also check out the by-uuid file to view the relationships: $ ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx. 1 root root 10 Mar 12 13:46 15f42905-5897-4804-9c51-e6d5e169e6c2 -> ../../sda1 lrwxrwxrwx. 1 root root 10 Mar 14 11:52 76E8-CACF -> ../../sdc1 lrwxrwxrwx. 1 root root 10 Mar 12 13:46 a9e33237-9114-44ae-afd5-8ddb231d301f -> ../../sda2 lrwxrwxrwx. 1 root root 10 Mar 12 13:46 d867ced1-8d81-47c6-b299-3365ba8a02de -> ../../sdb1 The 76E8-CACF device mounted as /dev/sdc1 is a USB drive that is temporarily in use. You can get a feel for how Linux generates UUIDs by running uuidgen yourself. Check if it’s on your system by typing “which uuidgen”. These identifiers are for all practical purposes unique. When you enter the uuidgen command, you will get any of more than 3.40 × 1038 possible responses. $ uuidgen 8e487c4e-6ec6-4c27-95c4-11ed8c3a9bbf $ uuidgen 57f5c0e1-fb6c-43cb-a909-89fcd682939c Using lsblk Another convenient way to view file systems is with the lsblk command that provides a clear view of how file systems are related along with mount points, device sizes and major/minor device numbers. This command makes the partitions on each drive easy to visualize. $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111.8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 110.8G 0 part / sdb 8:16 0 465.8G 0 disk └─sdb1 8:17 0 434G 0 part /home sdc 8:32 1 1.9T 0 disk └─sdc1 8:33 1 1.9T 0 part /run/media/shs/76E8-CACF sr0 11:0 1 1024M 0 rom zram0 252:0 0 2.9G 0 disk [SWAP] Wrap-Up Linux systems provide a number of ways to view file systems. A few commands can help you understand the /etc/fstab file and the connections between disk partitions, file systems and UUIDs. Related content how-to How to find files on Linux There are many options you can use to find files on Linux, including searching by file name (or partial name), age, owner, group, size, type and inode number. By Sandra Henry Stocker Jun 24, 2024 8 mins Linux opinion Linux in your car: Red Hat’s milestone collaboration with exida With contributions from Red Hat and critical collaborators, the safety and security of automotive vehicles has reached a new level of reliability. By Sandra Henry Stocker Jun 17, 2024 5 mins Linux how-to How to print from the Linux command line: double-sided, landscape and more There's a lot more to printing from the Linux command line than the lp command. Check out some of the many available options. By Sandra Henry Stocker Jun 11, 2024 6 mins Linux how-to Converting between uppercase and lowercase on the Linux command line Converting text between uppercase and lowercase can be very tedious, especially when you want to avoid inadvertent misspellings. Fortunately, Linux provides a handful of commands that can make the job very easy. By Sandra Henry Stocker Jun 07, 2024 5 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe