故障したディスクからデータを取り出したい(ddrescue)

LINEで送る
Pocket

HDD から変な音が聞こえてきて、ファイルをオープンしようとしたら、ファイルが壊れていますとメッセージが表示された。HDD の故障は突然訪れます。普段からバックアップを取っていれば復旧出来るかもしれませんが、重要なデータだけは取っているけど、ディスク全体となると個人でバックアップするのは結構しんどいです。

ddrescue コマンドは、ディスクイメージのコピーを行うコマンドですが、HDDから正常に読み込めるデータを先に取り出し、不良セクタや読み込みが遅い領域のセクタを後回しにしてくれるため、ディスクの故障を最小限に抑えつつダータを吸い出してくれるのです。dd コマンドもディスクイメージをコピーしてくれますが、先頭から順番に読み込んでいくためエラーのセクタが先頭の方にあると途中で読み込みが止まってしまい、ディスクをさらに壊してしまい、ドライブをダメにしてしまう恐れがあります。

ddrescue のインストールは以下のコマンドで行います。

CentOS の場合
$ sudo yum -y install ddrescue
Ubuntu の場合
$ sudo apt-get -y install gddrescue

イメージのバックアップは以下のコマンドで行います。

$ sudo ddrescue /dev/sdc sdc1.img
GNU ddrescue 1.17
Press Ctrl-C to interrupt
rescued:   448462 kB,  errsize:       0 B,  current rate:   22806 kB/s
   ipos:   448462 kB,   errors:       0,    average rate:   28028 kB/s
   opos:   448462 kB,    time since last successful read:       0 s
Copying non-tried blocks...
Finished

fsck コマンドで、吸いだしたディスクイメージのファイルシステムをチェックします。

$ sudo fsck.exfat sdc1.img
exfatfsck 1.0.1
Checking file system on sdc1.img.
File system version           1.0
Sector size                 512 bytes
Cluster size                 32 KB
Volume size                3911 MB
Used space                  736 KB
Available space            3910 MB
Totally 0 directories and 0 files.
File system checking finished. No errors found.

mount を行い、中にデータが残っているか確認します。

$ sudo mount -o loop sdc1.img /media/taro/
$ ls /media/taro/
file1.txt  file2.txt

umount を行い新しい HDD にデータを復旧させます。

$ sudo umount /media/taro/
$ sudo ddrescue -f sdc1.img /dev/sdc1

* 新しいHDD(/dev/sdc1)は、事前に同じパーティションサイズに設定しておく必要があります。

LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

アマゾン

LINEで送る
Pocket

記事が面白かった。為になったと思ったら。下記リンクより商品を購入頂くと筆者は喜び記事を更新致します。


LINEで送る
Pocket

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください