Linux 中使用 smartctl 命令检查磁盘健康状态

在 Linux 上运维服务器或者自己用桌面版,最怕的就是硬盘突然挂掉,数据丢了真的欲哭无泪。其实现在的硬盘几乎都带 SMART 功能,可以提前查看健康状态、预估寿命、检测坏道和错误。

今天就用简单的方式,把 smartctl 从头到尾讲明白,安装、查看基本信息、看健康状态、读详细参数,一套搞定,Ubuntu、CentOS、服务器环境全都通用。


首先,smartctl 不是系统自带的,需要先装一下工具包,非常简单。

在 Ubuntu/Debian 下安装:

sudo apt update
sudo apt install smartmontools -y

CentOS/RHEL 系:

sudo yum install smartmontools -y

装好之后,我们第一步要先知道自己的磁盘叫什么。

查看本机磁盘列表:

lsblk

或者:

fdisk -l

一般硬盘是 /dev/sda/dev/sdb,NVMe 固态是 /dev/nvme0n1,记住这个名字后面要用。


先看最简单的:检查硬盘是否支持 SMART

sudo smartctl -i /dev/sda

这里你会看到:

  • 硬盘型号、容量、序列号
  • 是否支持 SMART
  • SMART 是否开启

如果显示 SMART enabled,就是正常的;没开的话可以用这条命令打开:

sudo smartctl -s on /dev/sda

最常用的:快速查看硬盘整体健康状态

sudo smartctl -H /dev/sda

正常会显示:

SMART overall-health self-assessment test result: PASSED

只要看到 PASSED 就说明硬盘目前没问题。

如果显示 FAIL 或其他警告,那就赶紧备份数据。


查看完整 SMART 信息(最实用)

sudo smartctl -a /dev/sda

这里内容比较多,几个关键项你一定要会看:

  • Reallocated_Sector_Ct 重分配扇区(坏道)
  • Current_Pending_Sector 待处理不稳定扇区
  • Power_On_Hours 通电时间
  • Temperature_Celsius 温度
  • UDMA_CRC_Error_Count 传输错误

这些值如果异常变大,基本就是硬盘快不行了。


手动做一次磁盘自检(短测试)

想更彻底一点,可以让硬盘自己跑个检测,几分钟就好:

sudo smartctl -t short /dev/sda

查看测试结果:

sudo smartctl -l selftest /dev/sda

长测试更全面(时间久一点):

sudo smartctl -t long /dev/sda

如果你是 NVMe 固态硬盘

命令稍微有点区别,加 -d nvme 即可:

sudo smartctl -a -d nvme /dev/nvme0n1

NVMe 一般会直接显示:

  • 可用百分比
  • 写入量
  • 温度
  • 可靠性状态

看得更直观。


简单总结一下:

  • 安装:apt install smartmontools
  • 查硬盘名:lsblk
  • 快速健康检查:smartctl -H /dev/sda
  • 看完整信息:smartctl -a /dev/sda
  • 跑自检:smartctl -t short /dev/sda

平时没事跑一下看看健康状态,能提前避开很多硬盘崩溃的坑,尤其是服务器和存重要资料的盘,真的特别实用。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress