OpenSuperCloneで壊れかけたHDDからデータ復旧

壊れかけたHDDからのデータ復旧として、以前GNU ddrescueを紹介しましたが、より強力なツールがあるので紹介を。ただ、基本的には過去に、こういったケースが必要になった場合でもddrescueで困ったことがないのと、現時点で必要ないので、簡単な紹介程度に。
なお、不良セクタを持つドライブからのデータ救出に専用ツールが必要なのは、cprsyncでコピーしようとするとエラーが出た時点で処理が止まってしまいますが、データ救出専用ツールは読めるセクタを最優先に回収しながら、読めない箇所は後回しにするという「マルチパス戦略」を取り、ドライブへの負担を最小限にしつつ、回収できるデータを最大化するためです。

3つのツール比較

まず代表的な3つのツールを比較します。

GNU ddrescue

Linuxデータ救出の定番として長年使われてきたコマンドラインツールです。

sudo ddrescue -d -r3 /dev/sdb /mnt/rescue/disk.img rescue.log

強み

  • インストールが簡単で、情報も豊富
  • ログファイル(mapfile)で途中中断・再開が確実にできる
  • 依存関係が少なく、ほぼどの環境でも動く
  • スクリプトへの組み込みが容易

弱み

  • GUIなし。コマンドライン操作のみ
  • カーネルのSCSIエラーハンドラーを経由するため、ドライブが応答しなくなった際の検出が遅れることがある
  • ヘッド単位での障害把握はできない

HDDSuperClone

2015〜2022年にScott Dwyer氏(ハンドルネーム「Maximus」)が開発した、より高度なデータ救出ツールです。2022年にオープンソース化されました。

強み

  • ATAパススルーコマンドによるドライブとの直接通信
  • 不良ヘッドを検出し、そのヘッドが担当するLBA領域をスキップして健全な部分を先に回収する「ヘッドマップ」機能
  • ドライブが応答停止した際に即座に検出して処理を止める
  • GUIあり(セクタマップをリアルタイム表示)

弱み

  • 開発は2022年で終了
  • 新しいLinuxカーネルではドライバーが動作しないことがある

OpenSuperClone

HDDSuperCloneのオープンソースフォークとして、ISpillMyDrink氏が現在も活発に開発しています。

HDDSuperCloneからの主な改善点

  • カーネル 6.18 までOSCDriver(DKMS対応)が対応
  • リトライ回数の上限が 8回 → 1000回 に拡張(SSD復旧に有効)
  • ほぼすべての操作にツールチップを追加したUI改善
  • SMART属性・Identifyフラグの大幅拡充
  • リカバリー設定の保存・読み込みに対応

比較表

項目GNU ddrescueHDDSuperCloneOpenSuperClone
開発状況現役終了(2022年)現役
GUI
ATAパススルー
ヘッドマップ機能
現行カーネル対応✔(〜6.18)
リトライ上限無制限8回1000回
難易度低〜中中〜高中〜高
Live環境Clonezilla等HDDLiveCDOSC-Live

どれを選ぶべきか

状況に応じた使い分けはこのようになります。

GNU ddrescue で十分な場面

  • ある程度健全なドライブのバックアップ・救出
  • サーバーや自動化スクリプトに組み込みたい
  • とにかくすぐに作業を始めたい

OpenSuperClone が必要な場面

  • 異音・ヘッド不良など重度の物理障害が疑われる
  • どのセクタ・どのヘッドが壊れているか把握しながら慎重に進めたい
  • ddrescue で救出しきれなかったデータを諦めたくない

インストール不要でそのまま使えるOpenSuperClone-Liveを使用

強力なOpenSuperCloneですがビルドが面倒で、下記のような流れとなります。

git clone https://github.com/ISpillMyDrink/OpenSuperClone
cd OpenSuperClone
# READMEに従ってビルド・インストール
sudo make install
sudo opensuperclone

ただ、OSC-Live というLive Linux環境が公開されているので、これを使うのが良いでしょう。HDDSuperClone時代の「HDDLiveCD」の現代的な後継として開発されたLive ISOです。USBメモリに書き込んでPCを起動するだけで、OpenSuperCloneがすぐに使えます。

手軽なだけでなく、データを安全に保てるのもポイント。データ救出作業では、救出対象のドライブをOSがマウントしていない状態で作業するのが基本ですが、OSが起動しているストレージとは別のドライブから起動するLive環境は、この条件を自然に満たします。また、OSC-Liveにはddrescueも含まれているため、このライブ環境で両方のツールが使えます。

入手とUSBへの書き込み

SourceForgeからISOをダウンロードし、dd または VentoyBalena Etcher などでUSBに書き込みます。
Ventoy を使う場合はUSBを初期化後、ISOをコピーするだけ。dd を使う場合は下記(/dev/sdX はUSBデバイスに置き換えること)。もしくはディスクユーティリティを使ったほうが楽ですね。

sudo dd if=OSC-Live-*.iso of=/dev/sdX bs=4M status=progress
sync

使い方の流れ

  1. OSC-Live USBでPCを起動
  2. OpenSuperClone を起動(root権限で自動起動)
  3. 新規プロジェクトを作成
  4. OSCDriverをインストール(初回のみ)
  5. ソースドライブ(救出元)とターゲット(別HDD or イメージファイル)を指定
  6. クローンモードを選択して開始
タイトルとURLをコピーしました