Linux命令:blkid

blkid 命令

基本介绍

blkid 是 Linux 系统中用于查询和显示块设备属性信息的工具。它可以获取设备的 UUID(通用唯一标识符)、文件系统类型、卷标等信息,常用于挂载文件系统时引用设备。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://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 文件系统卷标

注意事项

  1. 权限要求:通常需要 root 权限才能访问所有设备信息
  2. 缓存机制blkid 使用缓存文件 /etc/blkid.tab 提高性能
  3. 更新缓存 :使用 -g 选项清理无效缓存条目
  4. 设备路径 :设备通常位于 /dev 目录下
  5. UUID 格式:UUID 是 128 位数字,通常表示为 32 个十六进制字符
  6. 卷标限制:不同文件系统对卷标长度有限制

总结

blkid 是 Linux 系统中查询块设备属性的重要工具。它可以获取设备的 UUID、文件系统类型、卷标等信息,常用于挂载文件系统时引用设备。通过不同的选项组合,可以灵活地获取所需的设备信息,是系统管理员日常工作中常用的工具。

相关推荐
秋田君6 分钟前
QT_绘图原理双缓冲机制
服务器·数据库·qt
qetfw25 分钟前
Debian OpenSSL CA 证书配置参考:根证书、服务证书与验证
linux·debian·ssl·openssl
测试运维日常笔记35 分钟前
RHEL/CentOS 离线部署指南:配置本地 ISO 镜像作为 YUM 仓库
linux·运维·centos
HiDev_1 小时前
【非标自动化】硬核阅读理解620行梯形图-逆推工位逻辑
运维·自动化
南京码讯光电技术有限公司1 小时前
What Does Ex tb IIIC T80°C Db Mean?
服务器·网络·数据库
长江&后浪1 小时前
华为wlan实验-三层旁挂
运维·服务器·网络·华为
梓沂2 小时前
CentOS 7.9 静默安装 Oracle 11gR2 企业版全记录
linux·oracle·centos
蜀道山老天师2 小时前
Zabbix监控Docker容器应用实践完整指南
linux·运维·docker·容器·zabbix
hweiyu002 小时前
Linux命令:info
linux·运维
xiaoxiangsiyan2 小时前
机房交换机交换技术与服务器链路聚合深度指南
运维·服务器·网络·学习·自动化·bond