尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Linux命令之lsblk:从基础查询到高级系统信息整合

Linux命令之lsblk:从基础查询到高级系统信息整合
📅 发布时间:2026/7/14 11:39:44

1. 初识lsblk:你的Linux存储设备导航仪

第一次在终端里输入lsblk时,我盯着那棵漂亮的设备树看了好久——原来我的硬盘里藏着这样的秘密花园!这个命令就像存储设备的X光机,能透视你电脑里所有硬盘、分区和挂载点的骨骼结构。

什么是块设备?简单说就是按"块"读写数据的硬件,比如你的固态硬盘(/dev/nvme0n1)、机械硬盘(/dev/sda),甚至是U盘(/dev/sdb)。它们不像普通文件那样可以随意编辑,必须整块整块地操作。

最让我惊喜的是它的树状展示能力。比如插上U盘后直接运行:

lsblk

你会看到类似这样的结构:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 512G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part /boot/efi ├─nvme0n1p2 259:2 0 16G 0 part [SWAP] └─nvme0n1p3 259:3 0 495.5G 0 part / sda 8:0 1 14.9G 0 disk └─sda1 8:1 1 14.9G 0 part /media/usb

这里清晰展示了我的NVMe固态硬盘(带EFI分区、交换分区和根分区)以及刚插入的14.9GB U盘。那个可爱的树形符号(├─和└─)完美呈现了设备间的父子关系。

小技巧:如果显示乱码,可以加-i参数强制使用ASCII字符:lsblk -i

2. 玩转参数:解锁lsblk的隐藏技能

刚开始我只用基础命令,直到有次服务器磁盘告急时,前辈教我用了-f参数——瞬间打开了新世界的大门。这个看似简单的工具,其实藏着不少实用技巧:

2.1 查看文件系统信息(-f)

lsblk -f

输出会多出这些列:

FSTYPE LABEL UUID MOUNTPOINT ext4 c7b3d8a1-3a2f-4d5b-b6c7-d8e9f0a1b2c3 / swap 82b1c1c9-3e3f-4d5e-a6b7-c7d8e9f0a1b2 [SWAP] vfat ESP 67E3-17ED /boot/efi

现在你一眼就能看出:根分区是ext4格式,交换分区没标签但有个UUID,EFI分区是FAT32格式。当需要修改/etc/fstab时,这些UUID可比设备名可靠多了。

2.2 显示权限信息(-m)

lsblk -m

输出示例:

NAME SIZE OWNER GROUP MODE sda 500G root disk brw-rw---- ├─sda1 100G root disk brw-rw---- └─sda2 400G root disk brw-rw----

这里揭示了谁有权操作这些设备。曾经有次遇到权限问题,就是靠这个发现某个分区的GROUP被误改成了staff而不是disk。

2.3 JSON格式输出(-J)

lsblk -J

会得到这样的结构化数据:

{ "blockdevices": [ { "name": "sda", "type": "disk", "children": [ { "name": "sda1", "type": "part", "mountpoint": "/" } ] } ] }

这个功能太适合写脚本时解析了!我常用它搭配jq命令处理数据,比如:

lsblk -J | jq '.blockdevices[].name'

3. 实战组合拳:系统管理的黄金搭档

单独用lsblk已经很强,但和其他命令组合才是真正的杀手锏。分享几个我常用的组合技:

3.1 快速定位未挂载分区

lsblk -f | grep -v "MOUNTPOINT" | grep -v "FSTYPE"

这个管道组合能过滤出所有未挂载的分区。上周就用它发现了一个被遗忘的200GB分区,直接解决了存储危机。

3.2 监控设备变化

watch -n 1 lsblk -f

动态刷新显示设备状态,特别适合调试USB设备热插拔或iSCSI连接。有次排查外接硬盘异常断开,就是靠这个发现的规律性掉线。

3.3 与blkid强强联合

lsblk -o NAME,UUID | grep -v "NAME" | while read dev uuid; do [ -n "$uuid" ] && blkid -U "$uuid" done

这个脚本通过UUID关联两个命令的输出,能验证设备标签是否一致。曾经帮我发现过因UUID冲突导致的启动故障。

4. 高级应用:从运维到自动化

当你不满足于简单查询时,这些进阶玩法会让lsblk变身系统管理瑞士军刀:

4.1 存储容量分析

lsblk -b -o NAME,SIZE,MOUNTPOINT | awk ' NR>1 { size[$3]+=$2 } END { for(m in size) printf "%-20s %15.2f GB\n", m, size[m]/1024/1024/1024 }'

这个awk脚本可以统计每个挂载点的总容量。输出类似:

/ 487.52 GB /boot/efi 0.49 GB [SWAP] 15.99 GB

4.2 自动化挂载脚本

#!/bin/bash UNMOUNTED=$(lsblk -rno NAME,MOUNTPOINT | awk '$2=="" {print $1}') for DEV in $UNMOUNTED; do UUID=$(lsblk -dno UUID "/dev/$DEV" 2>/dev/null) [ -n "$UUID" ] && mkdir -p "/mnt/$DEV" && mount -U "$UUID" "/mnt/$DEV" done

这个安全脚本会自动挂载所有未挂载的有效分区到/mnt下,特别适合批量处理新硬盘。

4.3 设备拓扑分析

lsblk -t

输出示例:

NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME sda 0 512 0 512 512 1 mq-deadline 256 128 0B

这些拓扑信息对数据库调优特别有用。比如ROTA=1表示旋转式磁盘(机械硬盘),ROTA=0则是SSD。我曾经据此调整了MySQL的I/O调度策略。

重要提示:操作存储设备前务必备份数据!误操作可能导致数据丢失。特别是脚本自动化处理时,建议先用-n参数做干运行测试。

相关新闻

  • C++ IIR滤波器库:从双二阶结构到实时音频处理的工程实践
  • 2026年六盘水避暑酒店怎么选不踩雷?5家实测对比与智能高档住宿推荐 - 中国品牌企业观察网
  • 【ChatGPT文档质量生死线】:为什么你的AI生成文档被架构师当场否决?——基于AST解析与SQuADv2评估的7项硬性指标验证

最新新闻

  • 积家官方服务项目及价格查询|权威信息公示(2026年7月最新) - 积家官方维修中心
  • GitHub CSV Tools错误排查指南:常见问题解决方法和调试技巧
  • 汽车电子MCU选型实战:MSPM0Lx22x如何以单芯片方案满足功能安全与低功耗需求
  • 图像识别:从像素到智能的演进之路
  • 嵌入式毕业设计实战项目精选30例(附技术路线与源码解析)
  • Dialog源码架构解析:理解BaseDialog与ModalBaseDialog的设计思想

日新闻

  • AWS SSM安全运维实践:零公网暴露的合规远程开发方案
  • Tableau 2024.1 图表选择指南:5种业务场景与最佳图表类型匹配
  • dsPIC33FJ与CMT-8540S-SMT在嵌入式音频处理中的高效应用

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号