2020年3月12日木曜日

Seagate製HDDの故障を直した話 ~ST31000528ASの事例~

姉のPCが壊れました。



急に。本当に急に。



もともと何かにつけ、機械については悪い個体を引きがちという謎のジンクスがあった姉。



どういう症状かといいますと、Windowsが起動しない。



BIOSは立ち上がるのでマザーボード等は生きてる模様でしたが、



よくエラーを見ると、起動用のデバイスが見つけられません、と



そんな訳あるか、昨日まで元気にピンピンしとったじゃろ。



異音等は”あまり”しません。(すこしびっくりするくらい大きい異音は鳴った)



またBIOSの設定がおかしくなったのか?と思い見てみますが、全く。



BIOSの視界からHDDがそっくり消えてしまったみたいです。



おかしいなと思い型番等で色々調べてみると、seagate製のHDDには致命的なファームウェアバグがある!?という記事を発見。



結構有名だったみたいです。メーカーが非を認めたり。



まさかなと思いつつも、結果的にそのまさかでした。



結果の話をしますと、無事に治ったっぽいので、備忘録もかねて手順を記しておきます。



もし困っている人がいたら、修理に出す前に同じ方法で試してみてください。



ただもちろん、異音等が激しく鳴っている等の場合はディスクに傷がいってしまっている可能性も高く、下手に通電させ続ければ業者でも復旧できなくなったりもします。



この手の界隈では当然のことですが、くれぐれも自己責任でお願いします。



〇今回のHDD


→Seagate製HDD
Barracuda 7200.12
ST31000528AS
1TB
ファームウェアはCC46




このST31000528ASは件のバグ騒動でもなかなか症状報告がなかったようで



騒動の専用Wiki(https://w.atwiki.jp/seagatehack/pages/1.html)にも事例として報告している人は少ないです。



 しかし、しっかりとバグによる被害は発生したので、型番が違ってもファームウェアが違っても、起こるときは起こるし、ほぼ同じ方法で同じように直せるということです。



型番やファームウェア等はHDDの表面に張られたシールに書いてあると思います。



うちはこんなかんじでした。

もし書いていなければ、解析ソフト等を使って確認するか、デバイスマネージャ等で確認できるかもしれません。

解析ソフト→https://forest.watch.impress.co.jp/library/software/crdiskinfo/



〇どうやって直す?




今回の症状はBIOSからも認識されなくなる。



そこにいるはずのに話せなくなるといった感じですね。



詳しいことはわからないんですが、これはファームウェア(HDDを制御しているソフトウェア)によって他の端末からのアクセスをシャットアウトしている?(Wiki等では”ロック”と呼んでいる)ためだそう。



なんでそんなことが起こるのかもわかりませんが、こうなってしまうと通常の方法ではアクセスできません。



なので通常とは違う、特殊な方法を使ってファームウェアにアクセスし、コマンドを実行することでバグに働きかけます。



〇必要なもの


●作業パソコン
当該のHDDがWindowsの起動デバイスだった場合、他にパソコンがないと作業ができません。

以下PC、パソコンと言った場合は作業パソコンのことを指します。



こっち(PC)で制御するためのターミナルソフト
 →いろいろあるようですが、私は「TeraTerm」を使いました。

●TeraTerm
https://forest.watch.impress.co.jp/library/software/utf8teraterm/

普通に入れたらすぐ使えます。

このソフトからコマンドを入力してHDD内のファームウェアに働きかけます。



HDDとPCをつなぐコード類
→いろんな人がいろいろな方法を工夫して繋いでます。

私が試したのは

●USBーTTLシリアルアダプター(
→以下、FTDIチップと呼びます。

●SATA電源延長ケーブル(
→以下、電源ケーブルと呼びます(PCの電源等には今回全く触れません)
今回私の作業PCはデスクトップなのでSATAケーブルにしました。

デスクトップでしない場合(ノートパソコンでする場合)、デスクトップだが筐体の中を開けない場合、使えるSATAケーブルがないなどの場合は、SATAとコンセントとを直接つなぐ電源ケーブルが必要です。
 ↓に記述あり。

●アイネックス チップファン用電源交換ケーブル(これ)
→以下、アイネックスと呼びます。

の三点です。すべてAmazonで購入可能です。

工具類

●一番大事なのはHDDの基板を外すためのドライバーです。

六芒星のような形をしたものが必要です。サイズはT6.

普通の+などではできないのでホームセンターなどで購入してください。

●あとはケーブルを加工する際のニッパーなどでしょうか。


〇やり方

まずつなぎ方です。


PC

(USB接続)

FTDIチップ


上記の商品に付属のコードーーー(グランド端子)ーーーHDDの表面へ
       |
       |(送受信端子の部分をアイネックスと繋ぐ加工)
       |
HDDーーーSATA端子の”横についてる”シリアル端子



大きい方のSATA端子ーーー電源ケーブルーーーPCの電源ケーブルと繋ぐ


かなりわかりにくいですがこんな感じです。





順を追って説明します



○FTDIチップの準備



1.ドライバーを入れる(https://www.ftdichip.com/Drivers/VCP.htm)

上記URLにアクセスし、ドライバーをダウンロード&インストール

(Windowsの場合は、表のwindowsから右のcommen内の「setup executable」から)


2. 小窓のような端子は電圧を調整するもので、”真ん中と左(5V)”か”真ん中と右(3.3V)”にジャンパー(黒いパーツ)をつけて設定します。

工学に明るくない自分は、どっちでもいいと思ってしまいますが、一応最初は電圧が小さい右のほうに設定し、もし不具合が出るようであれば左に変えてやってみてください。

たぶんここが原因でエラーなどは発生しないと思います。

左の方の端子(USBと逆の方)の真ん中についてる黒いジャンパーは、説明書によると動作確認のためのものだそうですが、今回は必要ないので取り去ります。




○FTDIチップに付属のコードの加工

アイネックスと融合させます。
 最終的にこんな感じになります。

 まずFTDIチップに付属のケーブルをどのように接続するか決めてください。

 私はこのようにしました。
USB端子のように表裏はないので、どちらでも接続できます。

大事なのはGNDとTXDとRXDだけなので、各端子がどの色の線になるか端子の表裏で変わります。

画像のケーブルを反転して接続すると茶色から青までの順番が変わることがわかりますか。

これ自体はどっちでもいいんですけど、私はわかりやすく暖色系を中心に、赤がGND、オレンジがTXDに、黄色がRXDになるようにしました。

コードをカットしてしまう作業を伴うので、ミスがないようにしてください。

画像の端子と線の色、基板の文字をよく見てください。

私の場合、赤、オレンジ、黄色がそれぞれGND、TXD、RXDになるように接続します。

私と同じようにすると分かりやすいと思います。
 


赤・オレンジ・黄色の三つのコードの先(それぞれソケットが分かれてる方)をニッパー等でカットし被膜を剥いで導線部分を露出させます。

黒いソケットを切り落とすという意味です。



続きです。

アイネックスの”小さい方の黒いソケット”も赤黒両方の線をカットし同じように導線部分を露出させます。白い端子のすぐ近くをカットするのがおすすめ。

注意してください。アイネックスの小さい黒いソケットは残しておきます。

アイネックスの場合、不要なのは白い端子と”大きい方の”黒いソケットです。

以下、残った小さいソケット(とそこから伸びる赤黒のコード)を「アイネックス」と呼びます。

白いソケットの根元からすべてのコードを切り取って黒ソケットから赤黒の二本のコードが伸びる二つのパーツに分け、そのうち小さい黒ソケットの方を利用します、ということです。

大きい方の黒ソケットのパーツならびに白い端子はもう不要なので廃棄してかまいません。



オレンジと黄色をアイネックスの赤、黒どちらでもいいのでそれぞれとよじり合わせて通電するようにします。

どちらがRXDでTXDなのかは(見ればわかりますが)覚えておきましょう。

私はTXD(オレンジ)を黒、RXD(黄色)を赤としました。

できる人はハンダしてもいいと思います。私はよじっただけです。

一応テープを張って絶縁しましょう。



FTDIチップから伸びる赤はGNDといってアース接続のようなものなので、HDDの金属フレームに固定するつもりです。被膜をとって導線を露出させた後は放置です。



融合したアイネックスをHDDに接続します。


HDDの端子群です。


今回接続するのは、画像では一番左の金色の端子が四本見えている「COM端子」です。
(名前が正確じゃないかも。間違ってたら教えてください)


真ん中の小さいSATAは今回使いません。


右の大きいSATAはHDDの電源をとるのに使います。



このCOM端子、四本の金色の棒のうち、SATAの方(右側)からRX、TX、GNDとなっているそうです。
ここに接続します。


見にくいけどこんな感じ。


注意が必要です。


RXD(オレンジ、黒)をRX、TXD(黄色、赤)をTXに接続するんだなと思いがちですが、
ここは逆にしてください。

RXDをTXの方、TXDをRXの方。

すなわち、この場合オレンジ黒が一番右(SATA側)に、黄色赤をその一つ隣に、といった感じです。


そもそもRX/TXというのは周辺機器とPCで接続するときと、PC同士で接続するときと接続の仕方が逆なのだそうです。

今回の件で調べたときに周辺機器とはRX同士TX同士でつなぐという記述を見かけたのですが、今回のFTDIチップは逆だったようです。

もしうまくいかないときがあったらここの接続を一度疑ってください。



GNDの赤をHDDの金属フレームにテープ等で固定し、常に触れるようにしておきます。

HDDの方のCOM端子のGND(SATA側から三本目の金色の棒)には何も繋ぎません。何も繋がなくてもいけました。


HDDの電源は作業に使うデスクトップPCの電源から引っ張ってくるので、本来のSATAHDDと同じ使い方になるためGNDはいらないという判断です。



FTDIチップの方は、不意に大きな電圧がHDDやPCから来たら怖いので一応という感じです。たぶん。ほんというといらないと思います。念のため。



HDDの大きい方のSATA端子に買ってきたSATA電源ケーブルをつないでしまって、PCの電源装置ともつなげられるように”準備”します。

まだ電源にはつなげないでください。”準備”してください。


もし作業パソコンがノートで、電源装置なんか積んでないという場合は、こういう商品で電源をとります。HDDが治った後にバックアップ用ストレージとして使えるので一石二鳥ですね(?)



FTDIチップのUSBをPCに接続します。LEDが赤く発行すると思います。
ドライバーは入れましたか?


これでFTDIチップを通じてHDDがPCにつながったと思います。
まだHDDの電源を入れてないのでHDD内部は静かです。


〇PCの方から準備



PCのデバイスマネージャから、


ポート(COMとLPT)→USB Serial Port (COM x)
として認識されていると思います。


この(COM x)のXの番号を覚えておいてください。


クリックしてプロパティを開きます。

ポート設定→ビット/秒を38400に設定。

OK



TeraTermを起動します。

起動するなりウィンドウが出てくるので、シリアルを選択。

右のボックスからさっき確認したCOM番号を選択。


メニューバーから「設定」→シリアルポートをクリック。


設定を、
「ポート」→COMさっきの番号(すでになってるかな)
「スピード」→38400
「データ」→8 bit
「パリティ」→none
「ストップビット」→1 bit
「フロー制御」→none
に。


特にスピードは必ず38400で双方合わせてください。

文字化けの原因になるようです。



これで準備完了です。


〇操作

 (私はいきなり基盤を外す工程から始めていますが、基盤を外す前に、上記の準備完了状態のままHDDに電源をつなぎTeraTermで認識されるかどうかを見る工程を挟む人もいるようです。私もその工程を挟みましたがそれ自体はあまり必要ないことだとは思います。一度安全な状態でつないでみてエラーが起きないか確認するという目的ならしてもいいと思います。私も実際その工程を挟んだおかげで、RX/TXが逆だったりCOMポートのスピードがあっていなかったりとエラーを探せたので有用ではあると思いますが、必須ではありません。その工程を挟んでも端折っても特に問題は生じません。その工程について以下に説明します。)

(上記の準備完了状態のまま、HDDの電源をつなぎHDDを起動させます。それと同時にTeraTermが反応し、ある程度の文字列を表示させます。ここで文字化けが出たり反応しない場合は設定やつなぎ方が間違っています。文字列が出きって15秒ほどしたらCtrl+zを同時にちょんと押します(wikiやブログなどで^zと表記している人もいますね)。すると新しい行に「F3 T>」と表示されコマンド受け付け状態になります。ここまで行けばTeraTermがHDDを正常に認識しファームウェアにアクセスできる状態になります(更なるエラーが起こらないという意味ではありません)。ここまで出来たら(できなくても)一度HDDの電源を落としTeraTermのメニューから「ファイル」→接続断で接続を切ります。エラーなどが起こった時も同じようにして最初からやります。)



本番になります。


”電源をつなぐ前”の状態の時に、特殊なドライバーを用いて基盤のネジを外します。

そうそう壊れることはありませんが一応基板は優しく、できるだけ端を持って扱ってください。ネジは失くさないように。

すべて外すと基板が本体に接続される部分が二つ見えます。クッションのスポンジは取らなくていいです(取れとしているブログも見かけますがパーツが増えるだけなので必要ありません。もし型番の違いでスポンジが決定的に邪魔なら外しましょう。外しても外さなくてもどちらでも大丈夫です)。

ここを絶縁します。紙などを用いて被せ、その上に基板を置き直し端のネジを少し閉めます。
基板が動かないように、紙が後で引っ張り抜くことができるくらいの締め具合です。


この方→http://blog.hi-beam.biz/?p=754が参考にしやすいですが、この方は一か所しか絶縁していません。

一応真ん中に近い辺りの方だけ絶縁すればいいみたいなんですが、私は一応紙を敷いて二つとも絶縁しました。どちらでもいいです。

基板を取り去ってどこにもくっついてないから絶縁、ってやるのはおすすめできません。

このあと挟んだ紙を抜き去り基板を本体と接続させる作業があって、完全に基板を離したあとだと基板を取り付ける作業が必要で非常にやりにくいと思います(取り付けるときに変なとこに触れたらショート、最悪壊れます。)


二つとも絶縁する場合、端の方の端子は基板にかみ合う出っ張りがあって、紙をはさむ場合そこが邪魔なので、紙を切ります。
紙を上から見るとこんな感じ。私はちょっと心配だったので紙を二重に折りたたんで丈夫にして使いました。ちゃんと絶縁できるなら一重でもいいと思います。


上から順に


基板
紙紙紙紙
HDD本体


という構造になります。


ネジは角の長いもの二個とサイドの小さいもの二個を締めます。

ネジがネジ穴からこぼれなければ大丈夫です。強く締める必要はありません。


絶縁されました。


ちゃんと紙を抜き取ることができますか?確認して下さい。




電源をつなぎます。


絶縁されてるのでディスクは動きません。


TeraTermが反応します。



 これから先、基本的にTeraTermでのコマンド入力は毎度15秒ほど間を置いてから行ってください。早すぎるとエラーを起こすことがあるようです。念のため。



エラーが起こったら「ファイル」→接続断で接続を切ってください。


そのあとHDDの電源を入れなおしたタイミングでまたTeraTermが反応します。




〇コマンド入力


Ctrl+zを押すと


F3 T>


と表示されます。


/2と入力します。 エンター。


F3 2>


と表示。


Zと入力します。(一文字でゼット)


大文字です。


大文字でないとエラーを起こします。(早く言ってほしかった…)

すると


ExecuteSpinRequest

Spin Down Complete


と表示されるはずです。


エラーを起こしたらやり直しです。



この後一度TeraTermから離れて、基板に挟んだ紙を引き抜いて取り除きます。


ここで紙のセッティングの良し悪しが問われます。


ネジを締めます。付いてなかったネジ二つもこの時に締めます。


ネジは一か所でOKとする記事も見かけますが、同時にちゃんと締めないとエラーが起きたという報告も見つけました。



気を付けてください。ネジを取り落として基板上を転がるようなことがあればショートを起こす可能性もあり、最悪基板が死んでしまいます。


おすすめは、ネジが持ちづらくなるので絶縁手袋等はせず、紙等でできるだけ露出している基板を隠すかマスキングテープ等で処理をするかです。


この際に何か別の金属物に触れておいてください。静電気は恐ろしいです。



TeraTermに戻り、大文字のUを入力。


ディスクが回り始めます。


ExecuteSpinRequest

Spin Up Complete


と表示されると、次は/1と入力します。(間隔15秒開けてますか?)


 F3 1>


N1を入力。


この時に、



init SMART fail


と表示されるか、表示されないかで直後の工程が少し変わります。


表示されなかった人は、/Tと入力し


F3 T>


となったあと、「i4,1,22」と入力します。コンマも。




init SMART failと表示された場合は、


LED:000000CC FAddr:0024E481


このエラーが無限に出てくると思います。


こうなると一度HDDの電源を切ってください。

(ケーブルを抜く。HDD側の方が取れやすいです。外す際にHDDを動かしたりしないように慎重に。SATA端子は取れにくいのでUSBやコンセントの人はそっちを抜いたほうがいいと思います。どっちでもいいです。)


エラーが止まります。


すこし間を置いて(数秒から十数秒ほど)もう一度電源を入れるとTeratermが反応し最初のメッセージを出します。


最初と同じように、Ctrl+zを押して”F3 T>”状態にしてください。


また最初からやるの?と思うかもしれませんが、いいえこのまま次に進んでください。




init SMART failが表示された人もされなかった人も、ここから続きです 。


T>状態のまま、


m0,2,2,,,,,22


と入力します。


mは小文字、コンマ、途中のコンマは5個です。

そのあと、


Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 16, Max Certify

Rewrite Retries = not supported User Partition Format Successful - Elapsed Time 0 mins 00 secs

Zone re-format was skipped.

F3 T>


と表示されれば完了です。


「ファイル」→接続断して、HDDの電源を落とし、起動しなかったPCの方に繋いで確認してみてください。


BIOS等から認識されるようになっているはずです。




最後までエラーなく来れて、なおかつまだ壊れているということは多分ないと思います。


そういう場合だとHDDは案外無事で、Windowsのデータに致命的なダメージが入ってる可能性の方が大きいと思います。


まぁもしそうだったら、そもそも作業PCからSATA-USB接続で中身を見れるはずなのですが。



中身を見れない、BIOSが認識しない、でもこの方法でも治らない、とするとHDDの機械部分が物理的にいかれているかもしれません。


そうなると修理しかないと思います。


そういう経緯を業者に伝えて、読み込みヘッド等の交換を打診してみてください。




最後に私が参考にしたサイトを載せておきます。
知り合いではありませんが、貴重な情報を寄せてくださっています。
勝手になりますが紹介させていただきます。



問答無用。さん
http://denki-oyaji.cocolog-nifty.com/blog/2014/02/3-6047.html

N1と入力する過程で出るエラー(init SMART fail)を無視して電源切って続けるというソリューションを見つけた方です。この方は私と同じST31000528ASです。



Hi-BEAM blog さん
http://blog.hi-beam.biz/?p=754

macでの事例です。カモン9-KEというケーブルを改造して行う方法(このバグへの対応策としてメジャーなものです)を紹介しています。この方はST3500320SA。
(カモン9-KEというケーブルは、私の例からも明らかなように必須ではありません。このケーブルを使うとしているブログ等が多くみられるので、必須なのではないかと思われる方もいるかもしれませんから、念のため。このケーブルは現在のところ多分ですが秋葉原の濃いPCパーツショップとかに行かないともう手に入らないと思います。)



超絶はらへ('A`) さん
http://sunao.orz.hm/blog/?no=40

この方はST31000333ASです。基板を完全に外して行う方法でされています。
RX/TXの順番などの情報はここから得ました。



wiki
https://w.atwiki.jp/seagatehack/

当時2chの住人が頑張ってくれたようです。いうほどwikiには使える情報はない印象ですが、メニュー下の内線というところは参考になりました(Zの大文字忘れ等)
手順を示したPDFがあるのですが見れなくなっているので↓に張っておきます。
スクショだけど大丈夫だよね?もともと公開してるものだし…



色々調べていると各個体で割と症状に幅がありますが(ディスクが回る回らない等。私はディスクは最初から電源を入れれば回りました。)、発生が唐突であること、BIOSが認識しなくなること等は共通しています。


紹介されている症状と細かくは違うと思っても、Seagate製のHDDであればこの方法で治る可能性は十分にあると思います。




以上です



お役に立てましたら幸いです。



どちらにせよバックアップは日常的に取っておきたいものですね…





資料
手順PDFのスクショ


























0 件のコメント:

コメントを投稿