尽管使用 hdparm 时间增加,但硬盘转速下降

尽管使用 hdparm 时间增加,但硬盘转速下降

我有一个通过 USB 连接的外部硬盘。设置硬盘的旋转/待机时间的常用方法似乎是使用 hdparm。

所以我跑去sudo hdparm -S 200 /dev/sdb

/dev/sdb:  setting standby to 200 (16 minutes + 40 seconds)

SG_IO: bad/missing sense data, sb[]:  f0 00 01 00 50 40 c8 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

我记得以前尝试过这个,但没有收到 SG_IO 的额外消息。现在看来,无论我设置的值是多少,驱动器在空闲大约一分钟后就会停止旋转。它甚至在工作时多次上下旋转,这会带来恼人的延迟,而且我认为保持运行对驱动器的健康更有好处。

我还没有找到方法来查看该值是否真的设置了,但我可以针对 APM(高级电源管理)级别进行设置:

sudo hdparm -B 196 /dev/sdb    
/dev/sdb:
 setting Advanced Power Management level to 0xc4 (196)
SG_IO: bad/missing sense data, sb[]:  f0 00 01 00 50 40 c4 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 APM_level  = 196

$ sudo hdparm -B /dev/sdb    
/dev/sdb:
 APM_level  = 196

系统是Arch Linux,内核为3.17.6。

驱动器为什么会停止旋转?如何避免这种情况?

更新

hdparm有以下选项,但命令的结果相同:

--prefer-ata12 使用 SAT(SCSI ATA 转换)协议时,hdparm 通常尽可能使用 16 字节命令格式。但有些 USB 驱动器外壳无法正确使用 16 字节命令。此选项可用于强制对此类驱动器使用较小的 12 字节命令格式。对于无法使用 12 字节格式完成的操作(例如超过 28 位的扇区访问),hdparm 仍将恢复为 16 字节命令。

相关内容