在 Linux 系统管理中,磁盘信息的查看是日常运维和故障排查的基础操作,通过准确掌握磁盘状态、分区结构、使用情况等数据,管理员可以有效规划存储资源、及时发现空间瓶颈,并保障数据安全,本文将系统介绍 Linux 系统中查看磁盘信息的多种命令及其使用场景,帮助读者全面掌握磁盘状态监控方法。

基础磁盘信息查看:df 命令
df(disk free)命令是查看磁盘空间使用率的常用工具,主要用于显示文件系统的磁盘总容量、已用空间、可用空间及使用百分比等信息,其基本语法为 df [选项] [文件或目录],常用参数如下:
-h(human-readable):以人类可读的格式显示容量(如 K、M、G);-T(print-type):显示文件系统类型;-i(inodes):显示 inode 使用情况而非块使用情况;--total:汇总所有文件系统的使用情况。
执行 df -hT 会输出类似以下结果:
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda1 ext4 50G 20G 28G 42% /
/dev/sdb1 xfs 100G 30G 70G 30% /data
tmpfs tmpfs 16G 0 16G 0% /dev/shm
文件系统列标识磁盘分区或逻辑卷的类型,挂载点列显示分区挂载的目录位置,若需查看特定目录的磁盘使用情况,可指定目录路径,如 df -h /var/log 会仅显示 /var/log 所在分区的空间信息。
磁盘分区与详细信息:lsblk 与 fdisk
lsblk 命令:列出块设备
lsblk(list block devices)以树状结构显示磁盘及其分区的层级关系,直观呈现磁盘的物理结构、分区类型、挂载点等信息,其常用参数包括:
-f(fs):显示文件系统标签、UUID 及挂载点;-d(directory):仅显示磁盘设备,不显示分区;-m(maj:min):显示主设备号和次设备号。
执行 lsblk -f 的输出示例:
NAME FSTYPE UUID LABEL MOUNTPOINT
sda
├─sda1 ext4 12345678-9abc-def0-1234-56789abcdef0 /
sdb
├─sdb1 xfs fedcba98-0765-4321-fedc-ba9876543210 /data
└─sdb2 swap 11111111-2222-3333-4444-555555555555 [SWAP]
nvme0n1
└─nvme0n1p1 ext4 88888888-9999-aaaa-bbbb-cccccccccccc /mnt/nvme
从结果中可看出,系统包含 SATA 磁盘(sda/sdb)和 NVMe 磁盘(nvme0n1),每个磁盘下的分区类型、UUID 及挂载点一目了然。
fdisk 命令:分区表管理
fdisk 是经典的磁盘分区工具,可用于查看磁盘分区表、创建或删除分区,执行 sudo fdisk -l(l 为 list 缩写)会列出系统中所有磁盘的详细分区信息,包括起始扇区、结束扇区、分区大小及分区类型 ID。
输出中可能包含:

磁盘 /dev/sdb:107.4 GB, 107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12345678
设备 Boot Start End Sectors Size Id
/dev/sdb1 * 2048 209715199 209713152 100G 83
/dev/sdb2 209715200 209715199 0 1M 5
/dev/sdb3 209717248 419430399 209713152 100G 8e
Boot 列标记活动分区( 表示可引导),Id 列为分区类型(如 83 为 Linux 原生分区,8e 为 LVM 分区)。
物理磁盘性能与状态:smartctl 与 iostat
smartctl:监控磁盘健康状态
SMART(Self-Monitoring, Analysis and Reporting Technology)是硬盘的自我监测技术,smartctl 命令(需安装 smartmontools 工具包)可读取磁盘的 SMART 信息,评估硬盘健康状态。
常用参数:
-a(all):显示所有 SMART 信息;-H(health):检查磁盘健康状态;-A(attributes):显示详细属性表。
执行 sudo smartctl -H /dev/sda 会输出磁盘的总体评估(如 “PASSED” 或 “FAILED”),而smartctl -A /dev/sda` 则会显示温度、重新分配扇区数、 spin retry count 等关键健康属性,帮助预测硬盘故障。
iostat:磁盘 I/O 性能统计
iostat(位于 sysstat 工具包)是监控系统磁盘 I/O 性能的重要工具,可显示磁盘的读写请求数、数据传输速率、平均等待时间等指标,常用参数:
-d(disk):仅显示磁盘统计信息;-x(extended):显示扩展统计信息(如利用率、等待时间);-k:以 KB 为单位显示数据传输量。
执行 iostat -dxk 1(每秒刷新一次)的输出示例:
Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.50 1.20 1.5 2.0 32.0 48.0 32.00 0.05 10.0 5.0 15.0 5.0 1.75
sdb 0.00 0.00 0.0 0.0 0.0 0.0 0.00 0.00 0.0 0.0 0.0 0.0 0.00
%util 列表示磁盘利用率,若持续高于 80%,可能表明磁盘 I/O 存在瓶颈;await 列为平均等待时间,数值过高说明磁盘响应慢。
文件系统使用详情:du 与 ncdu
du 命令:统计目录或文件大小
du(disk usage)用于递归统计目录或文件占用的磁盘空间,常用参数:

-h:人类可读格式;-s(summary):仅显示总计大小,不显示子目录详情;--max-depth=N:限制递归深度(如--max-depth=1仅统计一级子目录)。
du -sh /var/log 会显示 /var/log 目录的总大小,而 du -h --max-depth=1 /home 则会列出 /home 下各用户目录的磁盘占用情况。
ncdu:交互式磁盘使用分析器
ncdu(NCurses Disk Usage)是 du 的增强版,提供交互式界面,支持快速导航、删除文件及可视化分析,安装后执行 ncdu /path/to/dir,即可进入文本界面,通过上下键选择目录,按 Delete 键可删除不需要的文件,适合快速定位大文件或空目录。
高级磁盘监控:/proc/diskstats 与 sar
/proc/diskstats:内核磁盘统计
/proc/diskstats 是 Linux 内核提供的磁盘统计接口,包含每个磁盘的详细 I/O 指标,如读取/写入次数、扇区数、耗时等,可通过 cat /proc/diskstats 查看原始数据,或结合 awk、grep 提取特定磁盘信息,适合编写自动化监控脚本。
sar:系统资源历史记录
sar(System Activity Reporter)可记录并查询系统历史资源使用情况,包括磁盘 I/O 统计,安装 sysstat 后,执行 sar -d -p 1 5(每秒记录一次,共 5 次)会显示磁盘的每秒读写请求数、传输量等,适合分析历史 I/O 负载模式。
Linux 系统提供了丰富的命令和工具用于查看磁盘信息,从基础的 df、lsblk 到专业的 smartctl、iostat,管理员可根据需求选择合适的工具,日常运维中,建议结合 df 监控空间使用率、smartctl 检测硬盘健康、iostat 分析性能瓶颈,并通过 du 或 ncdu 定位大文件,从而实现磁盘资源的精细化管理,保障系统稳定运行。

















