linux: How can I view all UUIDs for all available disks on my system?
My /etc/fstab
contains this:
# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 / ext4 errors=remount-ro 0 1
There are several other disks on this system, and not all disks are being mounted to the correct location (For example, /dev/sda1 and /dev/sdb1 are sometimes reversed).
How can I see the UUIDs for all disks on my system? Can I see the UUID for the third disk on this system?
There’s a tool called blkid
(use it as root or with sudo
),
# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"
you can check this link for more info
In /dev/disk/by-uuid
there are symlinks mapping each drive’s UUID to its entry in /dev
(e.g. /dev/sda1
)
You can view these with the command ls -lha /dev/disk/by-uuid
This works for me:
ls -la /dev/disk/by-uuid
If you want to check what type the partition is, use:
df -Th
and it will show you if you have ext3 or ext2. Today it helped me because there was a formatted ext2 partition and I thought it was ext3, which was causing the mount to fail.
To see the uuid of a hard disk partition I just boot the system up with a Linux CD and goto my computer mount, click on, the partition I want to see.
The uuid number of the Linux partition will be displayed.
You can also see disk uuid by running Linux Disk utility after the Linux CD boot up.
With the following command line you can see UUID plus the mapping to partitions.
ls /dev/disk/by-uuid -lt
lrwxrwxrwx 1 root root 10 Sep 1 18:51 57eacf4e-1940-436e-b945-85f8d4833aa5 -> ../../sda2
lrwxrwxrwx 1 root root 10 Sep 1 18:51 656f4cae-8527-43a0-a80f-00ac82818744 -> ../../sda1
lrwxrwxrwx 1 root root 9 Sep 1 18:51 d627595d-4060-440e-8380-a1fe9f3f2a81 -> ../../md0
lrwxrwxrwx 1 root root 10 Sep 1 18:51 0dfd6dfe-1852-460d-852c-676a5b9035ed -> ../../sda4
lrwxrwxrwx 1 root root 10 Sep 1 18:51 b1ddf850-8f81-429f-a653-38ae4a4ebb6f -> ../../sda3
lrwxrwxrwx 1 root root 9 Sep 1 18:51 b4b729f7-5699-411c-8f5a-424bbc7c89fc -> ../../sdb
The previous answers do not work for multiple devices or for devices with identical UUIDs.
Try this:
sudo blkid /dev/sd*
The best command to use is
lsblk -f
.
It will list all the devices and partitions, how they are mounted (if at all) and the tree structure of the devices in the case of using LVM, crypto_LUKS, or multiple volume groups on the same drive.
To only get the UUID
of a specific disk device (for example to be used in a script) you can use:
sudo blkid -s UUID -o value /dev/sdXY
where /dev/sdXY
is the name of the device.
lsblk -o +uuid,name
You can see all the outputs that can be added to the -o
(--output
) with
lsblk --help
Also this will do the job
# blkid
I have the same problem as you:
renaming by kernel of /dev/sd**
after a reboot:
Of course all my automatic mounting in /etc/fstab
are referenced by LABEL or by UUID, so basically there is no problem for that.
And all the commands above ,blkid or lsblk, give this kind of information.
But the trouble begins as in my case, when you are using partition in RAW mode, in the currently booted system point-of-view:
for example either:
the partition is used as raw device, to make a virtual disk for VirtualBox
(so the reference to this partition is something like: /dev/sdf3
)
or
the partition is used as raw device, to make a LUN for iSCSI
(so the reference to this partition is something like: /dev/sdc6
)
So now at boot , for example in rc.local, you have to find in a reliable manner, what is the /dev/sdXX
device of your dedicated RAW partition, and adapt some file:
EXAMPLE 1
The VirtualBox disk *.vmk description of this raw disk, in the part something like:
# Extent description
RW 488397167 FLAT "/dev/sdXX" 0
and then restart the VirtualBox service
EXAMPLE 2
in tgtd configuration, a target :target0 was associated to /dev/sdd6
at build time.
After reboot you get the same partition renamed /deb/sdc6
This happens with a removable disk, USB or eSATA!
So how to find the new device automatically ?
Again in /etc/rc.d/rc.local
So in this case we need a reliable manner to find what is the new device name.
GPT partition offers unique GUID for any GPT partition, written in GPT table.
gdisk does not provide this info with listing mode, but only in interactive mode with: i command. Fortunately, blkid does it!
So you need to write a shell script, to look in all your disks, which is the device /dev/sdXX
, associated to the GUID noticed at partition creation time.
Something like, search_device_by_partUUID.sh:
#!/bin/bash
PART_UUID=$1
if [ "$PART_UUID" = "" ]
then
echo "Syntax: $0 <a valid partition UUID>"
exit 3
fi
lsblk | grep '^sd' | awk '{print $1}' | while read DISK_DEVICE
do
INFO=`blkid /dev/${DISK_DEVICE}* | grep "PARTUUID="$PART_UUID"" `
if [ "$INFO" != "" ]
then
echo INFO : "$INFO"
BLK_DEVICE=`echo "$INFO" | awk '{print $1}'`
echo $BLK_DEVICE > /dev/shm/blkdevice
echo -n "BLK_DEVICE : " ; cat /dev/shm/blkdevice
fi
done
and then use /dev/shm/blkdevice
, in your rc.local script.
You need to check /dev/disk/by-partuuid in these cases. there are symlinks mapping each drive’s PARTUUID to its entry in /dev/sdb1 etc
https://serverfault.com/a/1116758/969454
sudo grep swap /etc/fstab
## Output like:
# swap was on /dev/sda6 during installation
# UUID=34e3f31b-16ec-4c84-8f4d-339f38d04a3b none swap sw 0 0
sudo lsblk -f -l| grep SWAP
## Output like:
sda6 swap 34e3f31b-16ec-4c84-8f4d-339f38d04a3b [SWAP]