如何在Linux中查看磁盘UUID Linux获取分区唯一标识符的方法

2026-06-03电脑数码161517

最可靠方式是用 blkid 命令直接读取文件系统元数据,无需挂载且多数情况无需 root 权限;可查所有设备或指定分区,支持脚本解析;/dev/disk/by-uuid/ 用于反查设备名;挂载后可用 findmnt;修改 UUID 需按文件系统类型操作并更新 fstab。

Linux 中查看磁盘 UUID 最可靠、最常用的方式是使用 blkid 命令 —— 它直接读取文件系统元数据,不依赖挂载状态,也不需要 root 权限(但部分设备可能因权限限制显示为空)。

blkid 查看所有块设备的 UUID

这是最推荐的起点。它能列出所有已识别块设备(包括未挂载分区)的 UUIDFSTYPELABEL 等信息:

blkid

常见现象:普通用户运行时,某些 LVM 或加密设备可能显示 Permission denied;加 sudo 可绕过(但多数常规分区无需)。

  • 输出中每行对应一个设备,形如:/dev/sda1: UUID="a1b2c3d4-..." TYPE="ext4" LABEL="boot"
  • 只查某一分区:例如 blkid /dev/nvme0n1p2,响应快、无冗余
  • 若需机器可解析输出(如脚本),加 -o value-s UUID:例如 blkid -s UUID -o value /dev/sdb1 输出纯 UUID 字符串,无引号无空格

/dev/disk/by-uuid/ 目录反查设备名

该目录是内核通过 udev 自动创建的符号链接集合,本质是 UUID 到设备路径的映射。适合“已知 UUID,想确认它属于哪个设备”:

ls -l /dev/disk/by-uuid/

注意:这个目录内容依赖 udev 规则和设备探测状态。热插拔后可能延迟更新(通常几秒内同步)。

CentOS Linux 7.9.2009

CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。

下载

  • 每个链接目标是真实设备路径,例如 a1b2c3d4-... -> ../../nvme0n1p1
  • 如果链接损坏或缺失,说明该设备当前未被内核识别(可能已拔出、故障或未初始化)
  • 不能用于生成新 UUID,仅作只读查询用途

挂载后通过 findmntmount 查 UUID

当分区已挂载且你只想查某个挂载点对应的 UUID 时,这两个命令更聚焦:

findmnt -n -o SOURCE,TARGET,FSTYPE,UUID /home

findmnt 是现代替代方案,mount 输出较旧但兼容性更好(mount | grep '/home')。

  • findmnt -D 可显示所有挂载项的 UUID(即使没显式指定 -o UUID
  • 缺点:未挂载的分区完全不会出现在结果里 —— 这和 blkid 形成互补
  • 某些网络文件系统(如 NFS)或 tmpfs 不支持 UUID,字段会为空或显示 N/A

修改或生成 UUID 的注意事项

UUID 是文件系统属性,不是设备物理标识。重写需针对具体文件系统类型,且有风险:

  • ext2/3/4:用 tune2fs -U random /dev/sdX1(必须卸载)
  • xfs:不支持修改 UUID;只能重新格式化(mkfs.xfs -f -U generate /dev/sdX1
  • swap:用 mkswap -U random /dev/sdX2
  • 操作前务必确认设备路径正确 —— 写错设备会导致数据彻底丢失
  • 修改后,需同步更新 /etc/fstab 和 GRUB 配置中引用的旧 UUID,否则系统可能无法启动

真正容易被忽略的是:LVM 逻辑卷本身没有 UUID,它的“UUID”其实是底层 PV/VG/LV 的标识符(见 pvs/vgs/lvs 输出),而文件系统 UUID 仍由 blkid 读取 —— 别把这两层混为一谈。

《如何在Linux中查看磁盘UUID Linux获取分区唯一标识符的方法.doc》

下载本文的Word格式文档,以方便收藏与打印。