1日立って、気を落ち着かせて、原因を考える。
壊れたディスクと新しいディスクはコンピューターから見るとまったく同じ物。
ファイルの構造も同じだし、ファイルの所有者も同じにしたし、各ファイルの読み書きの権限も全く同じにした。レグザの詳しいWEBの管理人の竹田さんから教えてもらった事もした(隠しファイルを消去することと、UUIDを同じにする事)。
それでも再生出来ない!!やっぱり1日経っても分からない。何か見落としがあるのだろう。
DVDもコンピュータからのコピーだと見れないからそんな所か??でも、少なくとも竹田さんはコンピュータからコピーをして見れるようになったのだ。
レグザから見ると、どうも他のレグザで記録した物の様な振舞に見えるので、記憶には無いが、隠しフォルダーの中身が古いディスクと同じになっていない(ファイル構造でなくファイルの中身)のかも知れない。
コンピュタをいじっていると、よく”同じ事をやっても同じにならない”という現象に出会います。私見ですが、これは人間様が同じ事をしたと思っているだけで、コンピュタ側からしてみると同じ事をしていないんだと思います。他に設定があり、それが違っていたり、やったつもりでやっていなかったり色々です。たまに熱のせいで挙動が変化する事はありますが、今回は当てはまらないと思います。
参照: 後日別のXFSのディスクが壊れ、その顛末を書いております。"LinkStationのディスクが壊れた"を参照してください。raid0(半角)で検索できます。2013-05-10追記
昨日やっとコピーが終った。最終的に6月分の殆どでエラーが出ていたが、正常終了した物も半分くらいあると思う(6月以前が殆ど)。エラーが出たので、大きい .dtvが極端に小さくなっているのものがたくさんあり、この為に21日間?もかからず終った。もちろん残りの .dtv.meta と .dtv.rat もコピーをして置いた。http://www.4682.infoの管理人の竹田さんに教えてもらった事をやる。(このWEBはレグザを使っている人には貴重な情報源)
このディスクのルートにある .から始まる3つのファイルを消し( .で始まるディレクトリーも有るがそれは消去しない)、umountしてから
# xfs_logprint /dev/sdd1
とし、壊れたディスクのUUIDを調べておき、それを
# xfs_admin -U '調べたUUID' /dev/sde1
として、新しいディスクに書き込んでおいた。
自宅にレグザが無いのでubunntuの起動CDを持って友人宅へ。
http://www.4682.info/copyによるとUUIDを壊れた分にすると、レグザは壊れたUSBディスクとして認識するとあるが、私の場合は、USB3(USB2が壊れたディスク)として認識した。(新しいディスクは友人にレグザに付け、登録をしてもらっていた。)おかしなー。でも録画番組のリストはエラーが出ていた分も含め全部見えているっぽい。でも全てが”再生できない”となって一切再生が出来ない。
考えられるのは、xfsdumpをしている時に途中で止まった為、XFSのフォーマットを掛けたので、多分新しいディスクがレグザで登録をしていない状態になっていたのかも知れない。もう一度レグザに登録をしてから、再度コピーをすればいいのかも知れないが、さすがに又、一週間以上のコピーはきつい。
という訳で、再生出来ていない状態。
xfsdumpをしないで、フォーマットもしなければ、多分見れると思う。後日、竹田さんから連絡があったが、フォーマットしても、隠しフォルダーとUUIDを同じにすれば関係ないとのこと。とすると原因は???謎は深まるばかり。
歯切れが悪いが、取り合えず今回は此所まで。
少し時間をおいて再挑戦してみるつもり。
という訳でコピーをしていたら、昨日の夜からやたら入・出力エラーが出るようになった。
それとコピーの速度がものすごく遅くなった。1時間で約1GB位これだと残り500GBに500時間(約21日間!!! )
もう3日以上ディスクが動きっぱなしなので、やばいのかと思い(そんなに熱くはなっていない。触っても少し熱いと感じる位)少し休める事にした。私は節電のため、作業場はまだエアコンを点けないで、がんばっていたのですが、約5時間くらい後、エアコンをONにし、ディスクに直接扇風機の風が当たるようにし(以後、ディスクは全然冷たい)再度作業開始、前回と同じ nobarrier オプションも点けテストするがやはり1GBから速くならない
レグザのシステムは3fileで1番組の記録をしているが(ファイルの最後が .dtv .dtv.meta .dtv.rat)この .dtv(いちばん大きいにで本体と思われる)でエラーが出ているので
# cp -pu /test1/*.dtv /test2 → カーレントディレクトリはroot
をやって様子を見ているが、やはりエラーが出ている。とにかく終るまでやって見よう。
ちなみにエラーは全部では無いが6月分に集中している。
ファイル名に日付が数字で入っているので、録画をすると日付け順にファイルが作られる筈。すると新しい記録ほどファイルシステムの後ろの方になる筈。これが理由で記録の後ろがいっぱい壊れているのか、何日間もディスクが動きっぱなしになっていたから、故障が進んだのかは不明です。ただ今でも壊れたディスクのファイル名は判る。
又、壊れたのは当然最後の記録で、その分は .dtv のサイズがゼロで、.dtv.meta が無かった。
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日位かる。
現在はコピーの途中なので、コピーが終わり、テスト後、報告します。