Understanding the filesystem UUID (Universally Unique Identifier) is a vital job of a Linux administrator. Every day, tons of files are generated inside a Linux server. Some files are static; some are dynamic. Some files are temporary, and some are permanent.
Unix scripting and server maintenance also require the skill of well understanding the Linux filesystem. As a Linux admin, to connect the files with a server or database and perform top-level troubleshooting, it is important to identify the filesystem UUID of your Linux system.
An engineer, Theodore Yue Tak Ts’o, created a library named libuuid
to identify all the Linux filesystems uniquely. Hence, this library file is now used in the UUID (Universally Unique Identifier) system.
The UUID is a 128-bit number system that can label each file with a unique random number so that an administrator can recognize his system files by name. In this post, we will discuss the process of identifying the UUID of the Linux filesystem.
Universally Unique Identifier(UUID)
The filesystem table (fstab) is the location where all the mounting properties are logged inside the etc
directory of Linux root
. We can see the fstab
table using the cat command in the terminal. In the output, we will find the UUID of our fstab file.
The UUID is assigned in a 32 hexadecimal system, divided into five parts, and separated by hyphens. The form of a UUID is like 8-4-4-4-12. Here, for example, I’m showing the UUID of my fstab from the terminal using cat
command.
$ cat /etc/fstab
Here, you can see my fstab
UUID is assigned as:
6661a91e-9ec4-4ce0-a969-242019ecc174
Here, the 32 characters have actually turned into 36 characters with 4 hyphens. If we look closely at the formation of UUID, we can see the structure is like this:
AAAAAAAA-BBBB-CCCC-DDDD-FFFFFFFFFFFF
The formation of UUID contains a timestamp variation, the encoded MAC address, and some randomly generated numbers.
1. Identifying FileSystem UUID in Linux By tune2fs
Command
Tune2fs is a command in Linux that can be used to adjust the framework of tunable files. You may know that in Windows, files are mostly created in NTFS or Fat32, but in Linux, files are generated in ext2, ext3, or ext4 filesystems. If you need to change the variables or parameters of those files, you can use the tune2fs
command.
The tune2fs
is a powerful command that can also determine the current file settings of your Linux filesystem. If you want to see the details usage of tune2fs
, just simply type tune2fs
in the Terminal, it will show the lists that can be done by tune2fs
.
Let, we want to see the filesystem UUID properties of my dev/sda1
location. For that, we need to type the following command in the terminal using the tune2fs
command. If you find any error like permission denied while trying to open /dev/sda1, you can try the second command which includes sudo
(superuser do).
$ tune2fs -l /dev/sda1 $ sudo tune2fs -l /dev/sda1
2. Identifying FileSystem UUID By blkid
Command
For determining the block device attributes of the Linux filesystem, we can use the block identification(blkid)
command in the terminal. The blkid
command can identify the UUID
and detailed information on the Linux filesystem.
Let, we want to find the UUID of the /dev/sda1
location. To do so, we need to type the following command into the terminal. In the output, we will find the UUID, partition ID, and the type of the driver.
$ blkid /dev/sda1 /dev/sda1: UUID="3e7268c4-2b78-42eb-950c-b38d1451771d" TYPE="ext4" PARTUUID="eaef9435-01"
3. Identifying FileSystem UUID in Linux By lsblk
Command
Blockwise List information, lsblk
command is used to see the detailed information and the UUID of the filesystem in Linux. The lsblk
command can show the name, device type, major-minor device numbers, removable device, mount point, size of the device, etc.
$ sudo lsblk
4. Determining Disk Partition UUID in Linux By udevadm
Command
Userspace device manager administrator or, in short, udevadm
is a command used in Linux to identify the runtime and kernel events of a file. Runtime contents are associated with the processes undergoing inside the device. Usually, these files are temporary. The udevadm
command can gather file info from the database, trigger any action under administrative user, control the udev
daemon, monitor the Kernel and test an event.
Let, we want to check the removable file status on the terminal using udevadm
, we can type the following command in the terminal.
$ udevadm monitor
The monitor will print the received events for:
UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent
After this stage, if we insert any removable device, it will print the disk status in the terminal. The output will be like the picture provided below.
We can also use trigger action under udevadm
command. Here is an example.
$ udevadm trigger --verbose --dry-run --type=devices --subsystem-match=scsi_disk /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0/host3/target3:0:0/3:0:0:0/scsi_disk/3:0:0:0 /sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0
5. Identifying Disk Partition UUID By dumpe2fs
Command
The dumpe2fs
command is used to identify the blocksize, superblock information of a file system. If you lose your superblock on a filesystem, you lose the access to that filesystem. The dumpe2fs
command can determine where the file is mounted, the UUID of the filesystem, filesystem magic number, filesystem flags, error behavior, Filesystem OS type, free blocks, Flex block group size, and many more things.
Let’s see if we want to run the dumpe2fs
command on the location of sda1
in our Linux filesystem, all we need is to type the following command in the terminal.
$ sudo dumpe2fs /dev/sda1
You can also check the dumpe2fs
version of your Linux machine.
$ sudo dumpe2fs -V [sudo] password for jahid: dumpe2fs 1.44.1 (24-Mar-2018) Using EXT2FS Library version 1.44.1 jahid@jahidHP:~$
6. Identifying FileSystem UUID in Linux By hwinfo
Command
Hardware information, or in short, the hwinfo
command is a very professional command to identify the filesystem UUID of Linux. It is used to monitor the system’s condition and health. This command can extract information from hardware. It can gather information from hard disks, monitors, keyboards, mice, network cards, etc.
The hwinfo
command is useful to determine the file version, write to the log file, get the partition information, network card Information, CPU information, information of system hardware, etc. You can install hwinfo
inside your Linux machine using the following commands.
- For Ubuntu:
$ sudo apt-get install hwinfo $ sudo apt install hwinfo
- For Arch Linux:
$ sudo pacman -S hwinfo
- For RHEL/CentOS:
$ sudo yum install hwinfo
- For openSUSE Leap:
$ sudo zypper install hwinfo
Now, after the installation of hwinfo
is done, you can run the following commands in your terminal to identify the hardware information.
$ sudo hwinfo $ sudo hwinfo --all $ sudo hwinfo --short $ sudo hwinfo --block --short $ sudo hwinfo --cpu $ sudo hwinfo --network $ sudo hwinfo --netcard $ sudo hwinfo --disk $ sudo hwinfo --partition $ sudo hwinfo --usb $ sudo hwinfo --memory $ sudo hwinfo --pci $ sudo hwinfo --log hwinfo.txt
7. Identifying FileSystem UUID By uuid
Command
By using the Universally Unique Identifier (UUID) command in your Linux filesystem, you can determine the file name, file version, file count numbers, file format, and the unique ID number of the file.
If your Linux system doesn’t have the UUID installed, you can try the following terminal command to install the UUID.
$ sudo apt install uuid
To get the UUID information of your filesystem, run this command in your terminal.
$ ls -lh /dev/disk/by-uuid/
Final Thoughts
Linux maintains a hierarchy of file systems. In the entire post, I have been trying to introduce you to the methods of how to identify filesystem UUID in Linux and how to get into the flow of the filesystem.
We have discussed what UUID is and how we can identify the UUID of filesystems in several methods. Some terminal commands are mentioned above in the post to determine file status and runtime. Some commands and methods are about how to identify the hardware types.
I’ve tried to come up with the methods that I used to run in order to check the filesystem in Linux. It is possible that I might forget to mention some points. It would be very much appreciated if you could write what I’ve missed in the comment box.
You can also write your comments about this post. And don’t forget to share this post on social media so that your Linux geek friends can go through this post.
good but intro and ending is too long. I needed to scroll through them altogether