跳转到内容

blkid

blkid(block id)是 Linux 下用于查询和显示块设备属性的命令行工具,能快速获取磁盘分区的 UUID、LABEL、TYPE(文件系统类型)等信息,常用于配置 /etc/fstab 或调试磁盘分区问题。

它底层会访问内核接口以及 libblkid 库(来自 util-linux 包),并可结合缓存提高效率。默认情况下,blkid 优先读取缓存(通常在 /run/blkid/blkid.tab):

  • 如果缓存有记录,blkid 会直接返回
  • 如果没有记录,才会去实际探测设备(读超级块)
Terminal window
blkid [选项] [设备路径...]
  • 如果不指定设备路径,blkid 会显示系统中所有已识别的块设备信息
  • 如果指定设备路径(如 /dev/sda1),则只显示该设备的信息
选项 说明
-L <label> 通过卷标(LABEL)查询设备
-U <UUID> 通过 UUID 查找对应的设备
-s <tag> 只显示指定的属性(如 UUID、TYPE、LABEL 等),想要显示多个属性,重复使用 -s <属性>
-o <format> 指定输出格式,常用格式:full(默认,完整格式)、value(只显示属性值)、list(简洁列表格式)、device(只显示设备路径)
-p <dev> 绕过缓存,直接探测设备的超级块,获取最新的元数据信息(需 root 权限)
-i <dev> 显示设备的低级信息,如扇区大小、设备类型等(需 root 权限)
-u <list> 限定扫描范围,list 可以是 filesystem、raid、crypto、other
-k 显示 blkid 支持识别的所有文件系统类型、RAID 类型、分区表类型
-g 清除缓存
-h 显示帮助信息
-v 显示版本信息

1. 查看所有块设备信息

Terminal window
sudo blkid

输出示例:

Terminal window
/dev/sda1: UUID="c3d4e2a0-58d3-4b8d-83d5-84c6ff1d7e92" TYPE="ext4"
/dev/sda2: UUID="E4A2-1B3D" TYPE="swap"
/dev/sdb1: UUID="F8A1-2B3C" TYPE="vfat" LABEL="USB_DISK"

2. 查看指定设备信息

Terminal window
sudo blkid /dev/sdb1

输出示例:

Terminal window
/dev/sdb1: UUID="F8A1-2B3C" TYPE="vfat" LABEL="USB_DISK"

3. 只显示指定属性

Terminal window
# 只显示 UUID 和文件系统类型
sudo blkid -s UUID -s TYPE /dev/sda1

4. 通过 UUID 查找设备

Terminal window
sudo blkid -U "c3d4e2a0-58d3-4b8d-83d5-84c6ff1d7e92"

5. 以简洁列表格式输出

Terminal window
sudo blkid -o list