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