blkid 属于
util-linux工具集,读取块设备的超级块元信息,获取文件系统 UUID、LABEL、TYPE、PARTUUID 等,写/etc/fstab首选;需要 root 权限。 原理:默认读取/etc/blkid.tab缓存;-p模式绕过缓存直接扫磁盘超级块。
语法
blkid [选项] [设备名...]
一、核心标签含义(重点区分)
一句话:重新格式化分区 → UUID 变,PARTUUID 不变。
二、常用选项表
-o 输出格式说明:
full:默认格式,/dev/sda1: UUID="xxx" TYPE="xfs"value:只输出值,脚本提取 UUID 神器device:只输出设备名export:KEY="VALUE"环境变量格式,适合脚本sourceudev:udev 规则使用的 ID_FS_* 格式
三、高频实战命令(生产日常)
1. 列出所有块设备(最常用)
blkid
2. 只查看单个分区
blkid /dev/sdb1
3. 只提取 UUID(脚本自动化首选,写 fstab 复制)
# 只输出UUID值,不带引号
blkid -s UUID -o value /dev/sdb1
同理只看 LABEL / TYPE
blkid -s LABEL -o value /dev/sdb1
blkid -s TYPE -o value /dev/sdb1
4. 多标签同时输出
blkid -s UUID -s TYPE -s LABEL /dev/sdb1
5. 根据 UUID 反向查设备(排查 fstab)
blkid -U "0425f958-812c-4018-805d-9123456abcde"
6. 根据 LABEL 反向查设备
blkid -L "data-disk"
7. 搜索:查找 TYPE=xfs 的所有设备
blkid -t TYPE=xfs
# 只取第一个匹配
blkid -t TYPE=xfs -l
8. 绕过缓存直接扫描(刚 mkfs 格式化,缓存没更新时必用)
blkid -p /dev/sdb1
# 禁用缓存等价写法
blkid -c /dev/null /dev/sdb1
9. export 格式,脚本导入变量
blkid -o export /dev/sdb1
# 可以直接 source
eval $(blkid -o export /dev/sdb1)
echo $UUID
10. 查看 IO 参数(扇区、对齐)
blkid -i /dev/sdb
四、LVM 逻辑卷注意
LVM 的 /dev/mapper/vg-lv 也是块设备,blkid 直接读 LV 本身的 UUID:
blkid /dev/mapper/centos-root
✅ fstab 直接填这个 LV 的 UUID,不要写底层 PV 分区的 UUID
五、常见坑
未格式化裸分区:没有 UUID、TYPE 为空
MBR 分区一般没有 PARTUUID,只有 GPT 才有
格式化后 blkid 看不到新 UUID:缓存没刷新 → 加
-pFAT32 的 UUID 是短格式,如
ABCD-1234,fstab 可以直接使用blkid 看不到挂载点,挂载点看
lsblk -f/df不要把 PARTUUID 复制到 fstab 的
UUID=字段,会挂载失败
六、配套对比
blkid:侧重文件系统元数据(UUID/TYPE/LABEL)lsblk -f:侧重设备树拓扑 + 挂载点,可视化更好/dev/disk/by-uuid/:udev 生成的软链接,本质和 blkid 一致
七、运维标准工作流(配置 fstab)
# 1. 理清磁盘结构
lsblk
# 2. 获取目标分区UUID
blkid -s UUID -o value /dev/sdb1
# 3. 备份fstab,写入UUID配置
cp /etc/fstab /etc/fstab.bak
# 4. 校验
mount -a本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。
原文链接
欢迎访问