Ddrescue
GNU ddrescue（グヌー　ディーディーレスキュー）は、主に不良セクタのあるハードディスクドライブ (HDD) からのデータの救出に使われる、UNIX上で動作するフリーソフトである。macOSでも動作する。開発者はAntonio Diaz（アントニオ・ディアス）。
ディスクの最初のセクタから順次コピーしていき、不良セクタに当たるとその箇所を飛ばして、最後に飛ばした箇所をまとめて読み出すため、不良セクタの再三の読み込みでディスクを傷める可能性が低く、また正常セクタを優先的に回収するために早期に多くのデータが回収できるという特徴がある。
回収ログはファイルに残るため、途中で中断しても前の場所から再開できる。ファイル情報を基にせずにセクタ単位でコピーするため、ファイルシステムに損傷が発生している場合などにも対応できる。また、回収元と保存先は（不良セクタ以外）まったく同一になるため、回収元を削除ファイル復元ソフトで検索して取り出せる削除済みファイルは、保存先でも同じ方法で取り出せる。そのため、回収元のハードディスクを動作させることが困難な場合、このコマンドはデータ回収のための選択肢の一つとなる。
保存先HDDは、回収元HDDの1.5倍の容量があると高速に処理できるが、同じサイズのものでも実行は可能である。
導入
公式サイトでダウンロードし、通常通り導入すればよい。ただし、CUIベースの作業になることと、環境やバージョンによって手順が異なることから、初心者には分かりにくいため、本段落で手順を解説する。
2009年時点では、バージョンは1.10まで存在する。バージョン表示の小数点以下の部分については、1.8の次が1.9で、その次が1.10と進む形になっているため、1.9より1.10の方が新しい。Ubuntuなどには簡単にインストールできるパッケージがあるが、これに含まれている物はやや古いバージョンである。もしそれが気になるのであれば、下記の方法で手動でインストールすればよい。
本項目の外部リンクの「不良ディスクからデータを回収するGNU ddrescue」の5ページ目に書かれている方法は、バージョン1.9を一般的なUNIXにインストールする場合に手本となるが、最新のバージョン1.10の場合は配布ファイルの拡張子が異なっているために使えず、またUbuntuにおいてはsuの代わりにsudoを用いたり、C++をインストールしたりする必要があるなど、やや仕様が特殊なので、下記に手順を解説する。
実行
Ubuntuのようにrootでログインできない場合はコマンドの前に sudoをつけてスーパーユーザーとして実行する。"l" の文字は、このブラウザのフォントによっては "1" と紛らわしいが、小文字のエルである。
実行の前に、デバイス名の確認をする必要がある。下記のように入力し、どのドライブがどのデバイス名になっているかをよく確かめる。

# fdisk -l
また、もしデバイスがマウントされている場合、下記のように入力すれば、ボリュームラベルまで確認できるので、分かりやすい。

$ df -h
次にddrescueを実行する。最も簡潔な、オプションを付けない場合のコマンドの例を以下に示す。

# ddrescue /dev/sdb /dev/sdc rescue.log
この例では、パーティションづつではなく、デバイス（ディスク装置単位）でまるごとをコピーする。sdbは回収元、sdcは保存先であり、接続状況を確認して適宜指定する。書く順序ただ一つで、コピー元とコピー先が決まってしまうので、十分に確認を要する。
rescue.logはログファイルであり、一旦中断した後、再開するときはこのログファイルから前回までの処理内容が参照される。名前は任意であるが、以前に今回とは無関係なddrescueをしたことがある場合、ログファイルをその時と別の名前にしなければ、上書きされたり前回のデータを元に途中から始まったりしてしまう（前回生成されたファイルを別な場所に移しておけば名前は同じでも良い）。
実行中に中断するには、Ctrlキーを押しながらCを押す。このとき不良セクタに掛かっていると、停止まで少し時間が掛かる。再開時も、まったく同じコマンドを入力するだけでよい。ただし、デバイスの着脱などによりデバイス名が変わっていないかを確認する必要がある。
なお、本機能の実行に当たってはマウントする必要はない。読み取り専用でマウントするのも良い。
注意点
GUIの確認画面などもないため、回収元と保存先のデバイス名を打ち間違えると非常に危険である。"fdisk -l" や "df -h" の実行によって、デバイス名をよく確認することが望ましい。