磁盘监控工具-smartmontools
smartmontools是一款开源的硬盘控制、监控工具,可以运行在 Linux,Unix,BSD,Solaris,Mac OS,OS/2,Cygwin和Windows上,它可以从启动光盘或启动软盘运行,支持ATA/ATAPI/SATA-3(到-8)位的硬盘和 SCSI硬盘,还支持磁带设备,它主要包括了两个实用程序:smartctl和smatd。利用它可以测试硬盘的健康状况,并在发生故障前进行预警。
smartmontools contains utility programs (smartctl, smartd) to control/monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) built into most modern ATA and SCSI disks.
Features
Schedule S.M.A.R.T. testing of your drive on a regular base with smartd
smartd prints log messages and triggers alert mails when a failure of your drive is predictable
它监控的硬盘必须有S.M.A.R.T特性,对虚拟驱动器无效,目前所有硬盘都有这个特性,如果这个功能没有开启,可以通过如下两种方式开启:
1.通过BIOS设置操作
2.通过smartctl命令操作
SMART技术必须在主板支持的前提下才能发生作用,而且 SMART技术也不能保证能预报所有可能发生的硬盘故障。SMART(SFF-8035i) 是硬盘生产商们建立的一个工业标准,这个标准就是在硬盘上保存一个跟执行情况,可靠程度,读找错误率等属性的表格。所有属性都有一个1byte(大小范围1-253)的标准化值,还包含另一个1byte的关键阶段值,如果属性表格内某个数据接近小于或达到关键阶段值,表明硬盘工作不正常了。
1、SMART是什么,适用哪些场景?
SMART 全称是Self-Monitoring, Analysis and Reporting Technology(自我监测、分析与报告技术),是硬盘内置的一套“自检系统”。它会持续跟踪硬盘的硬件状态,比如扇区磨损、电机性能、温度等,把这些数据整理成“指标”,我们只要看懂这些指标,就能判断硬盘的健康程度。
重点适用场景
1. 新硬盘到手时:最关键的一步!检测是否为“全新未拆”“零磨损”,避免买到翻新盘、清零盘(伪装成新盘的旧盘);
2. 二手硬盘验收时:判断硬盘的损耗程度,比如使用时长、坏道情况,避免踩坑;
3. 日常使用中:定期检查(比如1-3个月一次),提前发现潜在故障,及时备份数据;
4.电脑出现异常时:比如开机变慢、文件打不开、蓝屏,先查SMART,排除硬盘问题。
2、SMART指标到底看什么
SMART指标有几十项,但对多数人来说,不用逐一研究,重点关注「故障预警类」「寿命损耗类」「温度类」这三类即可,其他指标可忽略。
先明确一个关键规则:大部分指标“数值越低越好”,部分指标(如剩余寿命)“数值越高越好”;若指标出现“警告”、“异常”,或数值持续上升,必须警惕。
1. 故障预警类(最关键,直接关系数据安全)
这类指标一旦异常,说明硬盘可能已经出现物理损坏,优先备份数据!
重新分配扇区计数(ID:05):硬盘检测到坏扇区后,会把坏扇区的数据转移到“备用扇区”,这个数值就是转移的次数。重点:数值>0就需要警惕,持续增加说明坏扇区在增多,硬盘物理损坏加剧,建议立即备份数据并更换硬盘。
当前待映射扇区计数(ID:C5):已经检测到有问题,但还没来得及转移数据的扇区数量。 重点:数值>0即有隐患,可能后续会变成坏扇区,需密切关注。
离线不可修正扇区计数(ID:C6):读取失败且无法修复的扇区数,常和C5指标同时出现。 重点:数值>0代表数据有丢失风险,硬盘已出现不可逆损坏。
CRC接口错误计数(ID:C7):数据传输时的校验错误,多由数据线、接口接触不良引起,而非硬盘本身故障。重点:数值持续上升,可尝试更换数据线、重新插拔硬盘接口。
2. 寿命损耗类(判断硬盘还能⽤多久)
机械硬盘和固态硬盘的寿命指标有差异,分开记更清晰:
1)机械硬盘:重点看「通电时间」「通电次数」,参考值:家用硬盘正常使用3-5年,通电时间超过2万小时、通电次数超过1万次,说明损耗较严重,建议逐步更换。
2)固态硬盘(SSD):重点看「媒体磨损指标(ID:E9)」「主机写入量(ID:F1)」「剩余可用块(ID:AB)」。 -媒体磨损指标:本质是剩余寿命百分比(如从100降至1表示寿命终结),低于30%需准备更换; -主机写入量:对比厂商标称的TBW(总写入字节数),判断寿命消耗进度; -剩余可用块:备用块剩余比例,接近0说明SSD冗余空间耗尽,寿命临界。
3. 温度类(避免硬盘过热损坏)
硬盘温度(ID:C2):正常工作温度范围:机械硬盘≤50℃,固态硬盘≤70℃。 重点:长期超过这个范围,会加速硬盘老化,可通过增加散热风扇、清理机箱灰尘改善。
新手避坑:不同厂商对同一ID的指标定义可能略有差异,不用纠结“数值刚好达标”,只要没有警告、数值稳定,就不必担心;若出现“警告”,无论数值大小,先备份数据!
4. 命令行工具(Linux/macOS)
适合用Linux、macOS系统的新手,无需安装图形化软件,输入简单命令即可查看,步骤如下:
1)Linux系统(以Ubuntu为例)
打开终端,输入命令安装工具:apt install smartmontools;
查看所有硬盘:smartctl --scan(会显示硬盘设备名,如/dev/sda);
查看详细SMART信息:smartctl -a /dev/sda(将/dev/sda替换为你的硬盘设备名);
快速检测健康状态:smartctl -H /dev/sda(显示“OK”即正常,“FAILED”需立即备份)。
2)macOS系统
打开终端,先安装工具:brew install smartmontools(若未安装brew,先执行brew安装命令);
查看硬盘设备名:diskutil list(找到需要检测的硬盘,如/dev/disk0);
查看详细SMART信息:smartctl -a /dev/disk0。
3)重点检查这三项:
(1)健康状态是否为“正常”(绿色);
(2)通电次数≤3次、通电时间≤1小时(工厂测试正常范围,超过则可能是翻新盘);
(3)05、C5、C6等故障指标数值是否为0,无警告。
3、自检与关键信息解读
#短时自检(几分钟)
smartctl -t short /dev/sda
#长时自检(更彻底,可能一小时以上)
smartctl -t long /dev/sda
#看自检进度与结果
smartctl -l selftest /dev/sda
#看硬盘记录过的错误日志(比自检更细的历史记录)
smartctl -l error /dev/sda
后台监控(smartd)
smartd 可在系统里常驻,定期检查并在触发阈值时发邮件/系统通知。GSmartControl 是 smartctl 的图形前端,跨平台(Linux/Windows/macOS)。点几下就能看健康总结、跑自检、看属性曲线,适合不习惯命令行的场景。底层调用的还是 smartmontools,功能一致。
关键参数解读(重点)
smartctl -a 会列出一长串属性,普通用户盯住下面这几项即可:
| 属性(ID) | 名称 | 看什么 | 危险信号 |
| 5 | Reallocated Sector Count(重分配扇区数) | 硬盘把坏块的数据搬到了备用块,记录搬了多少 | 非 0 且持续增长 = 盘正在自我修补,快坏了 |
| 197 | Current Pending Sector(待映射扇区) | 读不出、还没决定重分配的"不稳定块" | 大于 0 = 有读错误,随时可能变坏块 |
| 198 | Offline Uncorrectable(离线不可纠正错误) | 连重分配都救不回来的块 | 出现即可能有数据已丢失 |
| 9 | Power-On Hours(通电时长) | 累计运行时间 | 机械盘设计寿命通常数万小时,作参考 |
| 194 | Temperature(温度) | 工作温度 | 长期 > 50–55℃加速老化 |
| 12 | Power Cycle Count(通电次数) | 开关机次数 | 参考用 |
| NVMe: Percentage Used | 已用寿命百分比 | 固态擦写消耗 | 接近 100% 该换 |
| NVMe: Available Spare | 可用备用空间 | 预留 spare 剩余 | 低于厂商阈值即告警 |
| NVMe: Media and Data Integrity Errors | 介质完整性错误 | 读写校验错误 | 出现需警惕 |
单项"原始值"数字大不必惊慌(有些计数器本来就是累计值),要盯的是趋势——重分配扇区、待映射扇区、不可纠正错误这三项,只要从 0 开始涨,就是明确的衰退信号,应当安排换盘。SMART 看的是"硬盘控制器自己报的事",badblocks 则是主动对介质做读写测试,把读不出/写不进的块揪出来。
#只读扫描(不破坏数据,逐个块读取看能否成功)——慢但安全
badblocks -v /dev/sdb > badblocks.txt
#写入模式(会覆写数据!务必先备份整盘)
badblocks -wsv /dev/sdb
严重警告: badblocks -w(写入模式)会用测试数据覆写整个盘,原数据全部销毁。只在确认盘上数据已无价值、或已完整备份后才用。日常排查用只读的 -v 即可。
| 对比 | SMART | badblocks |
| 原理 | 读控制器内部计数器 | 主动读写每个块测试 |
| 破坏性 | 无 | 写入模式有,只读模式无 |
| 速度 | 快(读已有数据) | 慢(全盘扫) |
| 适用 | 日常健康监测 | 怀疑介质有坏块时深查 |
NVMe 固态盘的特殊关注
固态盘没有"咔咔响"这种机械前兆,它的寿命指标是:
·Percentage Used(已用寿命 %):从 0 涨到 100 表示保修擦写额度用尽,到 90%+ 就该规划更换。它本质就是"已写 TBW ÷ 厂商标称总寿命"的百分比,和 TBW 是同一回事的两种写法。
·Available Spare(可用备用空间):低于厂商阈值(常见 10%)会告警。
·TBW(总写入量):厂商规格里给的寿命上限(如 600TBW),配合 Percentage Used 看更直观。
·温度:NVMe 过热会降频,多数盘在 70–80℃ 起触发限速、80℃ 以上可能直接紧急断电保护;长期高温还会加速老化,注意散热马甲/主板散热片,笔记本可加散热垫。
注意:固态盘的"健康"和机械盘不是一回事——它很少"突然坏块",而是"慢慢擦写耗尽"。所以盯 Percentage Used 比盯重分配扇区更有意义。
满足任一条件,建议尽快迁移数据并更换:
| 信号 | 说明 |
| smartctl -H 显示 FAILED | 固件已判定濒危 |
| 重分配/待映射扇区持续增长 | 介质在恶化 |
| 出现 Offline Uncorrectable | 已有数据可能丢失 |
| 机械盘异响(咔咔/ ticks) | 磁头或电机故障前兆 |
| NVMe Percentage Used 接近 100% | 寿命将尽 |
| 频繁出现读写错误、文件损坏 | 介质不稳定 |
衰退中的盘可能随时彻底罢工,迁移要尽快动手,且迁移前先对当前盘做一次全量备份(哪怕盘还能读)——别赌"还能再撑几天"。克隆过程本身会给老盘加压,越拖风险越高。硬盘故障大多有前兆,监控健康是把"事后抢救"变成"事前换盘"的关键。用smartmontools 的 smartctl -H 看健康总结、盯住重分配/待映射/不可纠正三项趋势;怀疑介质坏道时用只读 badblocks -v 深查(写入模式会毁数据,慎用);固态盘重点看 NVMe 的 Percentage Used 与 Available Spare。发现 FAILED 或关键项持续上涨,立刻迁数据换盘——这一步比任何恢复软件都值钱。挂多块盘做 RAID,是不是就安全了?
4、常见问题
Q:SMART显示“正常”,硬盘就一定不会坏吗? A:不一定!SMART只能预警“物理故障”,无法预测“突然断电、摔落”等意外损坏,所以无论SMART是否正常,重要数据都要定期备份。
Q:二手硬盘通电时间1万小时,还能买吗? A:看情况!机械硬盘正常寿命3-5年(约2-3万小时),1万小时以上损耗较严重,故障概率大幅上升,优先选通电时间<5000小时的。
Q:固态硬盘剩余寿命80%,还能⽤多久?
A:正常家用(每天写入30GB左右),还能⽤2-3年,低于30%再考虑更换,平时注意避免频繁写入大量数据。
Q:检测时温度超过70℃,怎么办?
A:先停止检测,清理机箱灰尘,若为固态硬盘,可加装散热片;机械硬盘则检查机箱通风,避免长时间高负载使用。
更多关于它的使用可参考《磁盘状态监控和分析工具smartctl使用简介》与《硬盘 SMART 检测参数详解》。为与zabbix配合做硬盘监控,还有zbx-smartctl插件工具。
最新版本:6.4
官方主页:http://www.smartmontools.org/
项目主页:http://sourceforge.net/projects/smartmontools/