Hatena::ブログ(Diary)

玉虫色に染まれ! このページをアンテナに追加 RSSフィード

2014-04-07

死にかけのHDDからのデータ吸い出しには GNU ddrescue が良いらしい

今日は超小ネタ。

(というか、言いたいことは記事タイトルで言い切ってしまってます。)

先日、家でサーバーとして使っているPCのHDDの調子がおかしくなっていたので、データの引き上げを行おうとしたのですが、dd でパラメータをいろいろ設定するのは面倒だし、良いツールなりスクリプトなりがないかと探したところ、ddrescue というプログラムがあることを知りました。

2つの ddrescue

ただ、ちょっとした罠なのですが、ddrescure という名前のプログラムは2種類あります。

どちらも ddrescue で、同じ目的・機能のものですが、まったく別のソフトです。

区別して呼ぶ場合、前者は dd_rescue、後者は GNU ddrescue と呼び分けたりしますが、前者の方が古くからあったからか、単に ddrescue と呼んだ場合、暗黙的に前者を指す事が多いようです。両方とも ubuntuリポジトリに入っているので apt-get でインストールできますが、パッケージ名は、前者が ddrescue で、後者は gddrescue です。

機能に関しては GNU ddrescue が良いようですので、あまり悩まずそちらを使っておけば良いのではないかと思います。

使い方

公式ドキュメントでは、ディスク中の、特に大事な領域を優先して取得する方法が書いてありますが、どこが大事かなんてどうせ分からないので、初めから全体取得で良いかと思います。

(/dev/sdX を hdd.img ファイルに書き出す場合)
$ sudo ddrescue -f -n /dev/sdX hdd.img logfile      # まずはエラーを飛ばして一通りコピー
$ sudo ddrescue -d -f -r3 /dev/sdX hdd.img logfile  # エラーの場所を3回までリトライして読む

logfile は、どこにエラーがあって、どこは吸い出せたかを記録するためのファイルですので、こんな風に条件を変えて何度もとりなおすときには同じファイルを指定します。

また、上記の例では吸い出したデータをファイルに書いていますが、もちろん新しいHDDのデバイスファイルを指定して直接書き出すことも可能です。

最終的に読み出しエラーが 0 になれば、一応完全にコピーができたことになりますので、新しいHDDに吸い出した hdd.img を dd してHDDを置き換えれば復旧完了です。

だめだった場合は、大事なファイルが壊れていないことを祈りながら fsck をかけることになりますが、何が壊れているかわかったものではないので、マウントして、手作業で確認しながら1つ1つコピーするハメになるでしょう。(今回は大丈夫でしたが)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/over80/20140407/ddrescue