HDDのヘッド退避による省電力機能はWDのIntelli Parkが有名だが、最近のSeagate製HDDにももれなくついてくる。この機能はHDDの寿命を著しく縮める癖に消費電力低減効果はほとんどないのではっきり言って有難くない。むしろ、○○○タイマー的なx万時間通電したら必ず壊れるようにするのが主目的ではないか?とすら思う。

これまでに使ってきたHDDで容量が足りなくなって買い替え・買い増しはあってもデータが読めなくなってというケースはほとんど記憶になかった。

しかしWDの悪名高い緑のWD10EADSとWD20EARSは本当にヤバかった。IntelliParkを知らずに使っていたので気づいた時にはC1(ロード/アンロードサイクル回数)の値が異常に高くなっていた。

程なくしてリードエラーが爆発的に増大、そしてEADS・EARS両方どんどんデータが壊れていく。新しいHDDにデータの退避は間に合ったが、大した期間も使ってないのにこんな壊れかたをするのは初めてだった。

そんなこんなでHDDが足りなくなり、色々考えた末に容量と値段優先で選んだのがSeagateのST4000 DM000だ。事前の情報収集でST4000にもIntelliPark相当の機能があると知って相当迷った。ただAPMでヘッド退避を頻繁に行うのが事前にわかっているのだからツールで対策できるだろうと判断したのですね。

ST4000を購入して最初に使用していたのが「DontSleep」というフリーソフト。定期的にアクセスしてHDDが省電力モードにならないようにしてくれるはずが全く効いてない事が後日判明。C1がけっこう進んじゃった。代わりに「CrystalDiskInfo」を常駐させてAPMを切る事に。こちらはちゃんと効果があった。

問題はLinux。
HDDの設定から普通にAPMが切れるのだけれども、再起動などでドライブの認識順がズレて効いてなかったりする。Linux Mintのアップデートでほんの数日使っただけなのに気づいたらかなりC1が進んでしまった。同時期に購入して同じ時間使い続けてるHGSTがわずか-1の99なのにST4000は88という有様。ST4000はLinuxをSSDにインストールした時に/homeパーテーションとして使う予定だからちょっと心配だ。

やはり臭いものは元から絶たなきゃダメ。常駐ものに頼るのではどうも信用できないので、HDDの設定そのものを書き換えるべきだろう。といってもSeagateからそのへんをいじれるツールは提供されてない

追記:SeaChest Utilities

ST4000DM000購入時には無かったのだが、知らん間にSeagateから純正ツールSeaChest Utilitiesが提供されてたようだ。(あったのに気づかなかっただけかも?)最初から用意しとけや!とも思うがよほど不評だったんだろうなぁ。

Linuxでのマウント補足

使用するHDDが固定されてて変更しないのであれば起動後にファイルマネージャーからマウントするのではなく、fstabでUUIDを指定して起動時にマウントすれば認識順の問題はクリアできる。

HDAT2でAPMを完全停止

そこで使用するのがHDAT2というツール。
ダウンロードページにはISO Imageなど色々あるが自分の場合はrufusを使ってfreeDOSをUSBメモリから起動可能にして、それにSingle programs版のHDAT2.exeをコピー。
念の為にBIOSからSATAの動作モードをAHCIからIDEに変更。
後はUSBメモリから起動してHDAT2を実行するだけ。

HDAT2上での手順は以下参照。

HOWTO: Disable Seagate DM001 APM Head Parking *Permanently*

~略

5. Boot from the USB drive to DOS prompt, type "HDAT2", <Enter>

6. * If the intended disk is not on the list, you need to change your SATA mode from AHCI / RAID to IDE temporarily and start over.

7. Select "Commands Menu", <Enter>

8. Select "Commands/Feature Sets", <Enter>

9. Select "Advanced Power Management (APM) Feature Set", <Enter>, <Y>, <D>, <Enter>

10. <Esc>, <Esc>

11. Select "Device Configuration Overlay (DCO) Menu", <Enter>

12. Select "Modify", <Enter>

13. Select "Security Mode Feature", , <S>, <Y>

** We only do some changes to be able to save DCO, since this item is disabled by default, removing it does not affect any disk functionality. Saving DCO will result APM setting being saved onto disk.

14. Keep pressing <Esc> until quit to DOS prompt.

15. Power off, all done!

略~

HOWTO: Disable Seagate DM001 APM Head Parking Permanently

楽勝かに思われたのだが、手順12の"Modify"から先へ進めない。ステータスがFROZENとなっており変更できないようだ。調べたところ、これはBIOSがセキュリティのためにロックしているとの事。マザーボード次第で通るのもあれば通らない物もあるらしい。

このまま諦める訳にもいかないのでFROZEN解除法を調べたところ、とあるフォーラムの書き込みにヒントがあった。「BIOSがロックしているんだからDOS起動後にHDDを認識させればいいんだよ(意訳)」

…方法は2通り思いついた。でも、SATA→USB変換だとHDDを認識しないって情報もあったからなぁ。HDDのマウンタ外して変換台に装着するの無駄骨になったら嫌だし。

……じゃあ、あれしかないよね!

他に方法を思い付かないので非常に直接的かつ暴力的な手段を選択した
やり方はあえて書かないが、想像通りだと思います。
真似して壊しても責任は取りません

結果は見事に成功でFROZEN状態の解除、APM disable設定を保存できた。Windows上で時間が経過してもC1が増加しないのを確認。これでようやくST4000をLinuxで安心して使えるようになった。

こんなバカげた機能は撤廃してほしいものです。

注意

HDAT2もSeaChest Utilitiesも非常に危険な領域までいじれるコマンドラインツール。マニュアルを読んでも使い方がわからないのであれば素直に諦めるのが吉。