QA@IT

Windows 10 TP 9879 に更新後、(PUISオンにより?)OSが起動できなくなったディスクの復旧方法。

6497 PV

@ITの記事「diskpartのcleanコマンドでディスクの内容を消去する」についての質問です。
windows 10 technical preview build 9879を更新したら、OSが起動できなくなり、インストールDVDで修復を掛けてみた処、HDDがロックしている、解除してから修復を行ってくださいと言われました。電源を切って、再投入すると、今度はBIOSでHDDエラーになってしまいしまた。BIOSがHDDを認識しない、diskpartのlist diskコマンドでもHDDが現れませんでした。

HDDを取り外し、別のPCに接続しました。今度はBIOSでHDDエラーがなく、ディスク管理の画面でHDDが認識されてしました。只、win10TBが入っている領域は認識できませんでした。また、元のPCに接続すると、HDDエラーがまた出ました。

HDDを認識できるPCでdiskpartを実行、clean allをしました。暫く経って、I/O device errorが発生したため、要求を実行できませんでした。次にcleanコマンドを試しました。今度はエラーがなく、要求を実行しましたが、list diskでHDDが表示されなくなりました。ディスク管理でもHDDが現れませんでした。元のPCに接続し、電源を投入すると、HDDエラーはでなかったが、認識もされませんでした。HDDは回転もしませんでした。丸で接続していないみたいでした。

事後で分かったことは、9879のビルドにHDDをPUISの設定にしてしまうコマンドがあり、BIOS対応しないマザーボードはHDD認識しなくなります。本来HDPARMツールで解決できますが、私の場合、diskpartでI/O device errorになったため、ツールに反応しませんでした。今もHDDはpower downの状態で、何かHDDを認識させる方法はありませんでしょうか? よろしくお願いします。

  • field_onionさん、
    回答ありがとうございます。ご提案はHDDが認識されていることが条件だと思います。生憎、clean allを実行前はHDDが認識出来ていましたが、I/O device errorが出た後、どのPCでも全く認識できなくなりました。LinuxのGpartedを使ってbootしましたが、それも認識されませんでした。別の方法はありますでしょうか?
    -
  • こまかな状況はわかりませんが、PUISということはスタンバイなので(だから回転しないのですし)それを解除しないことにははじまらないかと思います。Gpartedがどのように認識するかわかりませんが、スタンバイ中のディスクのパーティション操作にも対応しているのでしょうか?またLinuxが古いとPUIS設定オプションを備えていない場合があります。 -
  • 回答に書いた事以外は特に思いついていません。最初のリンクも参考になると思います。 -

回答

保証はできませんので、大切なデータが含まれている場合や復旧できないと困る場合は業者などに見てもらう方がいいと思います。


PUISが Power-up in standbyの事であれば、Vistaの頃に同様の問題が起きてた気がしますね。

ちょっと状態というか程度がわからないので、もし私がその状況だったら試すことを書いてみます。
あくまで参考までに、実行する場合は自己責任で。

そもそも私にはPUISが原因であるかどうかも断定はできません。そうでなければ以下に示すことは的外れな対応です。
(PUISオフにするだけなのでこれ以上壊すことはないと思いますが)

概要

とりあえず認識できないPCに接続しても現状は意味がないので、認識できるPCに接続して、事故防止のためにその他のHDDは外します。
なるべく最新のLinux のlive DVDを入手します。雑誌についていたりしますので、そちらでも構いません。
live DVDというのは、インストールしなくてもLinuxが使えるやつですね。

Linuxを起動して、Linuxからhdparmを実行します。コマンドは後で示すリンク先にも載っていますので
そちらを参照しても構いません。

(多分おっしゃっているHDPARM ツールとはWindows上のやつなのでしょうが、今説明しているのはLinuxのhdparmコマンドになります。)

詳細

対象の特定

起動したLinuxのどこかにターミナル(コマンドプロンプトのようなもの)がありますので、

まずはディスクの識別というかWindowsでいえばドライブレターの様なものの確認です。
ディスクが1台なら /dev/sda なり /dev/hda なりになるかと思いますが、
これは fdisk -l で出ると思います。

下の例だと /dev/sda ですね。

root@virtual-machine:/tmp# fdisk -l

Disk /dev/sda: 64.4 GB, 64424509440 bytes
ヘッド 255, セクタ 63, シリンダ 7832, 合計 125829120 セクタ

念のためそれが目的のディスクか確認します。
指定するディスクはもちろん調べたやつに置き換えてください。

※ fdiskだと認識しない可能性もあるので見つけられない場合は、hdparm -i までであれば情報表示で危険ではないので /dev/sda や /dev/hda を試してみるといいかもしれません。

Ubuntuなら

$ sudo hdparm -i /dev/sda

CentOSなら

# hdparm -i /dev/sda

で出力内容を確認しましょう。

コマンドの実行

PUISをオフにするには -s0オプションです。 小文字の sです。

このコマンドは明確にデンジャラスと銘打たれてますので、自分が何をするのかわかった上で実行してください。

root@virtual-machine:/tmp# hdparm 

hdparm - get/set hard disk parameters - version v9.43, by Mark Lord.

Usage:  hdparm  [options] [device ...]

Options:
 -a   Get/set fs readahead
 ~略~
 -s   Set power-up in standby flag (0/1) (DANGEROUS)

実行するときは以下の様になります。(ディスクはもちろん環境に併せて)

Ubuntuなら

$ sudo hdparm -s0 /dev/sda

CentOSなら

# hdparm -s0 /dev/sda

fool proofがあるかもしれません。その場合は これをつけてねと言われている長いオプションも添えてください。

参考サイトはこちらこちら

こちらのサイトでも「回転してない」という話をみかけ、そこから復旧したようなので、参考になるのではないかと思います。
BIOSが対応していない状態で復旧しているようにも見えるので、認識していないマシンからでも実行できるのかもしれませんが、私なら疎通実績のある方を試します(それでダメならもうダメなんだろうし)。

リンク先の方もサポートセンターではないのでそのあたりはお間違え無く(私も違いますが)。

繰り返しますが、あくまで自己責任で。

あきらかに敷居が高ければ変な被害を増やさない様、別の方法を選ぶかあきらめるかされる事も検討してください。

同様のことができるのであれば、認識する方のマシン(Windowsでしょうか?)でHDPARMツールを使うのでもいいとは思いますが、
私昔GPTかなにかでドライブレター間違えて(接続位置の関係で思っていたのと違う並びになっていたため)ディスクやっちゃったことあって、別の大事なディスクには一切アクセスできない状態で実行する方をとるかな。

編集 履歴 (2)
ウォッチ

この質問への回答やコメントをメールでお知らせします。