2008年11月25日火曜日

Macのファイルが壊れた

MacOS X Tiger のとあるドライブ上に保存された動画ファイルがアクセス不能になった.再生中に途中で止まってしまうのだ.

Veohから落とした動画ファイルだったので,ファイル内のデータに一部不正が存在する可能性があると考えた.またこの動画は AVI で, Mac では AVI の再生時にしばしば不具合を生じるので,取り敢えず Windowsマシンにコピーしてから中身を検証してみようと思い,コピー操作をしたら Mac 側で I/O エラーが出た(エラーコード -36).

そこでディスクユーティリティーで当該ボリュームをテストしてみたが不具合無し.どうやらファイルの存在する記憶域が物理的に破損しているようだ.

うーむ.困った.ハードディスクの表面テストをしなければならないが,手元には OS9 用の Norton Utility しかない.OS 9 で再起動し Norton Utility で OS X の入ったドライブに手を加えるのはさすがに怖い.

OS X 用のユーティリティーを探さねば.それまでこのドライブへのアクセスは極力避けよう.不便だが.

===================================================
ここまでは1月程前の話.TechTool Pro 4 が良さそうだとあたりを付け,購入.
早速表面テストを実行してみたらやはり不正ブロックが1つ見つかった.壊れたファイルがこのブロック内にあるのかどうかは不明だが,この不正ブロックはなんとかしなければならない.

ところが,TechTool Pro には見つけた不良ブロックを使用できないように設定する機能がなかった.マニュアルによると,

「ATAドライブのドライブコントローラは不良ブロックが見つかるとそれを自動的に閉鎖しようとする」

らしい.だからTechTool Pro にとっては「わしゃ知らん」ということか.

それにしても,ドライブコントローラに不良ブロックを見つけさせるにはどうしたらよいのだろう.
壊れた動画を再生している時,不良ブロックに出会っているのに何もしていないという事を考えると,不良ブロックをファイルが占有しているときは何もできないのだと予想される.

怖いけれども,破損ファイルを一度消してみるか.
消す前にボリュームのバックアップを取ろうと Carbon Copy Cloner で当該ボリュームの差分バックアップを試みるが,やはり破損ファイルのコピーに失敗したところで作業が止まってしまう.

昔 Carbon Copy Cloner でバックアップしたボリュームと現ボリュームの差を TriBackup の試用版で調べ,手動で差分バックアップを取ろうかと思ったが,OSが作るファイルに多量の相違が見つかったので面倒になってやめた.

で,「えいやっ」と破損ファイルを消す.
で,当該ボリュームにひたすら画像ファイルをコピーし,空きスペースを全て画像で埋めてみた.その数1万8千個.
で,今度はその画像ファイルを別のボリュームにひたすらコピー.不良ブロック上に書かれた画像ファイルであれば,コピーする際に再度I/Oエラーが起きるはず.
しかし,エラーは全く発生しない.
で,当該ボリュームにコピーした画像ファイルを全てゴミ箱に入れ,「確実にゴミ箱を空にする」を実行.所要時間300分.
で,再度 TechTool Pro で表面テスト.
で,結果はOK!不良ブロックは発見されなかったヾ(* ̄▽ ̄)ノ

どうやら,この作業の間にドライブコントローラが不良ブロックを見つけて閉鎖してくれたらしい.
何とも運任せのリカバリーだが...取り敢えず問題は解決.
 

0 件のコメント: