Windows10のRAID1がエラーになった場合の復旧方法※非ディスク破損の場合
以前の記事でWindows10のミラーリング機能を使ってRAID1を組みましたが、
使っていくうちにリカバリー操作が必要な場面が出てきたので書き記しておきます。
パソコンがブルースクリーンやフリーズ等で正常にシャットダウンできなかった場合にミラーリングしていたディスクがエクスプローラーに表示されなくなり、中身が見えなくなります。
コントロールパネルから「コンピューターの管理」を開くと以下のようにエラー状態になっていることが確認できます。
RAID1の同期が完了している状態だと状態列が「失敗」となり、
RAID1の同期中だと状態列が「冗長の失敗」となるようです。
HDDが破損したという場合は物理的に交換しないといけませんが、
今回はWindows側の同期処理に失敗しているだけなのでHDDの交換をせずに復旧していきます。
手順としては
1. 「異形式」となっているディスクのインポートする。
この時点でミラーリングしていたHDDが2個に分離し、独立したドライブ(DドライブとEドライブ等)として見えるようになります。
2. 同期中にこの状態に陥った場合はドライブ丸ごと差分比較し、ファイルが正常に残っているドライブを特定する。
3. 消しても問題ない片方のドライブを「削除」し、まっさらな状態にする。
4. もう一度ミラーリングの組みなおし。
という感じになります。
エラーになっているディスクを右クリックすると
「ディスクの再アクティブ化」という選択肢が出てくるので試しにやってみると、
というようにエラーになってしまい、どうにも復旧できませんでした。
「再同期」「リビルド」みたいなボタンがあれば良かったんですが、
いろいろ調べたり試しても良い解決法が見つからなかったのでこのような復旧手順になっています。
復旧手順(RAID1同期済みのディスクで、状態が「失敗」になっている場合)
1. 「異形式」となっているディスクが居るので、右クリックして「形式の異なるディスクのインポート」をクリックする。
2. そのまま「OK」をクリックする。
3. そのまま「OK」をクリックする。
4. するとドライブが2個に分離し、エクスプローラーからアクセスできる状態になります。
ミラーリングしていたドライブはHドライブだったので、
「Hドライブ + 自動で割り当てられたDドライブ」に分離したようです。
5. 元々使っていたHドライブの方は残しておくことにして、分離したもう片方の「Dドライブ」を削除していきます。
※事前に残す方のドライブをエクスプローラーで確認し、ファイルがちゃんとあるかどうか確認した方が良いです。
私が何度か遭遇した時にはちゃんとデータ残っていましたが、ファイルの書き込み途中にブルースクリーンになったりした場合は書き込み途中のファイルが消えたり破損しているかもしれません。
そういう場合でも運が良ければどちらか片方のドライブに正常なファイルが残っているかもしれません。
Dドライブを右クリックし、「ボリュームの削除」をクリックします。
6. 警告が表示されるので、「はい」をクリックします。
7. Dドライブが消えたので、今度はミラーリング再度設定していきます。
Hドライブを右クリックし、「ミラーの追加」をクリックします。
8. ミラーリングさせたいディスクを選択し、「ミラーの追加」をクリックします。
9. 「はい」をクリックします。
10. 同期状態になるので、同期が完了すればミラーリング復旧完了です。
復旧手順(RAID1同期中だったディスクで、状態が「冗長の失敗」になっている場合)
※↑の手順のスクリーンショットを撮ったタイミングと時期がずれてる関係で接続しているHDDがだいぶ少なくなっています。
ミラーリングの同期中にブルースクリーン等が起こるとこのように状態列が「冗長の失敗」となってしまいます。
状態列が「失敗」となっている場合と違い、エクスプローラーからドライブが見えている状態で、ファイルにもアクセスできます。
ただし「ディスクの再アクティブ化」や「ボリュームの再アクティブ化」を行ってもやはり「プレフィックスが見つかりません。」と表示されていまい、
同期させる方法がわかりませんでした。
この状態ではコピー元のドライブからコピー先のドライブへコピーしている最中に止まってしまった状態なので、
コピー先のドライブにファイルがコピーしきれていない可能性があります。
そこら辺も考慮しつつの復旧になります。
大部分はミラーリング完了状態の復旧手順と同じです。
1. 「異形式」となっているディスクが居るので、右クリックして「形式の異なるディスクのインポート」をクリックする。
2. そのまま「OK」をクリックする。
3. そのまま「OK」をクリックする。
4. 状態列が失敗となった時の復旧時と同じようにドライブが2個に分離しました。
おそらく元々のドライブレターである「H」になっている方がコピー元で、
自動的にドライブレターが割あたった「D」がコピー先のなのではないかと思います。(確認できていないので予想です。)
ここまで来たら後は状態列が失敗となった時の復旧手順と同じ操作をすれば良いのですが、
どちらのドライブを消していいものか判断する必要があります。
5. WinMergeを使ってドライブ丸ごと差分を比較し、ファイルが欠けていないかチェックします。
※私がこの状態に陥った時に差分を比較しましたが、両ドライブに全ファイル揃った状態でした。
おそらく「全ファイルコピー → ちゃんとコピーできているかチェック」というような工程に分かれており、
すでに全ファイルコピーされた状態だったのかもしれません。
WinMergeはソースの差分抽出ツールとして大活躍してもらっているツールです。
ファイル単位の比較やフォルダ単位の比較、エクセルの中身を比較したり、比較したいテキストをコピペっと抜き出しての比較もできる優れものです。
今回はWinMergeのフォルダ比較機能に活躍してもらいます。
以下の公式サイトへ行きます。
https://winmerge.org/
「ダウンロード」をクリックしてダウンロードページへ行き、「winmerge-{バージョン番号}-x64-exe.zip」をダウンロードします。
ダウンロードしたWinMergeのZipを解凍し、中に入っている「WinMergeU.exe」を起動します。
WinMergeのメニューから「ファイル > 開く」をクリックします。
このように差分を比較するファイル・フォルダーを指定する画面が表示されるので、
「1番目のファイルまたはフォルダ―」欄の参照ボタンをクリックし、「Hドライブ」(ミラーリングしていた片方)を選択します。
そして「2番目のファイルまたはフォルダ―」で「Dドライブ」(ミラーリングしていたもう片方)を選択し、「比較」をクリックします。
ファイル数にもよりますが、結構時間かかります。
比較が終わると差分の内容が表示されます。
実際のものはお見せできないので説明用に適当にフォルダを作りました。
FromフォルダとToフォルダを用意し、同じ中身にした状態でWinMergeで比較すると
このように比較結果列に「同一」や「〇〇ファイルは同一です」と表示されます。
こうなった場合は両フォルダに差分が無い状態です。
そして先ほど用意したFromフォルダに
・画像XXX.PNGを追加
・データ\画像2.PNGをペイントで書き換え
とやったうえでもう一度WinMergeで差分を比較すると
このようにファイルの存在有無やファイルの中身もバッチリ差分を検知してくれます。
この差分比較によって両ドライブのファイルにどういう差が発生しているのかを調べることができるので、
もしも差分が検知されたらファイルがちゃんとある方のドライブを「正ドライブ」としてメモっておきます。
差分が無い状態であればどちらのドライブを「正ドライブ」としても大丈夫です。
6. 後は↑で書いた「復旧手順(RAID1同期済みのディスクで、状態が「失敗」になっている場合)」の手順5へ飛び、
「正ドライブ」をそのまま残しておき、「正ドライブ」じゃない方のドライブを削除し、再度ミラーリングの設定を行えば復旧完了です。
以上、復旧手順でした。
おそらくもっと簡単な復旧方法があるんじゃないかと思いますが、私が試した感じだとこれが限界でした。
そしてこのRAIDを組んでいたHDDはデータ倉庫用のものなので、RAIDを組まなくても定期的なバックアップだけで事足りるし、
RAIDの再構築がしんどいなぁという事でWindowsの機能を使ってRAIDを組むのをやめました。
また今度RAIDを組むことになったらまたいろいろ試してみようと思います。