Linux命令:blkid

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 文件系统卷标

注意事项

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

总结

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

相关推荐
像风一样自由20204 小时前
52.Docker部署大模型应用从本地开发到服务化运行
运维·人工智能·docker·容器·大模型·智能体
sxgzzn4 小时前
如何利用电缆故障定位在线监测系统提升供电安全?
运维·重构·无人机·开关柜局放在线监测·gis局放在线监测
曦夜日长4 小时前
Git系统篇,Git本地使用(一):从“究极进化版“到三个区域的底层原理
大数据·linux·git·elasticsearch
mengchanmian5 小时前
VSFTP 服务器搭建(Centos)
运维·服务器·centos
shimly1234565 小时前
给断网无 sudo ubuntu22.04 机器安装 nodejs
linux
别动我齐刘海6 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
Lsetea7 小时前
OpenSSL报certificate chain too long:error 22与verify_depth深度排查
linux·https·ssl证书·openssl·证书链
不像程序员的程序媛8 小时前
linux常见文本操作命令
linux·运维·服务器
wangbing11258 小时前
开发指南149-IotDB-常用命令
linux·运维·iotdb
Dovis(誓平步青云)8 小时前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus