在Linux系统中,查看硬盘信息是系统管理和日常运维的基础操作,无论是监控存储空间、排查磁盘性能问题,还是规划存储方案,都需要熟练掌握相关的命令和工具,本文将详细介绍Linux系统中查看硬盘信息的多种方法,涵盖基本命令、高级工具以及不同场景下的应用技巧,帮助用户全面掌握硬盘状态监控技能。

基础命令:快速获取硬盘概览信息
对于初学者而言,df和du是两个最常用且最基础的命令,能够快速了解磁盘空间使用情况和文件目录大小。
df命令:查看文件系统整体使用情况
df(disk free)命令用于显示Linux系统中各文件系统的磁盘空间使用情况,默认以KB为单位显示,通过不同选项可以获取更详细的信息:
df -h:以人类可读格式(如GB、MB、KB)显示磁盘空间,这是最常用的选项。df -h会列出每个挂载点的总容量、已用空间、可用空间、使用率及挂载点路径。df -T:显示文件系统类型,如ext4、xfs、ntfs等,便于区分不同格式的分区。df -i:查看inode的使用情况,inode是Linux中存储文件元数据的关键结构,inode不足会导致无法创建新文件,即使磁盘空间仍有剩余。
示例输出中,Use%列直观展示了各分区的使用率,当接近100%时需要及时清理空间或扩容。
du命令:统计目录或文件大小
du(disk usage)命令用于递归计算指定目录或文件所占用的磁盘空间,与df关注文件系统不同,du聚焦于具体文件和目录:
du -sh:统计当前目录的总大小(-s表示汇总,-h以人类可读格式显示)。du -sh /var/log可查看日志目录的总占用空间。du -ah:递归显示当前目录下所有文件和子目录的大小,-a表示包含文件。du --max-depth=1:限制递归深度,仅显示一级子目录的大小,便于快速定位大容量目录。
块设备管理:lsblk与blkid查看硬盘底层信息
若需了解硬盘的物理结构(如磁盘分区、设备名称等),则需要使用块设备管理命令。
lsblk命令:列出块设备信息
lsblk(list block devices)以树状结构展示系统中所有块设备的信息,包括磁盘、分区、挂载点等:
lsblk:默认显示设备名、大小、挂载点等基本信息。sda表示第一块SATA磁盘,其下的sda1、sda2为分区。lsblk -f:显示文件系统类型、UUID(通用唯一标识符)和挂载状态,便于快速识别分区格式和挂载情况。lsblk -m:显示设备的权限、所有者和组信息,适用于权限管理场景。
lsblk的输出结构清晰,能直观展示磁盘与分层的层级关系,适合快速定位物理磁盘和对应分区。

blkid命令:查看块属性标识
blkid用于显示块设备的属性标识,包括文件系统类型、UUID、LABEL(卷标)等:
blkid:列出所有已识别设备的标识信息。/dev/sda1: UUID="1234abcd-5678" TYPE="ext4"表示分区的UUID和文件系统类型。blkid /dev/sdb1:指定设备查看特定分区的标识信息,常用于挂载文件时确认分区属性。
详细磁盘信息:fdisk与parted分区管理工具
当需要对磁盘进行分区管理或查看详细的分区表信息时,fdisk和parted是功能强大的工具。
fdisk命令:经典分区表操作工具
fdisk是基于MBR(主引导记录)或GPT(GUID分区表)的分区管理工具,适用于大多数Linux系统:
fdisk -l:列出系统中所有磁盘及其分区信息,包括起始扇区、结束扇区、分区大小和分区类型。/dev/sdb磁盘的分区表会以Device Boot Start End Sectors Size Id Type的格式展示。- 交互模式操作:直接运行
fdisk /dev/sdb进入交互模式,可通过p(打印分区表)、n(新建分区)、d(删除分区)等命令管理分区,适合需要修改分区结构的场景。
parted命令:支持GPT的高级分区工具
parted是比fdisk更现代的工具,对GPT分区表支持更好,且支持分区对齐等高级功能:
parted -l:列出所有磁盘及其分区信息,显示更详细的分区属性,如文件系统类型、标志位等。- 交互模式操作:进入
parted /dev/sdc后,可使用print查看分区表,mkpart创建分区,set设置分区标志(如引导标志)。
I/O性能监控:iostat与iotop排查磁盘瓶颈
若系统出现卡顿或响应缓慢,可能需要监控磁盘I/O性能,定位瓶颈所在。
iostat命令:统计磁盘I/O统计信息
iostat是sysstat包的一部分,用于监控系统CPU和磁盘I/O性能:
iostat -dx 2:每2秒输出一次磁盘I/O统计,-d表示仅显示磁盘信息,-x显示扩展统计(如%util、await等关键指标)。- %util:磁盘利用率,表示磁盘处理I/O请求的时间占比,超过70%可能意味着磁盘瓶颈。
- await:平均I/O等待时间(毫秒),值过高说明磁盘响应慢。
- r/s/w/s:每秒读写请求数,反映磁盘负载情况。
iotop命令:实时监控磁盘I/O进程
iotop类似于top命令,以实时列表形式展示各进程的磁盘I/O使用情况:

iotop -o:仅显示正在产生I/O的进程,方便定位高I/O消耗的进程(如数据库服务、大文件读写操作)。
智能健康监控:smartctl检测硬盘健康状态
为预防硬盘故障,可通过S.M.A.R.T.(自我监控、分析和报告技术)监控硬盘健康状态。smartctl是smartmontools包中的工具:
smartctl -a /dev/sda:显示硬盘的完整S.M.A.R.T.信息,包括温度、坏块数量、通电时间等关键健康指标。smartctl --health /dev/sdb:仅显示硬盘的健康状态,若显示“PASSED”表示硬盘健康,“FAILED”则需立即更换。
S.M.A.R.T.信息中的Reallocated_Sector_Ct(重分配扇区数)和Current_Pending_Sector(当前待修复扇区数)是重要的预警指标,数值升高可能预示硬盘物理损坏。
根据场景选择合适的工具
Linux查看硬盘信息的方法多样,需根据实际需求选择工具:
- 快速查看空间使用:优先使用
df -h和du -sh。 - 了解物理设备结构:
lsblk -f和blkid最直观。 - 分区管理:
fdisk(MBR/GPT基础操作)或parted(高级功能)。 - 性能排查:
iostat(统计信息)和iotop(实时进程监控)。 - 健康预警:
smartctl(S.M.A.R.T.检测)。
熟练掌握这些命令,不仅能有效管理磁盘空间,还能提前发现硬件故障,保障系统稳定运行,在日常运维中,建议结合多种工具综合分析,确保对硬盘状态有全面把控。


















