服务器测评网
我们一直在努力

Linux检查磁盘的命令是什么,怎么查看磁盘使用情况?

在Linux系统运维中,高效、准确地检查磁盘状态是保障服务器稳定性和数据安全的核心技能。Linux检查磁盘的最佳实践在于分层诊断:首先使用dfdu命令快速定位空间与文件占用情况,其次利用lsblkfdisk理清磁盘分区结构,进而通过fsck修复文件系统逻辑错误,最后依靠smartctl监控硬盘硬件健康度。 掌握这一套组合拳,不仅能解决常见的“磁盘空间满”报警,更能提前预警硬件故障,避免灾难性的数据丢失。

Linux检查磁盘的命令是什么,怎么查看磁盘使用情况?

基础空间监控:df与du的深度应用

对于系统管理员而言,最常面临的告警便是磁盘空间不足,在这一层面,df(Disk Free)和du(Disk Usage)是不可或缺的黄金搭档

df命令主要用于查看文件系统的整体使用情况,推荐使用df -hT命令,其中-h参数以人类可读的格式(GB、MB)显示容量,-T参数则能显示文件系统类型(如ext4、xfs),这对于后续的故障排查至关重要。特别需要注意的是df -i命令,它用于查看Inode(索引节点)的使用率。 在实际运维中,经常出现磁盘空间尚有剩余,但Inode已被耗尽导致无法创建新文件的情况,这通常是由大量小文件引起的,此时仅看容量是无法发现问题的。

当确定某个分区空间紧张时,就需要使用du命令进行定向排查,直接运行du可能会扫描整个目录,耗时较长,因此建议结合--max-depth参数限制深度,例如du -h --max-depth=1 /,可以快速列出根目录下一级子目录的大小,为了迅速定位占用空间最大的“罪魁祸首”,可以使用管道组合命令:du -ah / | sort -rh | head -n 10,这条命令会递归显示所有文件和目录的大小,按倒序排列,并直接输出占用空间最大的前10项,极大地提升了排查效率。

磁盘结构与分区管理:lsblk与fdisk

在了解了空间使用情况后,必须明确磁盘的物理连接与分区逻辑。lsblk(List Block Devices)是当前查看磁盘结构最直观、现代化的工具。 它以树状图的形式展示块设备之间的关系,清晰地呈现了磁盘名称、大小、类型、挂载点以及所属的物理磁盘,使用lsblk -f参数,还能额外看到UUID和文件系统类型,这在修改/etc/fstab进行自动挂载配置时非常有用。

对于更底层的分区表信息,fdisk -l依然是经典且权威的选择,它能详细列出磁盘的扇区数、磁头数、柱面数以及起止扇区位置。在处理新硬盘或进行扩容时,fdisk(用于MBR分区表)和parted(用于GPT分区表)是必须掌握的工具。 现代服务器大容量硬盘(超过2TB)通常使用GPT格式,因此熟练使用parted进行分区操作是专业运维的体现,通过这些工具,管理员可以确认系统是否识别了新硬件,以及当前的分区布局是否符合业务需求。

Linux检查磁盘的命令是什么,怎么查看磁盘使用情况?

文件系统一致性检查:fsck的权威修复

当系统出现非正常关机、断电或者文件系统变成只读模式时,往往意味着文件系统元数据出现了损坏。fsck(File System Check)是修复逻辑错误的终极手段。

必须强调的是,fsck具有极高的操作风险,绝对不能在已挂载的根分区或数据分区上直接运行,否则会导致数据崩溃。 正确的操作流程是:进入单用户模式或使用Live CD/Rescue模式启动系统,确保磁盘处于卸载状态,针对不同的文件系统,fsck会自动调用相应的后端检查程序,如fsck.ext4fsck.xfs,对于XFS文件系统,修复工具通常是xfs_repair,在执行修复前,建议先使用-n参数进行只读检查,预判损坏程度;确认无误后,使用-y参数自动修复所有检测到的问题。定期在维护窗口期对非关键业务磁盘进行一致性检查,是预防文件系统逐渐腐化的有效手段。

硬件健康度预警:smartctl的专业诊断

软件层面的修复无法解决物理层面的故障,如坏道、电机老化等。smartctl是Linux下通过S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)机制监控硬盘健康状态的专业工具。

使用smartctl -H /dev/sda检查硬盘的整体健康状态,如果输出结果为“PASSED”,则表明硬盘目前通过了自检,为了获取更详细的信息,应执行smartctl -A /dev/sda,查看厂商特定的属性表。重点关注ID为5(重新映射扇区数)、197(当前待映射扇区数)和198(脱机无法校正的扇区数)的属性。 如果这些属性的Raw值非零且持续增长,通常意味着磁盘表面出现了物理坏道,硬盘即将发生不可逆的故障,此时必须立即进行数据备份并更换硬盘。smartctl还可以支持短测试和长测试,通过smartctl -t long /dev/sda可以全面扫描磁盘表面,虽然耗时较长,但能发现潜在的隐患。

进阶I/O性能分析与故障排查

除了空间和健康度,磁盘的I/O性能也是影响业务的关键。使用iostat -x 1命令可以实时监控磁盘的I/O使用情况。 重点观察%iowait(CPU等待I/O的时间百分比)和await(平均I/O等待时间),如果%iowait长期过高,说明磁盘已成为系统瓶颈;如果await值远超正常范围(例如机械硬盘超过20ms,SSD超过几ms),可能暗示存储设备存在故障或遭遇了I/O风暴。

Linux检查磁盘的命令是什么,怎么查看磁盘使用情况?

在处理“删除了文件但磁盘空间未释放”的疑难杂症时,专业做法是检查是否有进程依然占用着已删除的文件句柄,使用lsof | grep deleted命令,可以列出所有被删除但仍有进程打开的文件,找到对应的进程PID后,重启该服务或通过/proc/PID/fd目录清空文件描述符,即可在不重启服务器的情况下回收空间。

相关问答

Q1:为什么使用rm删除了大文件后,通过df查看磁盘空间并没有减少?
A: 这通常是因为该大文件仍被某个运行中的进程占用,在Linux中,当文件被删除但进程仍保持其文件描述符打开状态时,磁盘空间不会被立即释放,解决方法是使用lsof | grep deleted命令查找占用该文件的进程ID(PID),然后通过重启该服务或执行> /proc/PID/fd/FD_NUMBER来释放空间。

Q2:Inode耗尽导致的磁盘满问题该如何解决?
A:df -i显示Inode使用率100%时,说明磁盘上存在大量的小文件,解决思路是查找并删除这些小文件,可以使用命令find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -hr来统计哪个目录下的文件数量最多,定位后使用find命令配合delete进行批量清理,对于小文件过多的业务场景,建议使用ReiserFS或XFS等对Inode支持更好的文件系统,或调整格式化时的Inode密度。

希望以上的Linux磁盘检查方案能帮助您更好地管理服务器,如果您在实操中遇到更复杂的磁盘故障,或者有特定的排查场景,欢迎在评论区留言,我们一起探讨解决方案。

赞(0)
未经允许不得转载:好主机测评网 » Linux检查磁盘的命令是什么,怎么查看磁盘使用情况?