木曜に夜にサーバーのHDDランプが点灯しっぱなしでした。しかし見逃しました。というのはWindows Updateの頃合いだったからです。
翌朝、まだ点灯していました。変かもしれないとログオンして様子を見てみると、2TBのデータドライブ(WD20EADS)にアクセスできませんでした。異音はありませんでしたが、シャットダウンできず電源ボタン長押しOFF。BIOSからは認識されるも起動が進まず。とりあえず電源を落として出勤。
夜、HDDを取り出して外付けケースに入れ、MacBook Pro (Boot CampのWin7 x64)、ThinkPad X61t (Vista x64)と接続するも同様にアクセスできず。この時点でサーバーのハード不調の線は消えました。
回転音は聞こえ、アクセス音すら聞こえているので、中身は物理的には大丈夫なんじゃなかろうか。BIOSから認識されるのだから、コントローラもATA側は生きているんじゃなかろうか。ヘッドかコントローラ間に異常があるんだろうか。だとしたら基板交換だろうか、しかしそのためには同一ロットを探さなければならないはず...。
ちなみにデータ復旧業者はテラバイト級のものを依頼すると、費用が6桁コースです。しかも悪徳業者が横行しているとか何とか。それなら諦めるべきなのか...幸いパソ通その他の貴重なデータは他のHDDにも残っていることですし。
というところまで考えたあたりで、別のOSを試す価値があるだろうと思い当たり、MacBook ProのSnow Leopardで読んでみたところ、正常にマウントしました。内蔵HDDと余ったHDDを集めて容量を確保し、コピー開始。
翌日つまり3連休の初日、交換とバックアップRAID構築の買い出しをし、作業続行。ファイルの破損は1つのみで救出に成功しました。NTFSなのにWindowsでなくMacからしか読めない状態って何なのでしょうね。
さて、MacからNTFSのデータを吸い出したとなると、Unicodeファイル名の正規化の違いが出てきます。濁点や半濁点をMacでは独立して扱っているのです。若干の違いがありますが、Macの正規化はUnicodeの正規化形式Dにほぼ相当します。Windowsは形式C。
Macはファイル名を内部でDに変換して扱います。形式CをコピーするとDになるのです。Windowsは原則Cですが変換はしないため、Dのファイル名はDのままです。非Unicodeアプリから見ると、濁点半濁点が"?"に化けて見えます。
というわけで、一括修正するアプリをC#で作ってみました。フォルダ・ファイルの再帰検索をして、名前が正規化前後で不一致なら、リネームをかけるというものです。Directory.Moveメソッドが正規化の違いを無視するため、フォルダ名は一度乱数を追加した別名を経由しています。
Mac2WinFN01.zipそれにしても、2年で壊れましたねWestern Digital。元々個人的な印象があまり良くないメーカーですから、こんな事態には備えるべきだったのですが、背伸びはすべきじゃないとも思いました。つまり、普及価格帯でない容量に手を出すと、経済的にバックアップをしにくくなるということです。
バックアップを用意せずにデータだけ増やすのが無謀なのはもちろんですが、大事であればあるほど、手頃なところで回すようにしないと後が大変。それが今回の教訓でした。
最近のコメント