Help us understand the problem. What is going on with this article?

故障してそうなディスクからデータを取り出す方法(ddrescue)

More than 1 year has passed since last update.

背景

ハードディスクから異音が聞こえ(約5年稼動しっぱなし)はじめました。
特に重要データがあるわけでもなかったので冗長化していない。
が、念のためバックアップを取ろうと思った今日この頃。
そこでddrescueなるものを最近知ったので使ってみました。

公式マニュアルは下記
GNU ddrescue Manual

対象読者

  • 壊れかけのHDDからデータをバックアップしたい人

※物理障害のおきているHDDを修復するわけではありませんので注意!

ddrescueとは

GNU ddrescue(グヌー ディーディーレスキュー)は、主に不良セクタのあるハードディスクドライブ (HDD) からのデータの救出に使われる、UNIX上で動作するフリーソフトである。macOSでも動作する。開発者はAntonio Diaz(アントニオ・ディアス)。

wikiより引用

長々と書いてあるが要約すると不良セクタのあるHDDからのでデータの救出に使われるツールです。

コピー用のツールにddは有名です。しかしddコマンドは不良セクタのある媒体からの読み出しが苦手であり、ストールなどが発生したりする。そもそも正常媒体を想定したコマンドなので当然といえば当然。

その点ddrescueでは不良セクタに当たるとその箇所をマークしスキップしてコピーを行う。
スキップした箇所は最後に再度読み込むといった形で処理を行う。

このときコピーのログはファイルに残るので途中で処理が中断した場合でも前の場所から再開することができる。

また、fillモードという動作モードもありデバイスの特定の箇所をあるパターンで埋めつくすといった事も出来る。
(ddとの違いは「不良箇所のみ」といった範囲指定が出来る点である)

ddrescueメリット

メリットは以下3点

  • 不良セクタを発見したらスキップし、不良セクタの位置がログに出力される
  • 一旦全部書き出した後、ログに残った不良セクタだけを再度処理してくれる
  • どのファイルが不良セクタの被害を受けたかが分かる

使い方/オプション

オプション 概要
-f 上書き※ターゲットが物理ディスクでは必須
-n リードエラーを無視
-v 詳細表示
-r 不良セクタの再読み込み回数
-d ダイレクトアクセス(キャッシュを介さずにアクセス)

コマンドイメージは下記のようになります。

$ ddrescue -f -d -r1 -v /dev/sda /dev/sdb logfile.log

導入/実行

# インストール方法は下記.GNU版を入れるためパッケージ名は「gddrescue」
$ sudo apt-get install gddrescue

# 実行.オプションは下記を参照してください.
$ ddrescue -r 3 /dev/sdc /dev/sde rescue.log

Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:   500107 MB,  errsize:       0 B,  current rate:   110MB/s
   ipos:   499466 MB,   errors:       0,    average rate:   120MB/s
   opos:   499466 MB

まとめ

壊れかけのHDDからデータを救い出す方法を記載しました。
ただし完璧で救えるわけでは無いので注意が必要です。
そもそも壊れかける以前に壊れても良いように冗長化ないし、
バックアップは普段から取りましょうってお話ですね。
(学生時代そんなお金は無かった。。。)

ryuichi1208
ITエンジニアっぽい仕事してます。
https://ryuichi1208.hateblo.jp
yyphp
PHPerが毎週集まり、ざっくばらんに情報交換する雑談コミュニティ
https://yyphp.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした