1:友人がレグザで使っていたディスクが壊たので持って来た
Date 2011-7-5 11:59:57 | Topic: レグザのディスクが壊れた
| BUFFALOのUSBの2テラのディスクで、linuxにつなげると認識しない。 /dev以下を見ると、それまで無かった、sddとsdd1があるので、これがこのデスクの筈。 # mount /dev/sdd1 /test1 でマウントしてみるが、ファイルタイプを指定しろ、と怒られる。 # fdisk /dev/sdd としてパーティションを見ると、EFI GPTになっている。BIOSでなくEFI?? レグザ ディスクでググると色々ヒットし、調べるとレグザはファイルシステムとしてXFSを使っているという。centosはXFSをdefaultではサポートしていないので yum から xmod-xfs,xfsprogs,xfsdumpをインストールし再起動 http://www.4682.info/repairと言うWEBを見つけ、その様にやるが # xfs_repair -Lv /dev/sdd1 の所で、 Phase 1 - find and verify superblock... superblock read failed, offset 406337564672, size 2048, ag 13, rval -1 となり復旧出来ない。 もうー、頭に来たぞ!意地でも直してやると憤ったのですが.... 色々調べると、mountオプションに norecovery があるのを発見、 # mount -t xfs /dev/sdd1 /test1 -o ro,norecovery でマウントするとエラーが出ない。 # ls -la とするとたくさんのファイルが見えた。 友人が持ってきた新しいUSBディスクを付ける。これは問題無く自動でマウントされたが、私は自動マウントだとマウントの指定が長くなるので、アンマウントし、 # mount /dev/sde1 /test2 とし、/test2にマウントした。 又、色々ググって http://docs.cray.com/books/S-2377-22/html-S-2377-22/fixed6bhdyq9i26.htmlというWEBを見つけ、早速試す。このWEBの7.7.3によるとxfs_dumpとxfs_restoreを使えとあるので、 # xfsdump -J - /test1 | xfsrestore -J -p 60 - /test2 → -p 60は60秒毎に経過を表示するオプション。 とコマンドを打ったが、 4時間ぐらい立っても 1.8% recoverから進まない。別ウィンドウから # ls -la /test2 と/test2 の中を見ても全然コピーしている様子は無いし、ファイル数も増えていないので ctrl+c で強制リセット うーむ、困った。WEBにはパス1でエラーが出たら、バックアップからコピーをしろと書いてある。普通レグザで記録する人はバックアップなんかしていないと思う。私の場合はパス1でエラーが出ている。 少なくとも上記の方法でマウントしファイルが見えているので、方法がある筈。 linuxに標準のext3というファイルシステムだと、バックアップされているsuperblockを使って復旧する方法があるのですが、どう調べてもXFSでバックアップされているsuperblockの復修方法が判らない。 どうも xfs_repair がそうだと思うのですが、オプションの中にそれらしき物は試した -Lv しかありそうに無い。 ダメ元で # cd /test1 → カレントディレクトリーを移し、 # cp -pr ./ /test2 -pr は パーミッションやタイムスタンプを保持したままコピーし、ディレクトリを再帰的にコピーする(つまり、サブディレクトリーがあったらその下もコピーする) とコピーが始まった。但しものすごく遅い、1時間に5GB弱位しかコピーしていない。それでも出来ないよりましと、コピーを続けるが、1日たっても115GB 遅すぎる。そう言えばコマンドからでなくファイルブラウザから(windowでいう所のエクスプローラ−−インターネット・エクスプローラじゃないよ−−)/test2を見た時ものすごく時間がかかったのだ。5分間位ディスクのアクセスランプが点滅した後、点滅が止まるとやっとファイル達が見えた!! 多分superblockが壊れているのが原因で時間がかかると思う。仕方ないか コピーをしながらググっていると mount に nobarrier と言うオプションがあるのを発見、マニュアルには無いぞー(man mount) ダメ元で試して見よう。 コピーを強制終了(コピーが動いているウィンドウの上にマウスを持っていきで ctrl+c) # cd → カレントディレクトリがtest1だとアンマウントできないので # umount /test1 # umount /test2 強制終了したのでコピーされる側(新しいディスク)はおかしくなっているので # xfs_repair -Lv /dev/sde1 (この時、USBでは速度が遅くなることも考え両方のディスクを裸にし、SATAで直接コンピュータに接続した。もちろん電源を落とし、接続後起動**ここでBUFFALOに一言:ハードディスクのケースの下側の爪が弱すぎる。型番はケースにHD-CL2.0TU2/NとHD−CB2.0TU2/WHとある。2個の爪2台とも壊れた。プラリペアで修理) 再度nobarrierを使ってマウントする # mount -t xfs /dev/sdd1 /test1 -o ro,norecovery,nobarrier # mount /dev/sde1 /test2 -o nobarrier コピー途中にエラーが出ていたので、そのファイル2個(更新日時がコピーした日になっている筈)と最後にコピーされたファイル(終っていない)を消去する。 コピーする # cd /test1 # cp -p -u * /test2 → -u は同じか新しい物があるとコピーをしない(つまり以前のコピーの続きからコピーをする)-rが無いのはサブディレクトリーはコピーが終っていたから。 するとコピーの速度は1時間で10GB強位になった。しめしめ。まだ遅いが仕方ない。友人のディスクは半分くらい使っていたのであと3日位かる。 現在はコピーの途中なので、コピーが終わり、テスト後、報告します。
|
|