LOADING

lsblk

linux

针对lsblk(list block devices)命令,这里为你总结一个面向实操的精简指南。

核心用法

lsblk 用于列出系统中所有可用的或指定的块设备(如硬盘、分区)信息,默认以树状结构展示。它从 sysfs 文件系统读取数据,非常高效。

最常用选项速查

日常查看

  • lsblk:显示所有设备(树状,不含空设备)。
  • lsblk -a:显示所有设备,包括空设备和内存盘。
  • lsblk -f:显示文件系统信息(类型、标签、UUID、挂载点等),非常常用
  • lsblk -m:显示权限信息(属主、组、模式)。
  • lsblk -t:显示磁盘拓扑信息(调度器、扇区大小等)。

脚本与格式化

  • lsblk -l:以列表格式输出,无树状关系。
  • lsblk -o +UUID:指定输出列。加号 + 在默认列基础上追加,也可直接指定列表。
  • lsblk -J:以 JSON 格式输出,便于脚本处理。
  • lsblk -P:输出 键="值" 对。
  • lsblk -n:不打印表头。
  • lsblk -b:大小以字节为单位。

设备筛选

  • lsblk -e 7,11:排除主设备号为 7 和 11 的设备(如 loop 和 sr0)。
  • lsblk -d /dev/sda:只显示 sda 设备本身,不显示其分区等依赖项。
  • lsblk --filter 'TYPE=="part"':仅显示分区类型的设备。
  • lsblk --filter 'MOUNTPOINT!=""':仅显示已挂载的设备。

其他

  • lsblk -p:显示完整的设备路径。
  • lsblk --sort SIZE:按指定列排序(自动启用列表格式)。

实用示例组合

# 查看所有设备的文件系统信息,以列表形式,带完整路径
lsblk -flp

# 查看指定磁盘 sda 的拓扑结构和分区表
lsblk -t /dev/sda

# 为脚本生成简洁的已挂载分区信息(名称和挂载点)
lsblk -lno NAME,MOUNTPOINT

# 使用 JSON 输出,筛选出符合条件的分区
lsblk -J --filter 'TYPE=="part" && FSTYPE=="ext4"'

提示:在脚本中使用时,为避免默认输出格式变化带来的问题,请始终通过 -o 明确指定所需列,并使用 -l-r 固定格式。如果遇到设备信息不全,可先执行 udevadm settle