Linux lsblk 命令:查看磁盘、分区、逻辑卷与挂载关系
lsblk 列出磁盘、分区和逻辑卷等块设备及其依赖关系。它适合在分区、格式化或挂载操作前确认设备结构,但不会证明某个设备没有数据、可以覆盖或已经完成备份。
块设备是按数据块访问的存储设备接口,包括物理磁盘和某些虚拟设备。lsblk 的树形输出展示设备之间的关系,TYPE 表示设备类型,MOUNTPOINTS 表示相关挂载路径;这些信息必须结合目标主机和实际存储配置理解。
基本语法与信息来源
lsblk [options] [device]
方括号内是说明性占位符,不应原样输入;不指定设备时查看可见设备,指定设备时应使用已核实的真实设备路径。先用 man lsblk 和 lsblk --help 核对本机 util-linux 版本支持的选项与列名。
lsblk 主要从 sysfs 和 udev 数据库收集信息。新接入或刚修改的设备可能尚未完成 udev 更新;遇到信息不全时,可按上游建议在具备相应环境时使用 udevadm settle 等待待处理事件,再重新查询。这不是修复磁盘或创建文件系统的命令。
通常查询设备概览不需要管理员权限;若没有 udev 数据库或相应构建支持,读取设备上的文件系统信息可能需要 root 权限。不要把空字段直接当作磁盘空白,也不要因信息不全就开始格式化。
查看层级、文件系统与指定列
查看当前可见的设备关系。
lsblk
常见 TYPE 包括 disk、part 和 lvm,分别表示磁盘、分区和逻辑卷设备。默认列和过滤规则可能随版本改变;树形关系也不一定是一棵简单的“每个子节点只有一个父节点”的树,同一设备可能重复出现在相关分支下。
查看文件系统识别信息。
lsblk -f
-f 侧重文件系统类型、标签、UUID 和挂载点等信息。UUID 是通用唯一标识符,常用于识别文件系统,但克隆等操作可能产生重复标识;不能仅凭标签或 UUID 就保证选中了唯一且正确的设备。文件系统信息与设备类型也不同:分区可包含文件系统,整个磁盘或逻辑卷也可能承载文件系统。
明确选择需要的输出列。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
NAME 是名称,SIZE 是块设备容量,TYPE 是设备类型,FSTYPE 是内容的文件系统类型,MOUNTPOINTS 是相关挂载点。SIZE 不是文件系统的剩余空间,查询可用空间应结合 df 的文件系统空间统计。默认大小单位按 1024 的幂缩放,需要字节数时可在支持的版本中添加 -b。
读取磁盘、分区和挂载关系
下面选择名称、容量、文件系统和挂载路径:
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS
以下是结构示意,设备名、容量和文件系统不是当前主机的实测结果:
NAME SIZE FSTYPE MOUNTPOINTS
sda 40G
├─sda1 1G vfat /boot/efi
└─sda2 39G ext4 /
在这个示例中,sda 是父磁盘,sda1 与 sda2 是其分区;前者的 vfat 文件系统挂载在 /boot/efi,后者的 ext4 文件系统挂载在根目录 /。实际判断设备类型时应查看 TYPE,本示例没有显示该列,不能把所有类似名称都直接套入同一结构。
MOUNTPOINT 只显示一个挂载点,而复数 MOUNTPOINTS 可在多行单元格中显示相关的多个挂载点。空白不等于“未使用”:设备可能是交换空间、加密容器、独立磁盘冗余阵列(RAID)或 LVM 的底层成员,也可能没有当前可见的挂载。容器和不同挂载命名空间中的可见范围还可能不同。
LVM 是 Logical Volume Manager,即逻辑卷管理器。TYPE 为 lvm 时,要继续追溯其底层设备及逻辑卷实际承载的文件系统;RAID、加密或多路径配置可能涉及多对多依赖。不要把树中每行 SIZE 相加当成独立物理总容量,也不要把磁盘行和它的分区重复计入。
主要选项与脚本输出
| 选项 | 用途与条件 |
|---|---|
-f |
显示文件系统概览;默认列可能随版本变化。 |
-o column_list |
明确选择列,列名以逗号分隔。 |
-p |
显示完整设备路径,不能保证设备路径跨重启不变。 |
-J |
输出 JSON,宜同时明确列与需要的树形结构。 |
-a |
取消内置过滤,包含空设备、RAM 磁盘等;不是显示磁盘文件内容。 |
例如 lsblk -J -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS 可给脚本提供明确列的 JSON。需要层级时保留 NAME 或显式使用 --tree,因为 children 数组的生成与树形输出条件有关。需要平面清单时可使用 --list,并明确这会改变关系的表达方式。
列名以本机 --help 为准,支持时也可用 lsblk --list-columns 查询。旧版本可能只有 MOUNTPOINT,没有 MOUNTPOINTS;不要悄悄替换后仍声称显示了全部挂载点。遇到未知列、权限或设备不存在等错误,应先处理退出状态,不能把失败输出当成空设备列表。
修改设备前怎样交叉核对
- 确认目标主机和设备身份。/dev/sdX 名称可能随连接顺序变化,结合设备容量、型号、序列号及存储清单核对,不能只凭“上次是 sdb”操作。
- 区分设备、内容和挂载。lsblk 看关系,blkid 看文件系统或交换空间等内容识别,findmnt 看当前挂载;三者回答的问题不同。
- 确认业务依赖与备份。空挂载字段、空 FSTYPE 或看起来没有分区,都不能证明可安全覆盖;应核对 LVM、RAID、加密和应用用途。
- 先解决不一致再改变配置。缺少字段可能与权限、信息尚未更新或可见范围有关,不要直接执行格式化、删除分区或擦除签名。
blkid 手册说明内容识别及普通用户可能得到未验证缓存结果的限制;findmnt 手册说明挂载查询。单次显示或工具之间表面一致,也不能代替对数据用途和恢复能力的确认。
常见问题
TYPE 显示 lvm,是否就是一块独立物理磁盘?
不是。它是逻辑卷管理器提供的虚拟块设备,可能建立在分区或其他设备之上。应同时查看底层关系、文件系统和实际挂载,不能把它与底层磁盘当成彼此独立的容量相加。
官方文档
util-linux 上游 lsblk 手册说明信息来源、列选择、多路径关系和 JSON 树形条件。最新手册可能包含本机旧版本没有的选项,应与已安装版本对照。




