linux blkid 命令
blkid 命令简介
blkid 是 Linux 系统中用来识别和展示块设备属性的工具。它能够显示硬盘、分区以及 USB 存储设备等块设备的文件系统类型、UUID(唯一标识符)、卷标(LABEL)以及其他相关属性。
核心功能
- 识别设备所使用的文件系统类型
- 获取设备的唯一标识 UUID
- 查看设备的标签信息 LABEL
- 展示设备容量及其他属性
基本命令格式
blkid [参数] [设备路径...]
常用参数说明
参数 | 描述 |
---|---|
`-c ` | 指定缓存文件路径,默认为 /etc/blkid.tab |
`-g` | 清理并更新缓存数据 |
`-o ` | 定义输出样式(支持 full, value, list, device, udev) |
`-p` | 执行底层超级块检测,跳过缓存读取 |
`-s ` | 仅显示特定字段内容(例如 UUID, TYPE, LABEL) |
`-U ` | 通过 UUID 查询对应设备名称 |
`-L ` | 通过 LABEL 查询对应的设备路径 |
`-i` | 显示 I/O 限制相关信息 |
`-h` | 查看帮助文档 |
`-V` | 显示程序版本号 |
操作案例
1. 显示所有存储设备详细信息
示例
sudo blkid
结果样例:
/dev/sda1: UUID="5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f" TYPE="ext4" /dev/sda2: UUID="6b4c5d6e-7f8g-9h0i-1j2k-3l4m5n6o7p8q" TYPE="swap" /dev/sdb1: LABEL="DATA" UUID="9a8b7c6d-5e4f-3g2h-1i0j-9k8l7m6n5o4p" TYPE="xfs"
2. 查看某个具体设备的信息
示例
sudo blkid /dev/sda1
输出参考:
/dev/sda1: UUID="5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f" TYPE="ext4"
3. 只获取某设备的 UUID 值
示例
sudo blkid -s UUID -o value /dev/sda1
输出参考:
5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f
4. 通过 UUID 定位设备名称
示例
sudo blkid -U 5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f
输出参考:
/dev/sda1
5. 以列表方式展示设备信息
示例
sudo blkid -o list
输出参考:
device fs_type label mount point UUID ------------------------------------------------------------------------------- /dev/sda1 ext4 / 5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f /dev/sda2 swap [SWAP] 6b4c5d6e-7f8g-9h0i-1j2k-3l4m5n6o7p8q /dev/sdb1 xfs DATA /mnt/data 9a8b7c6d-5e4f-3g2h-1i0j-9k8l7m6n5o4p
典型应用场合
1. 在 fstab 文件中使用 UUID 挂载设备
编辑 /etc/fstab 时建议使用 UUID 而非设备名进行挂载,因为设备名可能在重启后发生变化:
示例
UUID=5a3a1e7b-1a2b-4c3d-8e9f-0a1b2c3d4e5f / ext4 defaults 0 1
2. 在脚本中自动识别设备路径
可以在自动化脚本中调用 blkid 实现动态查找设备:
示例
#!/bin/bash
DATA_PARTITION=$(sudo blkid -L “DATA”)
if [ -n “$DATA_PARTITION” ]; then
echo “找到数据分区: $DATA_PARTITION”
mount $DATA_PARTITION /mnt/data
else
echo “未找到数据分区”
fi
3. 找出尚未挂载的文件系统
示例
sudo blkid | grep -v “$(mount | awk ‘{print $1}’)”
常见疑问解答
Q1: 为什么要用 sudo 运行 blkid?
A: 普通用户权限不足以访问全部设备信息,使用 sudo 可确保完整获取设备属性。
Q2: blkid 和 lsblk 的区别?
A:
- lsblk 主要用于查看设备结构及基础信息(如设备名、大小、挂载点)
- blkid 更侧重于展示文件系统的细节(包括 UUID、文件系统类型、卷标等)
Q3: 如何刷新 blkid 缓存?
A: 使用如下命令刷新缓存:
示例
sudo blkid -g
或者直接绕过缓存进行低级探测:
示例
sudo blkid -p
总结
blkid 是 Linux 系统管理过程中非常实用的命令,尤其适用于处理磁盘和文件系统相关的任务。通过学习本文内容,你将能够:
- 掌握 blkid 的主要用途和命令格式
- 使用不同参数获取所需的设备详情
- 将该命令应用于实际运维场景
- 解决常见的设备识别问题
熟练使用 blkid 命令有助于提升你在 Linux 系统中对存储设备的管理效率。