以下省略!

タイダルウ(ry ほぼ毎日1記事執筆運動実施中。 ※記事に広告(アフィリエイト)リンクを掲載している場合があります。

ddrescueでHDDをイメージ化してみる

(2022/06/19 画像リンク切れにつき削除) 以前ノートPCのHDDをddコマンドでイメージ化したことがあったが、途中で不良セクタに当たったためオプション conv=sync,noerrorでエラー箇所をNULパディングしてイメージ化していた。
最近ふと思いついてGNU ddrescueで再度イメージ化してみた。ddrescueはその名の通り、データレスキュー時のイメージ化に特化したddコマンドで、読み取り不良のHDDなどからできる限りデータをレスキューするというもの。

インストール

gddrescueという名前で配信されている(実は作者は違うが同じddrescueというのがあり、GNU版が後発なためgddrescueというパッケージ名になっているっぽい?)。

$ sudo apt-get install gddrescue

使い方

ここではイメージ化したいHDDを/dev/sdbとし、アンマウント済であることを想定している。

まず読み取りできない範囲は無視してディスク全体をイメージ化する。エラー部分はログに吐き出すようにする。

$ sudo ddrescue -f -n /dev/sdb hdd.img ddrescue.log

errorsの値が1以上になっていたらログファイルを使いエラーになった部分に対して直接読めるか最大3回アタックしてみる。読めた部分が自動的に補完される。

$ sudo ddrescue -d -f -r3 /dev/sdb hdd.img ddrescue.log

それでもerrorsが0にならない時はどう足掻いても無理な予感なので重要なデータが壊れていないことを祈るしかない。

エラー部分を視覚化する

ddrescueviewというGUIソフトでどのあたりにエラーがあったのかなどを見ることができる。

$ sudo apt-get install ddrescueview
$ ddrescueview ddrescue.log

そういえば

設定は特にいじってないのだが、ddコマンドよりも早かった。1回あたりの読み込みサイズが違うから?(ddコマンドはbsパラメータ等で指定する必要がある)