壊れちゃったHDDからデータを取るコツ

今回の作業でだいぶ学習した。そのメモ

まずは必要な環境
常時使っているPCだと少々危険かも。とはいえ、別途サルベージ用PCを用意できることは希かもしれないが・・
そんなときは、別途HDDやSSDを用意してlinux系やFreeBSD系のOSを入れる。
knoppixでも良いかも。

トラブルにはFreeBSDが有用だそうなのだが、自分は使い慣れたDebianにした。

作業内容としては、
1.ddで故障HDDをまるまる抜き取る。
2.故障したHDD容量を上回るHDDを用意して、1.のデータを貼り付ける
3.TestDiskを使い、2.で作成したHDDを対象に解析、修復
4.利用していた環境(大概Windowsかな?)に接続してデータ解析、修復
5.必要に応じてデータ移動など

まず1.について
認識しているかどうかが大きなポイントだが、認識さえされていたら時間をかけてデータを読んでいく。
# dd if=/dev/sdb conv=sync,noerror bs=512 count=1953525168 | lzop -c > hdd.img.lz

ポイントはconv=sync,noerrorあたり
countはcylinder,header,sectorを掛けたブロック数で
とても時間がかかります。170GB程度データの入った1TB HDDを読み込ませて67時間くらいかかった。

そして2.について
# lzop -dc hdd.img.lz | dd of=/dev/sdb conv=sync,noerror bs=65536
-d じゃなくてcも付けて。ファイルを書き出す容量がないと作業環境ディスクの容量を食いつぶして終わる。

仕上げに3.について
TestDiskはとても高機能なソフトなので、その辺にたくさんあるドキュメントを読んで使い方を覚えたらチャイチャイとパーティーションの操作などが出来ます。

4.については状況を見て使うソフトを選びつつ作業する。

とても緊張感のある作業が続きますが、物理的に破損していない様であれば、データ復元を目標に集中しましょう。
成功報酬25k位でバイトしようかな。。

lvm2で様子見ながらサイズup

1ヶ月前に10GB単位で空きのあった会社のデータサーバ君がいつの間にかギューギューになっていた。
いったい何を入れているのやら。。

— Logical volume —
LV Name /dev/vg00/srvlv
VG Name vg00
LV UUID BgPcCo-KkIl-Hug3-n4iV-73YZ-bNdP-SNpGQm
LV Write Access read/write
LV Status available
# open 1
LV Size 730.00 GiB
Current LE 186880
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 253:2

VGに余裕を持たせてあるので、マウントしたまま拡張が出来る。
まずはLogical Volumeを拡張する。けちけち拡張する
$ sudo lvextend -L +20G /dev/vg00/srvlv

— Logical volume —
LV Name /dev/vg00/srvlv
VG Name vg00
LV UUID BgPcCo-KkIl-Hug3-n4iV-73YZ-bNdP-SNpGQm
LV Write Access read/write
LV Status available
# open 1
LV Size 750.00 GiB
Current LE 192000
Segments 2
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 253:2

パーティーションもやらないとだめですよ。
ext3なので、マウントしたまま出来るという恩恵を受ける。
$ sudo resize2fs /dev/vg00/srvlv

空きが有るか無いかすら気づかないとはね。困ります

壊れたHDD

最近HDDが壊れたという話を良く聞きます。パソコンを日常的に使う人がそれだけ増えたって事なのだろうか?

久しぶりに連絡をいただいた方のHDDを即日受け取ってきた。
渡されたというか・・

修復専門店に持って行って見積もりは貰ったそうだがやはり結構高価であったようで、ダメ元でよいから見てみてくれと言うことで外付けHDD(バッファローです)を受け取った。
HD-CBU2/Yシリーズというこの製品の中身はWD10EADS-22M2B0でした。

基盤が焼けている。
偶然ながら手元に2008年製のWD10EADSがあったので基盤交換してみた。
が、回転するけど認識されない。。こりゃぁ駄目だなと思っていたら、eSATAのケーブルが抜けかかっていた!
なんてこったいっていう日。
既に夕飯をごちそうになってしまい、頑張るっきゃない訳で…コツコツ慎重にやろう。

今、元の基盤に戻して環境を見直したら偶然かディスク認識に成功。
この状態があるうちにパーティーション復元できるか確認してみようかとTestDisk中。

Read error
確かに壊れてる