お勉強:Windows - メンテナンス&トラブルシューティング
覚えておくと役に立つかもしれないこと。
初稿:2016年 最終更新:2021-03-08
こういうメモを残して置くと出先で何かあったとき便利に違いない。
ハードディスクトラブル
症状によって復旧方法は違う。
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
ブートセクタの操作…具体的には MBR や GPT などのパーテーション情報を任意に編集するツール。DISKPART の高機能版といった印象で、Windows ソフトながら動作はコンソールで行う。選択した HDD の、現在読み取れるブートセクタ情報をもとにアタリをつけたパーテーションの候補を提示してスキャンする Quick Search 、総当たりでシリンダをスキャンしパーテーションの境界を拾い集める Deeper Search の二段構えとなっている。ブートセクタから読み取った情報が実際の内容(吹っ飛ぶ前の状態)と一致するなら前者、整合性が取れない、もしくは候補が存在しないなら後者。つまり何が正しいか自分で判断する必要があり、おまかせで自動修復してくれるわけではない。
ブートセクタの情報は、いうなれば戸籍や区画整理のための法基準みたいなもの。法基準と実際の区画にズレがあると自分の土地に他人の家が立ってたり戸籍の住所が河川敷だったり。いやそれはないか。さらに統廃合や法改正などによって昔と今で地名が異なる地域があるように、何度かパーテーションを切り直した HDD だと候補もいっぱい表示される。
作業レベルは Low Level Format に近いので、正しい情報に編集すれば基本的にノーダメージで復旧できる反面、選択を間違うともはや打つ手のない自分で自分にトドメを刺すウィナー・テイク・オールでもある。作業の際は慎重に。最低でもジオメトリの概念くらい頭に叩き込んでから、できれば平時に浮いてる HDD を使って操作のシミュレーションをしておくといいかも。
そんなわけで、BIOS では認識できてるのにファイルシステムが検出されないようなときに役立つが、作業工程は少ないものの本稿で取り上げたツールの中でもっとも敷居が高いため、使うなら DISKPART コマンドで何ができるか理解できるようになってからのほうがよいうに。
ポイント
- よくわかんなかいままうかつにいぢらない。
- 「Recuva と TestDisk と HDD Regenerator どれが最強?」などとアホな質問する前に、まずはどんな症状なのかを掌握すること。
- これらのツールによる復旧は BIOS レベルで認識できるのが大前提(少なくとも Windows 環境は※)。電源入れてもプラッタの回ってる音がしないとか、そういうのは無理。
- 最近はセクタサイズが 4096バイト( 4K ネイティブ)の HDD や SSD が登場し、これも復旧の妨げになり得る。
- システムドライブの障害で OS が正常に起動しなくなった場合、余計なことは考えず別のディスクへのクリーンインストール+データレスキューに切り替えたほうがよい。
- HDD トラブルに伴う作業は何であれ負荷が高い。重要なデータの復旧で万全を期すにはドライブのクローンを作成してそっちで作業するのがセオリー。その際、Amazon で数千円で買えるようなクローンスタンドはかえって症状を悪化させかねないこと(業務用 HDD デュプリケーターは 100万以上する)、また余計な I/O を挟むと認識の可否に影響したり接続の安定性が下がったり処理効率落ちたりすることから、作業の際には IDE / S-ATA の内部インターフェイスに直接繋ぐほうが確実(これに限らず因果関係をシンプルにするのは問題解決のキモ)。ただ OS 起動時に chkdisk が走らないよう注意。
- 不良セクタだらけだった HDD のパーテーション情報が消失しうっかり再フォーマットしちゃった!といった複数のトラブルを抱えているケースでは、階層の低いトラブルから順に対処。
- ときには数週間の長期戦となる。連続したアクセスで HDD が高温になると新たなエラーを引き起こす可能性があるので冷却はしっかり(せめて作業環境の室温だけでも常に低めで)。作業マシンの不用意なシャットダウンにも注意。
- 単純な削除や人為的なミスを除き、障害のあった HDD は原則見捨てる方向で。再利用するにしてもいつ消えても構わないテンポラリ的な範囲に留めておく。それができりゃ苦労しねえか。
- データの量によっては復旧先として大容量の空き領域が必要となるが、手元にない場合は準備できるまで問題のドライブをマシンから外し、トラブルの拡大を抑える。
- 単独の環境はもちろん複数のマシンを運用してる人も含め、OS のインストールされたシステムパーテーションがトラブったときに備え上記の神器や ULTIMATE BOOT CD など復旧ツールのブート CD や ブート USB などを平時から用意しておく。Ubuntu や KNOPPIX もあるとさらによし。
- 平時にバックアップを取る際、実データのほか現在のシステム情報(ストレージでいえばパーテーションID、ファイルシステム、クラスタサイズなど)も残しておくといろいろ役に立つ。
- どうにもならないものについては潔くあきらめる。
※ FreeBSD には atacontrol という上級呪文が。
SSD は?
HDD についてはわしなりのサルベージノウハウがそれなりに蓄積されているのだが、問題はいま主流の SSD なんだよねえ…。
ファイルの削除ひとつとっても HDD であればディレクトリ情報の操作により OS から見えなくするだけだが、SSD は NAND の読み書き単位がセクタサイズと一致しないためダイレクトオーバーライトができず直接消去される※。またデータの連続性についても SSD ではウェアレベリングによって同じセルに書き込みが集中しないよう意図的に分散される(そもそも HDD のような連続したエリアという概念がない※)。こうした特性によって個人でどうにかなるのはせいぜいファイルシステム上のトラブル( Recuva で解消できる程度)までで、一定線( trim 命令後のデータや物理障害など)を超えるとデータ復旧のハードルがおそろしく跳ね上がる。こうなったらもうおとなしく業者に依頼するか潔く諦めるしかない。というか最初から SSD は復旧できない前提で普段からアクティブな対策を取るべき(要はバックアップよ)。
※ NAND では読み書きの最小単位をページ、消去の最初単位をブロックと呼び、前者は 4KB~8KB、後者は 512KB~2MB が一般的。HDD との互換性のため OS 上の読み書きは SSD でもセクタ単位となっているが、内部ではページにせよブロックにせよ管理単位が異なることに注意( SMR の HDD が抱える問題に近い)。なお実際の消去は trim コマンド発行タイミングとそれに対する振る舞い(実装依存)により左右されるが、数時間のうちには処理される。
※ HDD の論理アドレスは内側のトラックから順序良くアドレスが割り振られており(いわゆる LBA)、ファイルの書き込みも通常はこれに従ってシーケンシャルに記録されるのでディレクトリ情報が吹っ飛んでもデータを拾いやすい。SSD のアドレスはコントローラ依存かつ書き込み回数が均等になるように分散されるのでディレクトリ情報がないとファイルの復元は不可能に近い。
なお SSD を含む NAND 系メディア特有の問題として、通電しない状態で長期間放置すると電荷がなくなり記録内容が消失する、いわゆる蒸発と呼ばれる現象があるが、常温であれば数か月や数年で消えるようなことはまずないので稼働機ならまず心配無用。考えられるのは大容量に換装して「何かに使うかも?」と残しておいたようなケースだが、そんなディスクに大事なデータを入れとくなと(うちにも 10年選手の HDD がゴロゴロ転がってるけど、その中にしかないデータってのを極力残さないようにしてる)。
まあ普通の人はクラウドにバックアップ取るのが無難だよ。最近のクラウドストレージはたいてい履歴管理もできるようになってるから上書き対策にもなるし。ついでに各種デフォルトの保存先をデスクトップにしないでおく(デスクトップを同期対象にできなくもないけど一覧表示するのに別窓立ち上げなきゃいけないし、ドラッグアンドドロップでコピーする場合もマイコンピュータとかショートカット避けるのがめんどくさい)。
どうしてもローカルにこだわるなら 4TB くらいの外付け HDD 2台用意してそこに定期的にバックアップするほうがよいよ、スマホとかのデータも含めて※。それぞれパーティション切って片方はディスククラッシュ対策に EaseUS Todo Backup でディスクイメージまるごと保存、もう片方はファイルの削除や上書き対策に BunBackup で世代管理でもしてやればカンペキじゃろ。2台用意するのは、バックアップ先の HDD のほうが先に飛ぶ可能性が決して低くないので。個人的にはバックアップ先の 2台は RAID でミラーかけるよりそれぞれ別にバックアップしたほうが、いざ飛んだときの復旧が楽と思う。
知らない人が多そうだけど、Android 7 以降や iOS 8 以降の iPhone など、現在のスマホはファイル単位の暗号化がデフォルトになっていて、データのサルベージは基本的に不可能。
ちなみにガワ付きの外付け HDD を 2台買うよりクローンスタンドのほうが安いし使いまわしも効いて良さそう映るかもしれないが、外付けスタンドはあくまでも暫定的なもので長時間/長期間の安定利用に耐えうるものはないと思ったほうがよい。これまでセンチュリーとか玄人志向とかロジテックとかいくつも試してきたわしがいうんだから間違いない。
外付けエンクロージャーの中でもこの手のお立ち台タイプがイマイチ信頼できないのはやっぱオタク向けって扱いなんだろうね。どうしても使わざるを得ない場合( NVMe SSD のクローンとかね)、せめて USB ケーブルだけでも高品質なものに替えるべき。適当なケーブルの USB 接続はマジでトラブルのもとなので。
そんなわけで、スマホ含め NAND メディア全盛でデータの肥大化も著しい現在、クラウドにせよローカルにせよバックアップの手間と費用をケチるんじゃないよ!というお話。業者にレスキュー頼んだら桁間違ってるんじゃないかってくらい料金ぶん取られるからな!あとよくある勘違いだけど「バックアップを取ったから消していい」わけじゃないぞ!