首页/系统/Linux 运维命令速查/lsblk 查看块设备树
磁盘与文件系统51 条

lsblk 查看块设备树

lsblk 以树状图列出磁盘、分区、RAID/LVM 映射与挂载点;-f 显示文件系统与 UUID,-p 显示 /dev 完整路径,排查「磁盘加了但没挂上」的常用入口。

Linux 运维命令速查系统更新于 2026-10-13

lsblk 是什么

lsblk 读取 sysfs 与 udev 的信息,以树形结构列出块设备之间的层级关系:物理磁盘下面挂着哪些分区,分区之上是否叠加了 LVM 逻辑卷、RAID 或加密层,每一层对应哪个挂载点。它最大的价值在于展示结构,因此「新盘加了但没挂上」「分区建了但内核没识别」「LVM 卷没激活」这类问题,看一屏就能判断卡在哪一层,而不用在多个命令之间来回拼凑。

基本信息

适用平台Linux(util-linux 的 lsblk);容器与精简镜像里可能未安装
命令语法lsblk [选项] [设备...]
常用选项-f 显示文件系统类型、标签与 UUID、-p 输出 /dev 完整路径、-o 自定义列、-d 只列磁盘不展开分区、-l 用列表代替树形、-J JSON 输出、-e 排除指定设备
常用列NAME、SIZE、TYPE、MOUNTPOINT、FSTYPE、UUID、ROTA 是否旋转盘、MODEL
权限要求查询普通用户即可;部分设备信息在没有权限时显示为空

典型使用场景

  • 新盘接入:确认磁盘与分区是否被内核识别、容量是否符合预期
  • 挂载排查:MOUNTPOINT 列为空说明未挂载,避免把数据写进被遮蔽的目录
  • LVM 问题:确认卷组与逻辑卷是否激活、层级关系是否完整
  • 写 fstab:用 -f 拿到 UUID 与文件系统类型,直接填进配置文件
  • 磁盘类型确认:ROTA 为 1 表示机械盘,0 表示固态或虚拟盘
  • 脚本化检查:-J 输出配合 jq 做挂载点巡检,比解析文本输出稳定

常用示例

常用示例
lsblk
lsblk -f
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID
lsblk -d -o NAME,SIZE,ROTA,MODEL   # 只看物理盘与是否机械盘
lsblk -p /dev/sdb                  # 限制到指定设备,输出完整路径
lsblk -J | jq -r '.blockdevices[] | "\(.name) \(.size) \(.mountpoint)"'
partprobe /dev/sdb                 # 分区表变化后让内核重新读取
blkid /dev/sdb1                    # 查看 UUID 与文件系统类型

常用列读法

列含义关注点
NAME设备名,树形缩进表示层级加 -p 可拿到完整 /dev 路径
TYPEdisk 磁盘、part 分区、lvm 逻辑卷、raid 阵列、crypt 加密层、rom 只读设备用来判断设备处于哪一层
FSTYPE文件系统类型(-f 或 -o 指定时显示)为空说明尚未格式化
MOUNTPOINT当前挂载点为空即未挂载,写数据前必须确认
UUID文件系统唯一标识写 fstab 首选它而非设备名
ROTA1 表示旋转机械盘,0 表示固态或虚拟盘用于判断性能预期
lsblk 读的是内核与 udev 的当前状态,所以分区表刚被修改但内核尚未刷新时看不到新分区。此时执行 partprobe 设备名 或 partx -u 设备名 触发重新读取,再查一次即可,不必重启机器。
lsblk 与 df 关注点不同:lsblk 说明设备结构与挂载位置,df 说明挂载后的容量与使用率。新盘上线的流程通常是 lsblk 确认识别、分区、格式化、挂载、df 核对容量,最后写入 fstab 持久化。
容器里执行 lsblk 通常看到的是宿主机的块设备,容器自身可用的存储受挂载与存储驱动限制。判断容器能否写某个目录,应以 findmnt 与 df 的结果为准,而不是 lsblk 的设备清单。
查看 LVM 与加密层时注意设备名的来源:逻辑卷在内核里显示为 dm-0 这样的名字,可读名称来自 /dev/mapper 下的符号链接,用 lsblk -p 或 ls -l /dev/mapper 可以把两者对上。如果某个 dm 设备没有挂载点,通常是卷未激活或尚未挂载,而不是设备损坏。
写挂载配置前用 lsblk -f 取文件系统类型、UUID 与当前挂载点,一条命令就能凑齐需要的信息;脚本里解析用 -J 输出 JSON,或 --output 明确指定列,比直接切默认文本稳得多。

易错点

  • 热插拔新盘后 lsblk 看不到新分区就反复重启,其实应先执行 partprobe 或 partx -u 刷新内核分区表
  • 在容器里把 lsblk 展示的宿主机设备当成容器可支配设备,判断挂载关系应以 mount 与 findmnt 为准
  • 只看设备清单不看 MOUNTPOINT,把数据写进未挂载的挂载点目录,后续挂载新盘时数据被遮蔽
  • 用设备名而不是 UUID 写 fstab,插拔顺序或云主机热挂盘变化后可能挂错设备
  • 把 lsblk 的默认文本输出当作脚本解析目标,不同版本列宽与名称前缀有差异;脚本应使用 -o 指定列或 -J
  • 把它显示的容量当成可用空间:设备容量要扣除文件系统元数据与保留块,实际使用率以 df -h 的口径为准,两者不一致时不要怀疑命令出错

数据来源与参考

  • man 8 lsblk(util-linux)
  • util-linux 官方文档 lsblk(8)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌