exB - extreme B-AREA -

無敵の中年男性!的確な中年男性!難攻不落の中年男性!

お勉強:Windows - メンテナンス&トラブルシューティング

覚えておくと役に立つかもしれないこと。

初稿:2016年 最終更新:2017-04-22

こういうメモを残して置くと出先で何かあったとき便利に違いない。

ハードディスクトラブル

症状によって復旧方法は違う。

HDD トラブルシューティング三種の神器

わしはハードディスクトラブルをおおむね 4つのパターンに大別している。下に行くほど階層が低い。

  • ファイルの削除に起因するもの
  • セクタ不良に起因するもの
  • ブートセクタ(パーテーションテーブル)に起因するもの
  • 物理的な障害に起因するもの

このうち物理障害(プラッタやヘッドの損傷、基盤の破損、水没など)についてはおよそ個人でどうにかなるものではないので見限るか業者に依頼するかの二択。残る3つのパターンに対応するツールの定番がハードディスクトラブル三種の神器である。例によってわしが勝手にそう呼んでるだけだが。

Recuva

ファイルシステムから可能な限りセクタ情報を検出し、ゴミ箱を空にしたりフォーマットによって OS から完全に削除されたデータの復元を試みるツール。高い検出能力に加え操作体系も見通しがよく、メニューやファイル名も日本語対応済みなのでとても使いやすい。セクタの状態によって復元レベルが四段階で表される。4GB を超えるファイル※も含め該当するデータのセクタが上書きされていない限りほぼ復元可能だが、言い換えれば上書きされたセクタは復元できない、ということ。

※ NTFS は 4GB 超のファイルに限り、ゴミ箱から削除すると File Size や Data run list などの属性情報を 0 クリアする。この誰得の謎仕様に対応してるのは Recuva と R-STUDIO くらいで、大半のツールは検出してもファイルサイズ 0KB となり復元できない。

復元されたデータはファイルシステムとしての整合性が取れている、というだけで内容まで保証されているわけじゃない。開けないときはスッパリあきらめる。

Win 32 専用。シェアウェアだが有料版との差は仮想 HDD のサポートと自動アップデートくらいなのでフリー版で十分。長いこと ISO 9660 形式のトラックイメージに非対応だったが Ver.1.5 でサポートされ、さらにUNIX系の ext3 / ext4 も加わった。USBメモリ や SD、CF といったフラッシュメモリのデータも拾えるが、HDD や SSD に比べると復旧の可能性はやや低いという話も(試す機会がないのでよくわからん。

そんなわけで、通常の操作の範囲で消失したデータであれば、たいてい Recuva で復元可能かどうかジャッジできる。ただしほかにも障害を抱えていることは往々にしてあり、手順を誤ると復旧作業による負荷が致命傷を与えることになりかねない。

HDD Regenerator 2011

全てのセクタに対してリフレッシュ動作を行うツール。OS がストレージにアクセスした際、システムに不良セクタと判定されていない“不良セクタ予備軍”に引っ掛かると読み込みをスキップできずひたすらリトライを繰り返すが、その間ほかの処理はほぼフリーズしてしまう。こうした不良予備軍(何)や代替処理保留セクタ、回復不能セクタなどをリフレッシュによって通常セクタに回復、さもなくば強制的に不良セクタと判定し代替処置させる。ひらたくいえば読み込みの妨げになっている部分を解消してやるってこと。その部分にあった情報がうまく代替処理されるとは限らないが、巻き添えで他のファイルの読み込みまで足を引っ張られることがなくなるわけだ。つまりセクタの回復=ドライブの修復であってデータの復旧ではないことに注意。

とても優秀なツールなんだけど処理は激遅で作業時間はひじょーに長い。テラバイト級なら少なくとも一週間は掛かる。さらに試用版は一度のスキャンで回復できるセクタがひとつだけなので不良セクタを見つけるたびに回復と再起動を繰り返す。しかも最初から。大量の不良セクタを抱えた大容量 HDD では処理の完了を見るよりも先に自分があの世に旅立ちかねないので、HDD Tune を併用しスキャンを任意の範囲に限定することで作業時間を最小限に留める工夫や、処理の済んだ位置からスキャンを再開するバッチファイル(改造版と呼ばれる)も編み出されている。まあ、常に HDD トラブルと背中併せな人(誰)はおとなしくレジストしたほうがよいと思われる。わしがポチったときは50ドルだったのに今は90ドルもするのな。

ちなみに HDD Regenerator 2011 では OS 上の仮想ウインドウでの操作も可能になりものすごい楽になったけど、本来はブートメディアから起動して排他的に使う DOS ユーティリティ。すべて GUI で完結する、この手のソフトでは珍しい純国産のシェアウェア FromHDDtoSSD (フリー版あり)も存在するが、OS が起動していないと当然使えない。

そんなわけで、あるファイルやフォルダにアクセスすると OS がしばらく固まる、なんてケースで役立つ(この状態をほっとくと HDD の負荷が高まり、やがて沈黙する)。ちなみにエクスプローラーで表示されるファイルリストはアロケーションテーブル(FAT)やマスターファイルテーブル(NTFS)のディレクトリ情報なので、そこにアクセスできるうちは HDD に死が迫っていても往々にして気づかないのよね。

TestDisk

ブートセクタの操作…具体的には MBRGPT などのパーテーション情報を任意に編集するツール。Windows ソフトだが動作はコンソールで行う。選択した HDD の、現在読み取れるブートセクタ情報をもとにアタリをつけたパーテーションの候補を提示してスキャンする Quick Search 、総当たりでシリンダをスキャンしパーテーションの境界を拾い集める Deeper Search の二段構えとなっている。ブートセクタから読み取った情報が実際の内容(吹っ飛ぶ前の状態)と一致するなら前者、整合性が取れない、もしくは候補が存在しないなら後者。つまり何が正しいか自分で判断する必要がある。おまかせで自動修復してくれるわけではない。

マスターブートレコードやジオメトリの編集など

ブートセクタの情報は、いうなれば戸籍や区画整理のための法基準みたいなもの。法基準と実際の区画にズレがあると自分の土地に他人の家が立ってたり戸籍の住所が河川敷だったり。いやそれはないか。さらに統廃合や法改正などによって昔と今で地名が異なる地域があるように、何度かパーテーションを切り直した HDD だと候補もいっぱい表示される。

作業レベルは Low Level Format に近いので、正しい情報に編集すれば基本的にノーダメージで復旧できる反面、選択を間違うともはや打つ手のない自分で自分にトドメを刺すウィナー・テイク・オールでもある。作業の際は慎重に。最低でもジオメトリの概念くらい頭に叩き込んでから、できれば平時に浮いてる HDD を使って操作のシミュレーションをしておくといいかも。

そんなわけで、BIOS では認識できてるのにファイルシステムが検出されないようなときに役立つ。

ポイント

  • よくわかんなかいままうかつにいぢらない
  • 「Recuva と TestDisk と HDD Regenerator どれが最強?」などとアホな質問する前に、まずはどんな症状なのかを掌握すること。
  • これらのツールによる復旧は BIOS レベルで認識できるのが大前提(少なくとも Windows 環境は※)。電源入れてもプラッタの回ってる音がしないとか、そういうのは無理。
  • HDD トラブルに伴う作業は何であれ負荷が高い。重要なデータの復旧で万全を期すにはドライブのクローンを作成してそっちで作業するのがセオリー( HDD デュプリケーターを使えればなおよし。
  • 不良セクタだらけだった HDD のパーテーション情報が消失しうっかり再フォーマットしちゃった!といった複数のトラブルを抱えているケースでは、階層の低いトラブルから順に対処。
  • 余計な I/O を挟むと認識の可否に影響したりや処理効率が悪化するので、作業の際には IDE/S-ATA なりの内部インターフェイスを用いるのが原則(これに限らず因果関係をシンプルにするのは問題解決のキモ)。
  • ときには数週間の長期戦となる。連続したアクセスで HDD が高温になると新たなエラーを引き起こす可能性があるので冷却はしっかり(せめて作業環境の室温だけでも常に低めで)。作業マシンの不用意なシャットダウンにも注意。
  • 単純な削除や人為的なミスを除き、障害のあった HDD は原則見捨てる方向で。再利用するにしてもいつ消えても構わないテンポラリ的な範囲に留めておく。それができりゃ苦労しねえか。
  • データの量によっては復旧先として大容量の空き領域が必要となるが、手元にない場合は準備できるまで問題のドライブをマシンから外し、トラブルの拡大を抑える。
  • 単独の環境はもちろん複数のマシンを運用してる人も含め、OS のインストールされたシステムパーテーションがトラブったときに備え上記の神器や ULTIMATE BOOT CD など復旧ツールのブート CD や ブート USB などを平時から用意しておく。UbuntuKNOPPIX もあるとさらによし。
  • 平時にバックアップを取る際、実データのほか現在のシステム情報(ストレージでいえばパーテーションID、ファイルシステム、クラスタサイズなど)も残しておくといろいろ役に立つ。
  • どうにもならないものについては潔くあきらめる

※ FreeBSD には atacontrol という上級呪文が。