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、文件系统类型、卷标等信息,常用于挂载文件系统时引用设备。通过不同的选项组合,可以灵活地获取所需的设备信息,是系统管理员日常工作中常用的工具。

相关推荐
z200509301 小时前
【linux学习】深入理解 Linux 进程间通信:管道的艺术与实现
linux·开发语言
j_xxx404_1 小时前
Linux线程池硬核解析:从固定线程池、单例线程池到线程安全、死锁与锁模型|附源码
linux·运维·服务器·c++·安全·ai
伟大的大威1 小时前
自托管 Happy 服务器,用 iPhone 远程操控 Claude Code(含全部踩坑+约束清单)
运维·服务器·iphone
dust_and_stars1 小时前
在Ubuntu 24.04上设置Jupyter Notebook远程访问
linux·ubuntu·jupyter
x_lrong1 小时前
Ubuntu下安装配置Claude Code
linux·ubuntu·elasticsearch
say_fall1 小时前
模拟量输入输出技术超详细知识点总结
linux·开发语言·嵌入式硬件·学习·php
白狐_7981 小时前
Playwright MCP + Claude Code 浏览器自动化实测:从安装到跑通亚马逊竞品分析,踩了 3 个坑
运维·自动化·亚马逊
2301_789015621 小时前
Linux基础开发工具一:软件包管理器、vim编辑器
linux·服务器·c语言·汇编·c++·编辑器·vim
wx_jiuyun6781 小时前
渔夫Telegram群机器人系统详解
linux·服务器·机器人