ddrescue

Linux
この記事は約6分で読めます。

GNU ddrescueは、壊れたディスクのデータ復旧(救出)ツール。

破損した部分に対して様々な方法でのコピーを試みます。同時にそのログとして ” mapfile” を作成します。

インストール

kaliにはデフォルトではバンドルされていないので、下記手順でインストールを行います。

(注意)パッケージ名は “ddrescue” ではなく、 “gddrescue” です。最初の “g” はGNUの頭文字かと思います。

install

ヘルプ

ddrescue --help
ddrescue --help2
ddrescue --help3

実行

ddrescue

マップファイルの役割

ddrescueのログ(=マップファイル)は、途中中断したコピーの再開にも利用される他、ディスクの破損の状況を表すなどの重要なファイルとなります。

役割内容
進捗保存中断・再開時に同じ位置から再開可能
エラー追跡壊れたセクタを特定して後で再試行できる
状況解析どの程度救出済みかを視覚化できる

実際の処理

作業のスタンダードな流れの一例です。

考え方としては、速く処理できる正常部分を先行コピーして、残った部分を時間をかけてコピーするという戦略です。

実行結果の確認

ログ(マップファイル)の表示

result

最終行に、範囲と状態を表されています。

状態表示記号が “+” ですので、正常に読み取りが成功したということです。

(つまりは破損していないということ)

状態表示記号の解釈は以下の通りです。

記号状態内容
+成功(rescued)正常にコピー済み
読み取り失敗(bad-sector)読み取り不能領域
/未試行(non-tried)まだ処理していない領域
*トリミング済みエラーの境界を絞り込み済み
?無効データ/不明不確定または不完全領域
.リトライ中(non-trimmed)再試行対象として残っている領域

ddrescueview

ddrescueのログのマップファイルをグラフィカルに表示するツールです。

こちらもkaliにはデフォルトではバンドルされていませんので、インストールが必要です。

インストール

下記にてインストールできます。

ddrescueview

実行

下記にて実行します。

ddrescueview 1

結果はグラフィカルに表示されます。

ddrescueview 2
項目意味
Input sizeファイルサイズ
Error count検出された読み取りエラーの数
Rescued正常にコピー済みのデータ量
Bad sectors現在も未救出の不良領域
Non-tried未処理
Non-trimmed / Non-scraped再試行が必要な残存領域

全然壊れていないので面白味のない結果になってしまっていますが。

dd_rescueとの連携

GNU ddrescueは、dd_rescueとほぼ同機能のツールですが、データ救出率を上げる為に組み合わせて順に使用します。

ツール主な役割特徴
dd_rescue初期救出(軽度破損対応)単純・堅牢・エラーをスキップして処理継続
GNU ddrescue精密救出(重度破損対応)マップファイルで再試行・リカバリ効率が高い

壊れたディスクが手元にあれば、あれこれ実行してみるのですが、それが無いのでこれ以上は詳述出来ません。すみません。(もし手に入ったら続きをやります)

まとめ

データ復旧ツール、GNU ddrescueの紹介でした。

実際のデータ復旧作業では、まず “dd_rescue” で荒く復旧し、次に “GNU ddrescue” で精密復旧、最後に “dc3dd” で検証という手順が多いようです。

参考)dd_rescueやdc3ddとの比較

上記3ツールの比較表です。

項目dd_rescueGNU ddrescuedc3dd
主な目的壊れたディスクからのデータ救出壊れたディスクからの効率的なデータ救出フォレンジック向け安全なディスクコピー
開発元Kurt GarloffAntonio DiazDoD Cyber Crime Center (DC3)
ライセンスGPLGPLGPL
ベースとなるツールdd の改良版dd のアルゴリズムを拡張dd のフォレンジック拡張版
エラー処理エラーをスキップして継続詳細なエラーマップを作成し自動再試行コピー中に停止(オプションでスキップ可能)
エラーログ単純なログ出力 (-l)高度なマップファイル (–logfile=)詳細な操作ログ (hashlog, errorlog)
再開機能手動または-Aで再開自動再開(マップファイル利用)手動指定による再開可能
進捗表示標準出力に進捗バー表示詳細な進捗(コピー済み・エラー率など)進捗レポート(ハッシュ進行含む)
方向指定正方向/逆方向コピー可 (-r)自動的に効率的な順序を決定正方向のみ
ハッシュ機能なしなし内蔵(MD5, SHA-1, SHA-256など)
検証機能(Verify)なしなしコピー後に自動検証 (verify=on)
ログによる再試行手動自動(複数パスで救出精度を高める)手動
コピー再開の容易さ普通非常に容易(マップファイルに基づく自動再開)普通
速度最適化単純アルゴリズムで効率的スキャン高信頼性重視(速度より完全性)
主な用途データ復旧データ復旧(より高精度)フォレンジック(証拠保全)
代表的な構文dd_rescue -l log /dev/sdb disk.ddddrescue /dev/sdb disk.dd map.logdc3dd if=/dev/sdb of=disk.dd hash=sha256 log=dc3.log
出力ログの利用価値状況把握に有用再開・再試行・可視化に重要証拠保全報告用(監査可能)
GUIツールとの親和性Autopsy, Sleuth Kitなど同左Autopsy, EnCaseなど
特徴まとめシンプルで安定・軽量自動再試行と高精度のデータ救出に強い法的証拠としての完全性確保に最適
使い分け指針とその理由簡易なコピー+エラー回避をしたい
➡️設定が簡単・シンプルで軽快
壊れたHDDから可能な限りデータを救出したい
➡️エラーマップと再試行で救出効率が高い
フォレンジック調査のために証拠ディスクをコピーしたい
➡️ハッシュ検証・ログ管理・法的整合性が標準搭載

コメント

タイトルとURLをコピーしました