在Linux系统中,磁盘管理是系统运维的重要环节,掌握查看磁盘信息的方法能够帮助用户及时了解存储资源的使用情况、排查磁盘性能问题以及规划存储空间,本文将详细介绍Linux系统中查看磁盘信息的多种命令及其使用场景,涵盖磁盘分区、文件系统、使用率、I/O性能等关键维度。

基础磁盘信息查看:lsblk与fdisk
lsblk:列出块设备信息
lsblk(list block devices)是Linux中最常用的磁盘查看命令之一,它以树状结构展示块设备(包括硬盘、分区、磁盘映射等)及其挂载关系。
基本用法:
lsblk
常用参数:
-f:显示文件系统类型(如ext4、xfs)、UUID及挂载点;-d:不显示子设备(仅显示磁盘本身,不显示分区);-m:显示设备所有者、权限和所属组;-p:显示完整设备路径(如/dev/sda1)。
示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 50G 0 part /
└─sda2 8:2 0 50G 0 part /home
sr0 11:0 1 1024M 0 rom
NAME为设备名,SIZE为磁盘容量,TYPE为设备类型(disk为磁盘,part为分区),MOUNTPOINT为挂载点(未挂载时显示为空)。
fdisk:磁盘分区表管理工具
fdisk主要用于查看和管理磁盘分区表,支持交互式操作。
基本用法:
sudo fdisk -l # 列出所有磁盘及其分区信息
示例输出:
磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a1b2c
设备 Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 104857599 104855552 50G 83 Linux
/dev/sda2 104859647 209715199 104855553 50G 83 Linux
关键信息包括磁盘总容量、扇区大小、分区起始/结束扇区及分区类型(如83为Linux原生分区,8e为LVM分区)。
磁盘空间使用情况:df与du
df:文件系统磁盘使用率
df(disk free)用于查看各文件系统的磁盘空间使用情况,重点关注已用空间、可用空间及挂载点。
基本用法:
df -h # 以人类可读格式显示(如KB、MB、GB)
常用参数:

-T:显示文件系统类型;-i:显示inode使用情况(inode用于存储文件元数据,inode不足会导致无法创建新文件);--total:汇总所有文件系统的总使用量。
示例输出:
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/sda1 ext4 51584256 12345678 38938578 25% /
/dev/sda2 ext4 51584256 23456789 28127467 46% /home
tmpfs tmpfs 8191996 8124 8183872 1% /dev/shm
已用%是判断磁盘空间是否紧张的核心指标,若接近90%需及时清理。
du:目录/文件空间占用分析
du(disk usage)用于统计指定目录或文件的磁盘占用空间,适合定位大文件或大目录。
基本用法:
du -sh /home # 查看/home目录总大小(-s:汇总,-h:人类可读)
常用参数:
-h:以人类可读格式显示;-s:仅显示总计(不递归显示子目录);--max-depth=N:限制递归深度(如--max-depth=1仅显示一级子目录大小)。
示例输出:
23G /home
若需按大小排序查看目录下的子目录占用,可结合sort命令:
du -h --max-depth=1 /home | sort -hr
-hr表示按人类可读的数值降序排列,便于快速定位占用空间最大的目录。
磁盘I/O性能监控:iostat与iotop
iostat:I/O统计信息(需安装sysstat包)
iostat是强大的I/O性能分析工具,可显示磁盘设备的读写速率、IOPS(每秒读写次数)、等待时间等指标。
基本用法:
iostat -dxm 2 # 每2秒刷新一次,显示详细I/O指标(-d:磁盘,-x:扩展信息,-m:MB/s)
核心指标解析:

rrqm/s/sqm/s:每秒读写请求合并数(合并可减少I/O操作次数);r_await/w_await:读写请求平均等待时间(单位毫秒,过高说明磁盘性能瓶颈);svctm:平均服务时间(磁盘处理请求的时间);%util:磁盘I/O时间占比(若持续高于70%,说明磁盘繁忙)。
示例输出:
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.12 1.23 1.45 2.34 5.23 12.45 10.23 0.12 5.23 4.56 6.12 3.45 1.23
iotop:实时I/O进程监控
iotop以类似top的界面实时显示各进程的I/O读写速率,适合定位高I/O消耗的进程(需安装iotop包)。
基本用法:
sudo iotop -o # 仅显示有I/O操作的进程
界面说明:
DISK READ/DISK WRITE:进程的读写速率;SWAPIN:交换空间使用率;I/O Priority:I/O优先级(0为最高)。
磁盘健康状态检测:smartctl
smartctl(Self-Monitoring, Analysis and Reporting Technology)用于检测磁盘的健康状态,支持S.M.A.R.T.(自我监控、分析和报告技术)功能。
基本用法:
sudo smartctl -a /dev/sda # 显示磁盘完整健康信息
关键信息:
SMART overall-health self-assessment test result:磁盘整体健康状态(PASSED为正常,FAILED需立即更换);Reallocated_Sector_Ct:重分配扇区数(增加表明磁盘存在坏道);Current_Pending_Sector:当前待处理扇区数(非0说明磁盘异常)。
磁盘分区与文件系统管理:parted与lsblk -f
对于大容量磁盘(超过2TB),推荐使用parted代替fdisk,它支持GPT(GUID Partition Table)分区表。
查看分区表类型:
sudo parted -l /dev/sda
文件系统信息:
通过lsblk -f可快速查看分区的文件系统类型(如ext4、xfs、ntfs)和挂载状态,若需修复文件系统,可使用fsck命令(需先卸载分区):
sudo umount /dev/sda1 sudo fsck -t ext4 /dev/sda1
Linux查看磁盘信息的工具各有侧重:lsblk和fdisk适合基础设备信息,df和du关注空间使用,iostat和iotop用于性能分析,smartctl则侧重健康状态检测,结合实际需求选择合适的命令,并定期监控磁盘状态,可有效保障系统的稳定运行,对于生产环境,建议结合日志分析(如/var/log/syslog中的磁盘错误信息)实现主动预警。


















