クイックスタート:インストールと実行
緊急事態で今すぐツールが必要ですか?ターミナルを開き、使用しているディストリビューションに合わせて以下のコマンドを実行してください。
# Ubuntu, Debian, Kali Linux
sudo apt update && sudo apt install testdisk -y
# CentOS, RHEL, AlmaLinux
sudo dnf install epel-release -y
sudo dnf install testdisk -y
# Arch Linux
sudo pacman -S testdisk
完了すると、2つの主要な「武器」が手に入ります。パーティションを復元するための testdisk と、個別のファイルを掘り起こすための photorec です。開始するには、sudo権限でコマンドを入力するだけです。
sudo testdisk
TestDiskとPhotoRecの違いを正しく理解する
この2つのツールはセットで提供されていますが、解決する問題は全く異なります。初心者が混同しやすいポイントを確認しておきましょう。
- TestDisk: パーティションテーブルの修復に特化しています。誤ってパーティションを削除したり、ドライブが突然「RAW」と表示されたりした場合、TestDiskはスキャンして元の構造を再構築します。データはコピーすることなく、元の場所でそのまま復元されます。
- PhotoRec: ファイルシステムを無視して、データブロックを直接スキャンしてファイルを探します。パーティションがフォーマットされていたり、深刻な損傷を受けていても救出可能です。唯一の欠点は、元のファイル名やディレクトリ構造を維持できないことです。
TestDiskによるパーティション復旧
例えば、すべてのソースコードが入っていた /dev/sdb1 を誤って削除してしまったとします。落ち着いて以下の手順に従ってください。
ステップ1:ログの作成sudo testdisk を開き、[ Create ] を選択してログファイルを作成します。これはスキャン中にエラーが発生した場合に非常に役立ちます。
ステップ2:ディスクの指定
矢印キーを使用して、パーティションが消失したハードドライブを選択し、[ Proceed ] を押します。
ステップ3:パーティションテーブルの認識
通常、TestDiskは正しいタイプを自動的に選択します(MBRの場合は [Intel]、最近のPCの場合は [EFI GPT])。デフォルトのまま Enter を押します。
ステップ4:クイックサーチ (Quick Search)
[ Analyze ] を選択してから [ Quick Search ] を実行します。TestDiskはディスク上の古いパーティションの痕跡を探し出します。
ステップ5:確認と書き込み (Write)
見つかったパーティションの一覧が表示されます。P キーを押して、中のファイルリストを確認してください。必要なデータであれば、Enter を押して [ Write ] を選択し、パーティションテーブルを保存します。
10台以上のLinux VPSを3年間管理してきた経験から得た教訓は、「Enter を押す前に必ずコマンドを再確認すること」です。[ Write ] ステップで一瞬の不注意によりドライブを間違えると、すべての顧客データが瞬時に消え去ることになります。
PhotoRecによるデータ救出
パーティションは復元できたがファイルが消えている場合や、rm -rf を実行してしまった場合は、PhotoRecが最後の希望となります。
sudo photorec /dev/sdb
- ターゲット of の選択: ファイルが存在していたパーティションを選択します。
- フォーマットのフィルタリング:
sキーを押してすべての選択を解除し、必要な拡張子(.jpg,.pdf,.pyなど)のみをチェックします。これにより、待ち時間を70%短縮できます。 - 検索開始: [ Search ] を選択します。
- ファイルシステムのタイプ: Linuxの場合は [ ext2/ext3/ext4 ] を選択します。
- 保存先:非常に重要な注意点! 救出したファイルは、必ず「別のドライブ」に保存してください。復旧中のドライブに上書き保存すると、元のデータが破壊され、永久に失われます。
困難なケースのための高度なテクニック
Quick Search で結果が出ない場合でも諦めないでください。[ Deeper Search ] を試しましょう。このモードはセクタごとに細かくスキャンします。1TBのドライブで3〜4時間かかることもありますが、数ヶ月前に消失したパーティションを見つけられる可能性があります。
また、突然の停電などでSuperblockが破損し、Linuxがドライブをマウントできない場合があります。その際はバックアップのSuperblockから復旧できます。
# アクセス方法:TestDisk -> Advanced -> パーティションを選択 -> Superblock
ツールがバックアップ場所をリストアップします。それらのアドレスと fsck コマンドを組み合わせて、ファイルシステムのエラーを修正します。
レスキュー作業における実戦経験
データを失うと誰でもパニックになります。しかし技術者として冷静さを保ち、以下のルールを守ってください。
- リードオンリー(読み取り専用)を優先: すぐにそのパーティションを
umountしてください。時間が経つほどシステムプロセスが空きブロックに新しいデータを書き込み、復旧の可能性が低くなります。 - ディスクイメージの作成 (Disk Image): 非常に重要なデータの場合、直接操作は避けましょう。
ddコマンドでイメージファイルを作成し、そのコピーに対して復旧作業を行うのが安全です。
sudo dd if=/dev/sdb of=/home/user/disk_image.img conv=noerror,sync
smartctl でチェックすることをお勧めします。実際、100%の成功を保証するツールはありません。特にTRIM機能を持つSSDでは復旧が困難な場合が多いです。そのため、TestDiskに頼る状況になる前に、重要なデータは定期的にバックアップする習慣をつけましょう。

