「TestDisk」の使い方

パーティションの復旧

※この記事は広告を含みます。

実行中 - TestDisk

「TestDisk」は、パーティションに関する情報を修正することで、
パーティションを復旧できるソフトウェア
です。
GNUライセンスなので、無料で使うことができます。

「TestDisk」は、記憶装置に残っているブートセクタの痕跡をたどって、
パーティションに関する情報を書き換えます。
やっていることはちょっと難しいかもしれませんが、「TestDisk」の操作自体は簡単です。
だからこそ、危険でもあるのですが。

「TestDisk」は、MBRGPTを書き換えます。
従って、パーティションテーブルの不具合で起動できなくなったパソコンも、
「TestDisk」によって復旧可能です。
ただし、逆もまたしかりで、
「TestDisk」の操作を誤ると、OSが起動できなくなることもあるので、
そのつもりでいてください。

また、「TestDisk」はデータを復元するソフトではありません
データを正しく書き換えるためのソフトです
※バージョン6.10で「Undelete」機能が追加され、ファイルの復元もできるようにはなりましたが。
「TestDisk」を使うということは、対象となる記憶装置を使い続けることを意味します。
記憶装置内に必要なデータがある場合は、データのバックアップを最優先してください
正常に認識できないハードディスクからでも、データを救出することはできます。

なぜ危機感をあおるようなことを冒頭に書いているかというと、
安易に「TestDisk」を実行して、OSが起動できなくなったり、
ハードディスクのデータを元に戻せなくなったりして、
「助けてくれ」という連絡をこれまでに何度も受けてきたからです。
※これだけ書いていても、年に数回は同様の連絡があります。

「TestDisk」を使用する状況は、多岐にわたります。
すべてを網羅するのは不可能なので、ここでは最も多いであろうケースを代表して書いています。
具体的には、パーティションテーブルの問題で、パーティションを認識できなくなった場合について
パーティションを誤って削除した場合も、これに含まれます。

従って「TestDisk」は、ここに書いてあるとおりに操作すればいいというものではありません
実際に目の前で起こっていることと照らし合わせて考え、実行する必要があります。
このページは、そのヒントとすべきものです。

「TestDisk」の入手

「TestDisk」の入手先は以下のとおりです。

ソフトウェアページ CGSecurity
ダウンロードページ TestDisk Download

DOS版、Windows版、Linux版等いろいろありますが、お使いのOSに合ったものを選んでください。

以下、Windows版の「TestDisk」をベースに説明していきます。
他のプラットフォームでも、「TestDisk」を起動した後の操作は基本的に同じです。

ダウンロードした「TestDisk」のファイルは、ZIPで圧縮されています。
ZIPファイルを解凍すると、「testdisk-(バージョン番号)」というフォルダができ、
その中にファイルが展開されます。
Windows版であれば、「testdisk_win.exe」というのが「TestDisk」の実行ファイルです。

OSを起動できない場合

パーティションテーブルに問題がある状況では、OSが起動できないこともあります。
そんなときは、CD等から適当なDOSやLinuxを起動して、
DOS版、Linux版の「TestDisk」を実行する必要がありますが、
面倒なので、Ultimate Boot CDを使うと楽です。
具体的な起動方法については、下記ページ参照。

「TestDisk」を「UBCD」から起動する

復旧対象のディスクについて

「TestDisk」による復旧の難易度は、簡単な順に、

パーティションが1つだけ < パーティションが複数ある < パーティションを変更したことがある

です。※残存ブートセクタの個数順。
従って、内蔵ハードディスクやSSDの復旧作業には特に注意が必要で、
逆に、外付けハードディスクやUSBメモリは簡単に復旧できる場合が多いです。(選択肢が少ないから。)

例として、古いパソコンの内蔵ハードディスクを使います。
論理構造が複雑で、復旧しにくいからです。
OSは「Windows 2000」、かつて「Windows Me」がインストールされていました。
パーティションをいろいろ区切った経歴があります。

初期状態 - ディスクの管理

事前のハードディスクの状態は、「ディスクの管理」で上の画像のようになっています。

「Dドライブ」は、パーティションを作っただけ、未フォーマット。
「Eドライブ」は、パーティションを作ってからNTFSフォーマット
最後の拡張パーティションは、「True Image」というソフト用のリカバリ領域です。

「TestDisk」実行前 - ディスクの管理

とりあえず、「Cドライブ」以外みんな削除してみた。

「TestDisk」の起動

実際に、「TestDisk」を実行していきます。
ここではWindows版なので、「testdisk_win.exe」を実行します。

ログを残すか - TestDisk

「TestDisk」は英語のソフトですが、気にしないでください。
キーボードのみの操作ですが、気にしないでください。
「TestDisk」の優秀な機能には代えられません。

「TestDisk」は、コマンドプロンプトのようなコンソール上で動作します。
でも、ほとんどカーソルキーと「Enter」キーで操作できるTUIなので、
純粋なコマンドプロンプトのCUIに比べれば、操作するうえでのハードルは低いです。

まず初めに、「TestDisk」の動作履歴をファイルとして残すか聞いてきます。
基本的に、「Create」を選択してください。
「Enter」キーで、次へ進めます。

「Create」や「Append」を選択すると、
「TestDisk」の実行ファイルと同じ場所に、「testdisk.log」というログファイルを作成します。
「Create」はログファイルの新規作成(上書き)、「Append」は追記です。
後で確認したり、第三者に情報提供する場合に有効です。
※当サイトの掲示板でも、質問の際にログファイルがアップロードされていると、状況がわかりやすいです。
万一操作を誤った場合にも、ログファイルがあると復旧の手がかりになります。

ディスクの選択 - TestDisk

「TestDisk」による復旧対象のディスクを上下カーソルキーで選び
「Proceed」を選択します。
接続順、容量、型番をもとに、対象のディスクを特定します。
※バージョン7.0では、ディスクに加えドライブまで表示されていましたが、パーティションの復旧が目的の場合はディスクを選択します。

「Proceed」=「次へ」、「Quit」=「戻る」です。
これらの表記は「TestDisk」使用中、何度も出てきますが、同じ意味です。

パーティションテーブル種別の選択 - TestDisk

パーティションテーブル種別を選択します。
「TestDisk」は、あらかじめ検出されたパーティションテーブル種別を選択しています
ただし、デフォルトで選択されているものが必ずしも正しいわけではありません。
「TestDisk」を使用する状況では、前提となる記憶装置のデータに問題がある場合が多いからです。

従来どおり、MBRのパーティションテーブルを使っていれば、「Intel」を選択します。
USBメモリやSDカードもこっちです。

一方、2TBを超えるハードディスクや、「Windows 8」以降のシステムディスク等で、
GPT(GUIDパーティションテーブル)を使っている場合は、 「EFI GPT」を選択してください。

パーティションテーブル種別がよくわからない場合は、下記ページ参照。

MBRディスクとGPTディスクの違い

「TestDisk」のメインメニューです。
「TestDisk」のすべてを説明するには、あまりに多機能かつ難解なので、要点だけ書きます。

Analyse パーティション構造を解析する。主に使用。
Advanced ブートセクタPBSの修復や、ファイル操作、イメージの作成を行う。
Geometry ディスクジオメトリの変更。
Options 「TestDisk」自体の動作オプション。
MBR Code 「TestDisk」によってMBRコード(ブートストラップローダ)を書き直す。※MBRディスクのみ。
Delete パーティションテーブルを「0」で埋めて消去する。※MBRディスクのみ。
Quit 戻る。

基本的に、意味がわからなければ、むやみやたらと操作しないでください。
「TestDisk」の操作は、正しく内容を理解していないと、新たなトラブルを招く恐れがあります。

ここではパーティションの復旧を目的としているので、「Analyse」を選択します。

Quick Search - TestDisk

メインメニューで「Analyse」を選択すると、
「TestDisk」が動作する前の、現在のパーティション情報が表示されます。
ここでまず、「Quick Search」を選択します。

ちなみに、「Backup」を選択すると、
「TestDisk」の実行ファイルと同じ場所に「backup.log」ファイルを作成し、
現在の情報を保存してから進行します。

「Quick Search」の結果 - TestDisk

スキャンが終わると、「Quick Search」の結果が表示されます。
先ほどの画面とは似て非なるものです。
注意して見てください。

パーティションの左に記載されている記号の意味は以下のとおり。

P プライマリパーティション
* アクティブなプライマリパーティション。※MBRディスクのみ。
つまり、システムパーティション。
E 拡張パーティション※MBRディスクのみ。
L 論理ドライブ※MBRディスクのみ。
D 削除されたパーティション。
つまり、復旧対象でないパーティション。

任意のパーティションを選択し、左右カーソルキーを押すと、
パーティションの種類を変更できます。
ただし、つじつまの合わない設定はできないようになっています
ここが、「TestDisk」が簡単かつ安全だと思う一番の理由です。

データの整合性がとれていれば、各パーティションは緑表示されます。
緑であれば正解、ではありません
緑の表示は、情報に矛盾がないことを示すものであり、
表示内容が正しいかどうかとは別の問題です。

削除してすぐのパーティションだったら、「Quick Search」であっさり見つかります。
そして、勝手に追加されてます。
修正が必要なパーティションがあれば、適宜変更してください。

なお、パーティションの種類がわからない場合は、
パーティションの解説ページでも参考にしてみてください。

ファイル一覧 - TestDisk

有効なパーティションかどうかを判断するひとつの方法として、
任意のパーティションを選択した状態で「P」キーを押すと、ファイル一覧が表示されます。

上の画面はフォーマットしただけのパーティションなので、「ごみ箱」すらないんですが。
でも、何もないということがわかります。

ファイル一覧の画面は、「Q」キーまたは「Esc」キー退出します。

Can't open filesystem. Filesystem seems damaged. - TestDisk

「Can't open filesystem. Filesystem seems damaged.」と表示され、ファイルを確認できない場合は、
選択したパーティションのファイルシステムを認識できません。
無効なパーティションの可能性が高いと考えられます。

「Quick Search」の結果 - TestDisk

以上の操作を経て、自分の希望通りにパーティションを設定したら、
「Enter」キーを押して先へ進めてください。
また、復旧対象のパーティションが見つからない場合も、一旦先に進めてください。

Deeper Search - TestDisk

「TestDisk」で修正した後の、書き込む予定のパーティション情報が表示されます。
多くの場合、ここですでに復旧対象のパーティションが表示されています。
表示されているパーティション構成で問題なければ、Writeの項目まで進んでください。

ちなみにこの事例では、復旧すべきパーティションが一部見つかりませんでした。
「Quick Search」では、先頭から見つけたブートセクタの順に、パーティションを設定していくようです。
このため、先に検出された正常っぽいパーティションの領域はスキャンされません。
その分、時間はかからないのですが。

従って、ブートセクタの残骸が多数存在するハードディスクでは、
「Quick Search」だと思うような結果を得られない可能性が高いです。

この状態で必要なパーティションがまだ表示されない場合は、「Deeper Search」を選択します。
時間はかかりますが、ハードディスク全体に渡ってパーティションの痕跡を探してくれます。

「Deeper Search」は、必須の操作ではありません
「Quick Search」で復旧対象のパーティションが見つかったのであれば、そこで書き込むべきです。
さもないと、「Deeper Search」は時間の無駄になるだけでなく、
不必要な選択肢を増やすので、復旧すべきパーティションが判別しにくくなります。

「Deeper Search」実行中 - TestDisk

様々なパーティションの履歴があるハードディスクに対して「Deeper Search」を実行すると、
途中で警告が出てくる場合があります。
逆に言えば、これらも含めて検出するのが「Deeper Search」の役割です。
基本的には警告を受け入れたうえで続行し、結果をユーザーが判断します。

Warning: number of heads/cylinder mismatches 240 (FAT) != 255 (HD)

等という警告内容の詳細については、下記ページにて解説しています。

ブートセクタとディスクジオメトリの関係 - 「TestDisk」によるブートセクタの修復

ここでは本題ではないので、説明を省きます。

「Deeper Search」は、非常に長い時間を要します。
大容量のハードディスク等、状況によっては、丸一日以上放置するつもりでいたほうがいいです。

なお、「Deeper Search」実行中に必要なパーティションが見つかった場合は、
途中で「Stop」を選択してスキャンを止めても構いません

「Stop」を選択した時点で検出されているパーティションの中から、復旧対象を選べます。
特に、もともとパーティションが1つしかなかった場合、
必要な情報はディスクの先頭部分に集中しているはずですので。

回復できないパーティション - TestDisk

「Deeper Search」終了時に、

The harddisk (XX GB / XX GiB) seems too small! (< XX GB / XX GiB)

と表示されることがあります。
直訳すると、ハードディスク容量が小さすぎるらしいですが、実はそんなわけない場合がほとんどです。
これは、検出されたブートセクタで指定されている領域が、ハードディスクの領域の外にあることを意味します。
つまり、この情報をもとにしたパーティションは無効なので、選択肢から除外されることの通知です。

このようなブートセクタは、たとえば、パーティションを丸ごとコピーした場合に発生することがあります。
どちらにせよ不要なパーティションなので、「Continue」を選択して次へ進めます。

「Deeper Search」の結果 - TestDisk

「Deeper Search」の結果です。
パーティションの候補が増えています。

選択肢が多すぎるので、各パーティションは一旦削除扱いになっています。
実際に削除されているわけではありませんので、ご安心を。
画面の見方や操作方法は、「Quick Search」のときと同じです。

左右のカーソルキーで、パーティションを希望通りに変更してください。
また、「P」キーを押してファイル一覧が表示可能か確認します。

特に、いろいろパーティションを区切った履歴のあるハードディスクでは、
「Deeper Search」で多くのパーティション候補が検出されるので、
いろんな手がかりをもとにパーティションを選んでいく必要があります。
そのへんについては、ヒントとなるような事柄を下記ページにまとめました。

「TestDisk」での復旧パーティションの選び方

逆に、購入時からパーティションの変更を行っていないのであれば、
この例のように多数行出てくることはないので、判断しやすいと思います。

Structure: Bad. - TestDisk

わざと、つじつまが合わない設定をしてみました。
「Structure: Bad.」と怒られます。
パーティションの候補が多いときには、何気にありがたい機能です。

パーティション設定終了 - TestDisk

復旧するパーティションを選び終わったら、「Enter」キーを押してください。

Write

確認画面 - TestDisk

「TestDisk」が設定するパーティションの一覧が表示されます。
十分に確認してください。
「Write」を選択すると、
現在画面に表示されているパーティションの情報をパーティションテーブルに書き込みます。

最終確認 - TestDisk

最終確認です。
「Y」キーを押すと、いよいよ実際にパーティションテーブルに書き込みます

そうです、実はここまで、「TestDisk」はハードディスクに一切変更を加えていません
「あ、ヤバいかも。」と思ったら、いつでも途中でやめてください。

ブートセクタのチェック

ブートセクタ - TestDisk

パーティションテーブルを書き込む際に、上のような画面が表示される場合があります。
これは、ブートセクタが破損していて、
パーティションテーブルを修正しただけでは復旧できないことを意味します。
でも、「TestDisk」ではブートセクタを修復することも可能です。
詳細は下記ページにて。

「TestDisk」によるブートセクタの修復

再起動してください - TestDisk

再起動をうながすメッセージが出てきて、完了です。
「TestDisk」を終了し、再起動して動作確認します。
外付けハードディスク、USBメモリ、SDカードの場合は、再接続してもいいです。

再起動や再接続が必要なのは、
パーティションテーブルの読み込みが、記憶装置への初回アクセス時にしか行われないためです。
この時点ですでに書き込みは行われていますが、OSに設定を反映させるため、再起動、再接続します。

「TestDisk」の実行結果と考察

「TestDisk」実行後 - ディスクの管理

再起動後の「ディスクの管理」の表示内容です。
「TestDisk」によって、使えていたパーティションはすべて復旧しました
リカバリ領域から起動する「True Image」も、正常動作しました。

ただし、ひとつだけ「TestDisk」で見つからないパーティションがありました。
なぜ、見つからなかったのでしょうか?

それは、このパーティションがまだフォーマットされていなかったので、
このパーティションに関するブートセクタが一度も作られていないからです。
唯一情報のあったMBRのパーティションテーブルは、
パーティションを削除した段階で「0」で埋められ、消去されています。
「TestDisk」が必死にパーティションの痕跡を探しても、ないものは見つけようがありません。

「未フォーマット」=「使ってない」ということなので、実はどうでもいいんです。
作り直したらいいだけの話です。

復旧できない場合

ここまでの操作で、「TestDisk」ではパーティションが確認できているものの、
「Write」としても、Windowsでは当該パーティションにアクセスできない場合
があります。
このようなときは、ブートセクタを確認してください
つまり、下記ページ参照。

「TestDisk」によるブートセクタの修復

先に説明したように、パーティションテーブルを書き込む際に、
「TestDisk」が自動的にブートセクタの修正を提示することもありますが、
この判定は確実なものではありません。

「TestDisk」がエラーなく終了したとしても、それが正しいデータ構造になっているとは限りません。
特に、「TestDisk」は動作のあやしい記憶装置に対して使われることが多いソフトなので、
「TestDisk」自体が記憶装置を誤認識してしまうこともあります。
最終的には、ユーザー本人が状況を見極め、判断する必要があるのです。

パーティションを復旧できなければ、ファイルを復元するしかない

「TestDisk」は、基本的にはパーティションを復旧するためのソフトウェアです。
パーティションを復旧するために必要なデータが残っていないと、パーティションを復旧できません。
当たり前ですけど。

ファイルシステムの管理情報が上書きされている場合は、
パーティションの復旧が不可能な場合があります

「TestDisk」で無理矢理パーティションを割り当てたところで、
ファイルシステムを認識できないので意味がありません。

パーティションの復旧が不可能な場合は、
パーティション全体を復旧するのではなく、ファイル単位の復元を試みるべきです。
というか、そうするしかないのですが。

しかも、パーティションを認識できない領域からファイルを復元しなければなりません。
このような作業は、無料のファイル復元ソフトではほぼ不可能で、
ファイナルデータ」等を使う必要があります。※参考: 「ファイナルデータ」の使い方

ただし、ファイルの復元は、パーティションの復旧に比べて手間がかかります。
パーティションを復旧できれば、そのまま元通りに使うこともできますが、
ファイルの復元は、一旦外部にデータを移す必要があります。
面倒ですが、仕方がありません。

「Read error」について

「Read error at ~」というのは、
表示されているセクタにおいて、データの読み出しに失敗したことを意味します。
どのような原因であっても、データを読めなければ「Read error」が表示されます。
「Read error」が表示された箇所のデータは取得できないので、
そこに必要な情報があった場合は、関連するパーティションを検出できません。

「Read error」に関して特に注意が必要なのは、不良セクタの存在です。
不良セクタがあると、そのセクタのデータの読み出しに失敗します。
もっとも、不良セクタに関しては、「TestDisk」を使ってもどうにもなりません

具体的にどうすべきかは、下記ページ参照。

不良セクタがあるハードディスクへの対応

「TestDisk」で復旧できるのは、一部の論理障害のみ

「TestDisk」を使って記憶装置を復旧できるケースは多いですが、
決して「TestDisk」は万能ではありません。
「TestDisk」で復旧できるのは、一部の論理障害に限られます

すべての論理障害に対応しているわけではありません。
また、前述の「Read error」を含め、記憶装置の物理障害に関しては無力です。
読めないデータを読み取るものではありません

記憶装置が正常動作しない場合は、不具合のある部品を交換したり、
特別な機器を使ってデータにアクセスできる状態を作り出す必要があります。
必要に応じて、データ復旧業者に依頼するなどしてください。

データの重要度が高い場合も、下手に記憶装置に手を加えずに、
お店や業者に依頼したほうがいいかもしれません。
「TestDisk」のようなツールは、記憶装置のデータを上書きする、
というよりデータを上書きするきっかけを作るので、
いろいろと試した後で依頼されても、復旧が不可能な場合があるからです。