Objective: Map a UUID (universally unique identifier ) to a device and vice versa on Linux.
A UUID is a practically unique (rather than guaranteed unique) 16-octet (or 128-bit) value. On Linux, the UUID may be used by mount
, fsck
, tune2fs
, /etc/fstab
(and possibly others) by specifying UUID=uuid instead of a block special device name like /dev/sda1
.
There are a few methods to determine the UUID used for a disk or partition. The first is to list the files in /dev/disk/by-uuid/
directory.
1 2 3 4 5 |
$ ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx 1 root root 10 Feb 21 02:45 247e0716-b646-4d49-a8d4-124b412b988d -> ../../dm-0 lrwxrwxrwx 1 root root 10 Feb 21 02:45 4bd882ad-ac4c-49ef-806c-285695c09381 -> ../../sda1 lrwxrwxrwx 1 root root 10 Feb 21 02:45 af39e348-b1a5-4653-880a-b8bf5b13f552 -> ../../dm-2 |
But, by using the above method, I could not find the UUID of volumes that are managed by LVM (logical volume manager).
The next method is to use the tune2fs
for disks on ext2/ext3/ext4 filesystem. To get the UUID of /dev/sda1
, use the following syntax.
1 2 |
# tune2fs -l /dev/sda1 | grep UUID Filesystem UUID: 4bd882ad-ac4c-49ef-806c-285695c09381 |
The third method is to use the blkid
command can also be used to get the UUID of a disk or partition. To get the UUID of a specific device, use the following syntax.
1 2 |
$ blkid /dev/sda1 /dev/sda1: UUID="4bd882ad-ac4c-49ef-806c-285695c09381" TYPE="ext4" |
If you have the UUID and want to map it to a device, run blkid
using the following syntax.
1 2 |
$ blkid -t UUID=4bd882ad-ac4c-49ef-806c-285695c09381 /dev/sda1: UUID="4bd882ad-ac4c-49ef-806c-285695c09381" TYPE="ext4" |
To probe all known filesystems and devices, run blkid
without any arguments and filter by UUID. Use “blkid -k” to print the supported list of filesystems.
1 2 3 4 5 6 7 |
$ blkid | grep UUID /dev/sda1: UUID="4bd882ad-ac4c-49ef-806c-285695c09381" TYPE="ext4" /dev/sda5: UUID="Ji1Dl0-fg7N-IvxH-uUEe-e9SD-qKF4-q6F1BJ" TYPE="LVM2_member" /dev/sdc1: UUID="jnAj32-QHfF-SY2Q-Mnc2-k0xe-1Iiz-0Kdrhw" TYPE="LVM2_member" /dev/sdb1: UUID="gCinnI-YQsM-CC38-ggMf-9dWP-ye0H-KzuwwS" TYPE="LVM2_member" /dev/mapper/vg03-home: UUID="247e0716-b646-4d49-a8d4-124b412b988d" TYPE="ext4" /dev/mapper/vg01-root: UUID="af39e348-b1a5-4653-880a-b8bf5b13f552" TYPE="ext4" |
You can see from the above output that blkid
also handle devices that are part of LVM.