Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@ryuichi1208

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

背景

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

10
Help us understand the problem. What is going on with this article?
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
10
Help us understand the problem. What is going on with this article?