使用smartmontools对硬盘进行long test任务显示interrupted的问题处理
前言
开篇Tips:本文根据chatgpt的答案进行整理发布。
问题描述
在debian下使用smartmontools对硬盘进行long test
smartctl -t long /dev/sda
终端会显示smartctl开始在后台对硬盘进行长测试,预计97分钟。
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 97 minutes for test to complete.
Test will complete after Wed Dec 18 16:41:14 2024 UTC
Use smartctl -X to abort test.
但实际每次检测了10%以后这个long test任务就中止了,用smart -a
可以看到检测记录
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 2968 -
# 2 Extended offline Interrupted (host reset) 90% 2967 -
# 3 Extended offline Interrupted (host reset) 50% 2337 -
可以看到最近的两次long test(Extended offline)在进度还剩90%的时候都被中断了。
问题解决
这个问题的原因其实很简单,因为硬盘检测几分钟以后就自动休眠
了。smartmontools的自检任务并不会让(usb外接的)硬盘保持运行状态,所以每次硬盘一休眠,自检任务就会被中断。
解决方法也很简单,让硬盘不要自动休眠即可。
linux下对硬盘进行电源管理用的工具时hdparm
。
hdparm -B 255 /dev/sda
参数释义:
- -B:这里指battery,电源管理
-B
的数值范围:
- 0:完全禁用电源管理功能(即硬盘不会进入任何省电模式)。
- 1 到 127:指定硬盘的电源管理级别。较低的值表示更积极的电源管理(例如,较频繁地进入休眠状态)。
- 128 到 254:表示较低的电源管理级别,但不会完全禁用。
- 255:表示禁用所有电源管理功能,硬盘将始终处于活动状态,不会自动进入睡眠模式或省电模式。