lsblk -f是最省事、信息最全的组合命令,能同时显示分区树状结构、文件系统uuid、type类型及mountpoint挂载点,无需root权限(加密/lvm除外),依赖udev缓存,热插拔后可能延迟1–2秒,可用sudo udevadm trigger刷新。

直接用 lsblk -f 就能同时看到分区结构和 UUID,这是最省事、信息最全的组合命令。它不依赖挂载状态,也不需要 root 权限(除非遇到加密或 LVM 设备),适合日常排查和脚本调用。
用 lsblk -f 一次性看清分区树和 UUID
这个命令把磁盘拓扑和文件系统元数据合并在一个视图里,避免来回切换工具。输出中每行的 UUID 列就是对应分区的文件系统 UUID;TYPE 是设备类型(part 表示分区,disk 表示整块盘);MOUNTPOINT 显示是否已挂载。
- 如果某分区没显示 UUID,大概率是还没创建文件系统(比如刚分完区但没
mkfs),不是命令失效 -
lsblk -f依赖 udev 缓存,热插拔后可能延迟 1–2 秒才更新,着急时可加sudo udevadm trigger强制刷新 - 想导出为机器可读格式(比如给脚本用),加
-J输出 JSON:lsblk -f -J,再用jq提取字段
blkid 是查 UUID 的权威来源,但不显示分区结构
blkid 直接读取 superblock,结果比 lsblk -f 更可靠,尤其对未挂载、无标签、或 udev 还没识别的设备。但它只列设备路径和属性,没有父子关系——你看不出 /dev/sdb1 属于哪块盘,也看不出它和 /dev/sdb2 是不是同一块物理盘。
- 普通用户运行
blkid可能漏掉 LVM 或加密设备(提示Permission denied),此时必须加sudo - 只查某个分区:例如
blkid /dev/nvme0n1p3,响应快,适合自动化场景 - 提取纯 UUID 字符串(无引号无空格):用
blkid -s UUID -o value /dev/sda1 - 注意:
blkid不显示 PARTUUID,那是分区表层面的标识,得用fdisk -l或lsblk -o +PARTUUID
需要看分区表细节(MBR/GPT)时用 fdisk -l 或 parted -l
当你要确认分区起始扇区、类型代码(如 EFI System、Linux filesystem)、或验证 GPT 的 Disk Identifier 和 PARTUUID 时,fdisk -l 是唯一能直接展示这些底层信息的命令。它不显示文件系统 UUID,但能告诉你为什么某个分区在 lsblk 里没出现——比如分区表损坏、或分区号越界(如 MBR 最多 4 个主分区)。
- 必须用
sudo fdisk -l,否则可能看不到完整分区表 - GPT 磁盘的 PARTUUID 在输出里叫
Partition GUID,格式类似123e4567-e89b-12d3-a456-426655440000;MBR 磁盘的 PARTUUID 是内核拼出来的(如000a1b2c-01),不能当真实 GUID 用 -
parted -l输出更紧凑,但部分旧发行版默认没装;fdisk -l兼容性更好
真正容易被忽略的是:UUID 和 PARTUUID 完全是两回事,改错地方会导致系统无法启动。比如你用 tune2fs -U 改了 ext4 的 UUID,/etc/fstab 里写的还是旧值;但如果你误改了 PARTUUID(比如用 gdisk),GRUB 可能根本找不到根分区——因为 initramfs 里解析的是 PARTUUID 而不是文件系统 UUID。











