我有一個透過 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 位元組命令。