我的/etc/fstab包含以下内容:

# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 /               ext4    errors=remount-ro 0       1


该系统上还有其他几个磁盘,并且并非所有磁盘都已安装到正确的位置(例如/ dev / sda1和/ dev / sdb1有时会颠倒过来。)

如何查看系统上所有磁盘的UUID?我可以在该系统上看到第三个磁盘的UUID吗?

评论

@setzamora的答案更好。请更改接受的答案。

#1 楼

/dev/disk/by-uuid中有符号链接将每个驱动器的UUID映射到/dev中的条目(例如/dev/sda1

评论


LVM分区时不可读。

– Grzegorz Wierzowiecki
2011-09-18 21:22

LVM在其结构中已经使用了类似UUID的长标识符(尽管呈现方式有所不同)。我认为将文件系统UUID与LVM一起使用的唯一原因是作为某种自动化的统一接口,因为LVM已经为您完成了LV到人性化名称的映射。

–telcoM
18年1月28日在1:27

ls -lha / dev / disk / by-uuid

–deFreitas
18年4月10日在2:03

仅供参考,结果已更改,将与blkid不同,并且无法启动:i.imgur.com/ocgoi3g.png

–特克斯
20年7月8日在12:38



#2 楼

有一个名为blkid的工具(作为root或与sudo一起使用),

# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"


您可以检查此链接以获取更多信息

评论


只是一个小小的评论:看起来像是组磁盘成员足以运行blkid;无需完整的超级用户权限。

–arielf
2013年12月14日23:19在

如果只需要UUID(例如在脚本中进行解析),则可以执行blkid / dev / sda1 -s UUID -o值。

–杰克·奥康纳(Jack O'Connor)
16年6月20日在21:35

在这里快速评论:在我的发行版(Debian 8)中,这会产生UUID以及“ PARTUUID”,这相当令人困惑。我使用了{lsblk}命令,该命令仅给出一个值。

– takumar
16/09/12在11:57



尽管我更喜欢执行blkid / dev / sd *列出所有驱动器,但这可以节省大量时间。发出的信息通常足以找到所需的驱动器。 :)

–user235748
17年7月1日在8:04

GPT分区磁盘的PARTUUID是分区的GPT UUID,而不是分区中的文件系统。尚未创建文件系统时可能很有用。在MBR分区的磁盘上,PARTUUID不是真正的UUID,而仅仅是MBR +破折号+分区号中的Windows磁盘签名。

–telcoM
18年1月28日在1:32

#3 楼

最好使用的命令是
lsblk -f
它将列出所有设备和分区,如何安装(如果有的话)以及在使用LVM的情况下设备的树结构,crypto_LUKS,或同一驱动器上的多个卷组。

评论


这是最好的答案-最彻底,真正的一站式方法。

–罗伊斯·威廉姆斯
20 Jan 2 '20在22:03



另外:我必须在此前面加上sudo,否则它无法获取分区的UUID且该列为空。

–Mnementh
20 Jan 27'at 9:24

df --output = source MYFILE |尾-n1 | xargs lsblk -o uuid

–JellicleCat
20年8月30日在1:33

#4 楼

要仅获取特定磁盘设备的UUID(例如在脚本中使用),可以使用:

sudo blkid -s UUID -o value /dev/sdXY


其中/dev/sdXY是设备的名称。

评论


不知道为什么这不是最主要的评论。

– fideloper
20-10-18在2:10

#5 楼

这对我有用:

ls -la /dev/disk/by-uuid


如果要检查分区的类型,请使用:

df -Th


,它将显示您是否拥有ext3或ext2。今天它对我有帮助,因为有一个格式化的ext2分区,我以为是ext3,这导致安装失败。

评论


您可以随时尝试挂载-t auto / dev / sda1 / media / sda1。

– ott--
2012年12月28日在21:16

#6 楼

lsblk -o +uuid,name


您可以看到使用

lsblk --help

可以添加到-o--output)的所有输出。 br />
# blkid


评论


名称不是默认打印的吗?

–don_crissti
17年7月20日在20:50

它是。仅出于教育目的将其添加(添加逗号以分隔所需的字段)

– Nico Rodsevich
17年7月20日在22:30

#7 楼

先前的答案不适用于多个设备或具有相同UUID的设备。

请尝试以下操作:

sudo blkid /dev/sd*


评论


真的吗您是说,投票最多的答案行不通?

–don_crissti
16-09-14在8:04

通用唯一标识符(UUID)应该始终是唯一的。 UUID的全部目的是成为一个通用的唯一对象。如果没有,那就有问题了。我在克隆的VM中至少在网络设备上已经看到重复的UUID。

– Stefan Lasiewski
16 Sep 14 '17:00



如果使用dd命令克隆分区,则副本将具有相同的uuid,是的,这是一个问题。这里的其他答案不会显示出来。

–凯文
16-09-18在9:22

#8 楼

通过以下命令行,您可以看到UUID以及到分区的映射。

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


评论


为什么我们可以看到sda的uuid

–吴洪河
17年8月10日在13:10

每个分区的文件系统只有一个UUID。在sda上,我有4个分区,所以我有4个UUID。 wiki.debian.org/Part-UUID

–尼古拉斯·瓜里纳(NicolasGuérinet)
17年8月10日在15:02



#9 楼

我和你有同样的问题:
重新启动后按/dev/sd**的内核重命名:问题。
上面的所有命令(blkid或lsblk)都提供了这类信息。在当前引导的系统视图中:
,例如:
该分区用作原始设备,为VirtualBox创建虚拟磁盘
(因此对该分区的引用为类似于:/etc/fstab

将该分区用作原始设备,以为iSCSI制作LUN。 br />因此,现在在启动时(例如在rc.local中),必须以可靠的方式找到专用RAW分区的/dev/sdf3设备是什么,并修改一些文件:

示例1

VirtualBox磁盘* .vmk此原始磁盘的描述,类似以下部分:

\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0


,然后重新启动VirtualBox服务

示例2

在tgtd配置中,目标:target0在构建时已与/dev/sdc6关联。
那么如何自动查找新设备呢?
再次在/etc/rc.d/rc.local中找到

所以在这种情况下,我们需要一种可靠的方法来查找什么新的设备名称。
GPT分区为任何GPT分区提供了唯一的GUID(用GPT表编写)。

gdisk不会以列表模式提供此信息,而仅在交互模式下提供:i命令。幸运的是,blkid做到了!

因此,您需要编写一个shell脚本,以查找与分区创建时注意到的GUID关联的所有磁盘(即设备/dev/sdXX)。
类似于search_device_by_partUUID.sh:

\#!/bin/bash

PART_UUID=
if [ "$PART_UUID" = "" ]
then
    echo "Syntax: q4312078q <a valid partition UUID>"
    exit 3
fi
lsblk | grep '^sd' | awk '{print }' | 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 }'`
        echo $BLK_DEVICE > /dev/shm/blkdevice
        echo -n "BLK_DEVICE : " ; cat /dev/shm/blkdevice
    fi
done


,然后在rc.local脚本中使用/dev/sdd6

#10 楼

要查看硬盘分区的uuid,我只需使用Linux CD引导系统并转到我的计算机挂载,单击我想查看的分区。
将显示Linux分区的uuid编号。

在Linux CD引导后,您还可以通过运行Linux Disk Utility来查看磁盘uuid。

评论


什么是“我的计算机支架”?什么叫“ Linux磁盘实用程序”,听起来像gnome-disk-utility又名磁盘?

– Xen2050
18年11月30日在4:15

#11 楼

在这种情况下,您需要检查/ dev / disk / by-partuuid。有符号链接将每个驱动器的PARTUUID映射到/ dev / sdb1等中的条目