blkid 命令
基本介绍
blkid 是 Linux 系统中用于查询和显示块设备属性信息的工具。它可以获取设备的 UUID(通用唯一标识符)、文件系统类型、卷标等信息,常用于挂载文件系统时引用设备。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
blkid [OPTIONS] [DEVICE]
常用选项
基本选项
-c, --cachefile=FILE:指定缓存文件-d, --no-encoding:不编码非打印字符-g, --garbage-collect:清理缓存中的无效条目-h, --help:显示帮助信息-k, --list-filesystems:列出支持的文件系统类型-o, --output=FORMAT:指定输出格式-s, --match-tag=TAG:只显示指定标签的信息-t, --match-token=TOKEN:按指定条件过滤设备-U, --uuid=UUID:按 UUID 查找设备-L, --label=LABEL:按卷标查找设备-V, --version:显示版本信息
输出格式
full:完整格式(默认)value:仅显示值list:列表格式export:环境变量格式
使用示例
1. 显示所有块设备信息
bash
blkid
输出示例:
/dev/sda1: UUID="1234-ABCD" TYPE="vfat" PARTUUID="12345678-01"
/dev/sda2: UUID="12345678-1234-5678-1234-567812345678" TYPE="swap" PARTUUID="12345678-02"
/dev/sda3: UUID="12345678-1234-5678-1234-567812345678" TYPE="ext4" PARTUUID="12345678-03"
2. 显示指定设备信息
bash
blkid /dev/sda1
blkid /dev/sda3
3. 仅显示 UUID
bash
blkid -s UUID
blkid -s UUID /dev/sda3
输出示例:
/dev/sda3: UUID="12345678-1234-5678-1234-567812345678"
4. 仅显示文件系统类型
bash
blkid -s TYPE
5. 按 UUID 查找设备
bash
blkid -U 12345678-1234-5678-1234-567812345678
输出示例:
/dev/sda3
6. 按卷标查找设备
bash
blkid -L MYVOLUME
7. 以值格式输出
bash
blkid -o value -s UUID /dev/sda3
输出示例:
12345678-1234-5678-1234-567812345678
8. 以环境变量格式输出
bash
blkid -o export /dev/sda3
输出示例:
DEVNAME=/dev/sda3
UUID=12345678-1234-5678-1234-567812345678
TYPE=ext4
PARTUUID=12345678-03
9. 列出支持的文件系统类型
bash
blkid -k
输出示例:
btrfs
ext2
ext3
ext4
vfat
swap
...
10. 按条件过滤设备
bash
blkid -t TYPE=ext4
blkid -t LABEL=MYVOLUME
输出格式说明
默认输出格式
/dev/sda1: UUID="1234-ABCD" TYPE="vfat" PARTUUID="12345678-01"
| 字段 | 说明 |
|---|---|
DEVNAME |
设备路径 |
UUID |
通用唯一标识符 |
TYPE |
文件系统类型 |
LABEL |
卷标 |
PARTUUID |
分区 UUID |
PARTLABEL |
分区标签 |
常见文件系统类型
| 类型 | 说明 |
|---|---|
ext2/ext3/ext4 |
Linux 扩展文件系统 |
vfat |
FAT32 文件系统 |
ntfs |
NTFS 文件系统 |
swap |
交换空间 |
btrfs |
Btrfs 文件系统 |
xfs |
XFS 文件系统 |
lvm2_member |
LVM 物理卷 |
实用技巧
获取所有 UUID
bash
blkid | grep -o 'UUID="[^"]*"' | sed 's/UUID="//;s/"$//'
获取指定类型的设备
bash
blkid -t TYPE=ext4 -o list
脚本中获取 UUID
bash
#!/bin/bash
# 获取根分区 UUID
ROOT_UUID=$(blkid -o value -s UUID /dev/sda3)
echo "Root partition UUID: $ROOT_UUID"
# 获取所有 ext4 分区
echo "Ext4 partitions:"
blkid -t TYPE=ext4 | while read line; do
dev=$(echo "$line" | cut -d: -f1)
uuid=$(echo "$line" | grep -o 'UUID="[^"]*"' | sed 's/UUID="//;s/"$//')
echo "$dev -> $uuid"
done
检查设备是否存在
bash
if blkid /dev/sda3 &>/dev/null; then
echo "Device exists"
else
echo "Device not found"
fi
更新 fstab 使用 UUID
bash
# 获取 UUID
UUID=$(blkid -o value -s UUID /dev/sda3)
# 添加到 fstab
echo "UUID=$UUID /mnt/data ext4 defaults 0 2" >> /etc/fstab
相关命令
lsblk:列出块设备信息fdisk:磁盘分区工具parted:磁盘分区工具mount:挂载文件系统umount:卸载文件系统tune2fs:调整 ext2/ext3/ext4 文件系统参数e2label:设置 ext2/ext3/ext4 文件系统卷标
注意事项
- 权限要求:通常需要 root 权限才能访问所有设备信息
- 缓存机制 :
blkid使用缓存文件/etc/blkid.tab提高性能 - 更新缓存 :使用
-g选项清理无效缓存条目 - 设备路径 :设备通常位于
/dev目录下 - UUID 格式:UUID 是 128 位数字,通常表示为 32 个十六进制字符
- 卷标限制:不同文件系统对卷标长度有限制
总结
blkid 是 Linux 系统中查询块设备属性的重要工具。它可以获取设备的 UUID、文件系统类型、卷标等信息,常用于挂载文件系统时引用设备。通过不同的选项组合,可以灵活地获取所需的设备信息,是系统管理员日常工作中常用的工具。