まずはクローンを作るが、どういう方法にするか?
1:壊れた方のディスクのクローンを作り、raid0を復活させる。
2:壊れたディスクもそのままに、raid0のクローンを作る。(つまり壊れているraid0)
結論からいうと後者で何とかなった。
まずは順当に DDコマンドで(参考:ここらあたりがいいかな)でraid0のクローンを作る(この為2TBのディスクを買った)。色々やったがどうしてもスーパーブロックのエラーで修復出来なかった。途方に暮れ、色々ぐぐったら、世の中捨てたもんじゃない。偉い諸先輩が苦労していて、ddrescueなるコマンドがあることを知った。これに似たdd_rescueも有るが、色々検討の結果ddrescueの方が良さそう。(参考:ddresucueの解説)ダウンロードはここから ddrescue-1.8-3mdv2009.0.x86_64.rpm(私のCentOSは64bit環境)をダウンロードし、保存してあるディレクトリーに移り、
# rpm -Uvh ddrescue-1.8-3mdv2009.0.x86_64.rpm
でインストールする。
ddrescureはGUI環境ではないので、コマンドを打つしかない。
早速クローンを作成
# ddrescure /dev/md126 /dev/sde1 raid0.log
md126は壊れているraid0、sde1は新しく買った2TBのディスク、raid0.logはなんでも良い、この名前でログが作成される。
私の場合は16時間掛かっても終わらなかったので、ctrl+Cで強制終了。
約400GB弱が修復できず、残りは修復出来たみたい!!! 2TBは5ー6時間で終わったみたい、残りの時間はエラー修復の時間だと思う。
とはいえスーパーブロックが壊れている筈なので、
# xfs_repair /dev/sde1
とやったら前はPhase1でエラーが出ていたがここは通過し、Phase2でエラーが出た。これはいいぞ、で再度
# xfs_repair /dev/sde1
としたら、Phase7まで行って無事終了。バンザーイ
早速、マウントして中身を見る
# mount -t xfs /dev/sde1 /test1 test1は事前に作って置いたマウントポイント(場所はどこでもいい)
そうすると/test1直下にlost+foundというディレクトリーが出来て,その下に1495個のディレクトリーが(名前は数字の羅列)出来、その下にディレクトリーやファイルがある。これはルートのディレクトリーが壊れたので、パスが分からなくなったと思われる、ともかくディレクトリやファイルが修復されている。もっともディレクトリの中身が無い物もある。多分修復出来なかった部分だと思う。此所までくれば何とかなる。メデタシ、メデタシ
注:思い出しながら書いたので、抜けや勘違いがあるかも、気がついたら"お問い合わせ"から是非教えてください。
多分プロに頼んだらもっとデーターが修復できていると思う。ほぼ素人の私でも此所まで出来たのだから。
書いてしまうとこれだけだが、実際はゴールデンウィークの4日間を費している
(副題:raid0修復)