在Linux系统中,UUID(Universally Unique Identifier,通用唯一标识符)是用于唯一标识存储设备、文件系统或分区的128位标识符,具有全局唯一性,即使设备名称变化(如/dev/sda1变为/dev/sdb1),UUID仍能保持不变,因此常用于挂载配置(如/etc/fstab)中,确保系统启动时正确识别设备,本文将详细介绍Linux系统中查看UUID的多种方法,涵盖不同场景和工具。

使用blkid命令查看UUID
blkid是Linux中最常用的查看块设备属性(包括UUID)的命令,无需安装额外工具,多数系统默认已集成,基本用法为在终端输入sudo blkid,系统会列出所有已识别块设备的UUID、文件系统类型等信息,例如输出示例:
/dev/sda1: UUID="12345678-1234-1234-1234-1234567890ab" TYPE="ext4" PARTUUID="11223344-1234-5678-90ab-cdef12345678"
/dev/sdb2: UUID="abcdef12-3456-7890-abcd-ef1234567890" TYPE="xfs" PARTUUID="22334455-6789-abcd-ef12-3456789abcde"
若需查看特定设备的UUID,可指定设备路径,如sudo blkid /dev/sda1,该命令同时支持按UUID过滤设备,如sudo blkid -U 12345678-1234-1234-1234-1234567890ab。
通过lsblk命令查看UUID
lsblk(list block devices)主要用于列出块设备及其挂载点信息,配合-f参数可显示文件系统UUID,命令格式为lsblk -f,输出会以表格形式呈现设备名称、挂载点、UUID、文件系统类型等。
NAME FSTYPE UUID MOUNTPOINT
sda
├─sda1 ext4 12345678-1234-1234-1234-1234567890ab /
└─sda2 xfs abcdef12-3456-7890-abcd-ef1234567890 /data
sdb
└─sdb1 swap 11111111-2222-3333-4444-555555555555 [SWAP]
相比blkid,lsblk的优势在于直观展示设备层级关系,适合查看多磁盘或分区的挂载情况。

使用文件系统专用工具查看UUID
针对不同文件系统,可使用专用工具直接查看UUID:
- ext4/ext3/ext2文件系统:使用
dumpe2fs命令,如sudo dumpe2fs /dev/sda1 | grep UUID,输出会显示文件系统UUID和分区表UUID(PARTUUID)。 - XFS文件系统:使用
xfs_admin命令,如sudo xfs_admin -u /dev/sdb2,直接输出UUID信息。 - swap分区:使用
blkid或swapon --show=NAME,UUID查看,如swapon --show=NAME,UUID会列出所有swap分区的UUID。
查看/dev/disk/by-uuid目录
Linux系统会在/dev/disk/by-uuid目录下自动创建指向分区的符号链接,链接名即为UUID,通过ls -l /dev/disk/by-uuid可直接查看所有UUID及其对应的设备路径,
lrwxrwxrwx 1 root root 10 10月 1 10:00 12345678-1234-1234-1234-1234567890ab -> ../../sda1
lrwxrwxrwx 1 root root 10 10月 1 10:00 abcdef12-3456-7890-abcd-ef1234567890 -> ../../sdb2
此方法无需命令,适合快速通过UUID定位设备。
使用findmnt命令查看UUID
findmnt主要用于查看文件系统挂载信息,配合-o UUID参数可过滤显示UUID,查看根分区的UUID:findmnt -n -o UUID --target /,输出结果为12345678-1234-1234-1234-1234567890ab,若需查看所有挂载点的UUID,可使用findmnt -o UUID,TARGET。

常用命令对比总结
| 命令 | 主要用途 | 示例 | 输出特点 |
|---|---|---|---|
blkid |
查看块设备属性(含UUID) | sudo blkid /dev/sda1 |
显示UUID、文件系统类型等 |
lsblk -f |
列出块设备及挂载信息 | lsblk -f |
表格形式,展示设备层级关系 |
dumpe2fs |
ext文件系统详细信息 | sudo dumpe2fs /dev/sda1 | grep UUID |
仅支持ext系列,显示详细属性 |
/dev/disk/by-uuid |
通过UUID定位设备 | ls -l /dev/disk/by-uuid |
符号链接形式,直观展示对应关系 |
findmnt |
查看挂载信息及UUID | findmnt -o UUID,TARGET |
关联挂载点与UUID |
注意事项
- 权限要求:多数命令需使用
sudo执行,普通用户可能无法直接访问设备信息。 - 文件系统兼容性:
dumpe2fs仅支持ext系列文件系统,XFS需用xfs_admin,swap分区建议用blkid。 - UUID类型区分:文件系统UUID(用于挂载)和分区表UUID(PARTUUID,用于分区标识)是不同的概念,需根据场景选择查看方式。
相关问答FAQs
Q1: 如何通过UUID挂载Linux分区?
A: 使用mount命令结合-U参数指定UUID,例如挂载UUID为12345678-1234-1234-1234-1234567890ab的ext4分区到/mnt/data,命令为sudo mount -U 12345678-1234-1234-1234-1234567890ab /mnt/data,若需永久挂载,可编辑/etc/fstab,添加类似UUID=12345678-1234-1234-1234-1234567890ab /mnt/data ext4 defaults 0 0的条目。
Q2: 为什么不同命令查到的UUID可能不同?
A: 主要有两种情况:一是查看的对象不同,如blkid显示的是文件系统UUID,而gdisk查看的是GPT分区表UUID(PARTUUID),两者是不同的标识符;二是文件系统类型不支持,例如对XFS分区使用dumpe2fs会报错,需用对应工具(如xfs_admin)才能正确读取UUID。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/33841.html