概要
RAIDディスクが見えずWindowsが起動しない時は、トラブルシューティングツールからRAIDドライバをロードするとRAIDディスクが見えるようになります。
背景
色々あってWindowsが起動しなくなり、回復環境から様子を見てみるとCドライブの入ったRAIDディスクが見えなくなっていました。
RAIDコントローラのドライバを足してやり、ブート情報を作り直してやると起動しました。
やりかた
事前準備
USBメモリとかに使っているRAIDコントローラのドライバを保存して、マシンに挿しておいてください。(infファイルが要る。sysファイルとかも要るのかも。)
Windows回復環境からコマンドプロンプトを起動する
回復ドライブが生きていれば回復ドライブから、そうでなければ適当にWindowsのインストールメディアから、Windows回復環境に入ります。
[トラブルシューティング]-[コマンドプロンプト]をクリックする。
RAIDコントローラのドライバを読み込む
diskpartからRAIDディスクが見えていないのか確認します。
diskpart
list disk
# ついでにUSBメモリのドライブレターも見ておく
list vol
exit
ディスクが見えていなければRAIDドライバをロードします。
drvload <USBメモリに置いたドライバのinfファイルのパス>
# 例えば drvload C:\hogedriver.inf
RAIDディスクが見えるようになったか確認します。
diskpart
list disk
# これでRAIDディスクが見えるようになっているはず
list vol
# ちゃんとボリュームも見えるか確認
exit
ブート情報を作り直す
ブート情報を作り直して、Windows起動時にRAIDコントローラのドライバを読んでくれるようにします。
diskpart
list vol
# システムパーティションっぽいやつを探す。ドライブレターが振ってなくて100MBくらいのやつ。
# ついでにWindowsが入っているボリュームのドライブレターも探しておく
# あたりをつけたボリュームにドライブレター(ここではz)を振る
select vol <システムパーティンっぽいボリュームの番号>
assign letter=z
# dir z: してEFIがあれば当たり。BIOSの場合どうなってるかは知らない。
exit
# BCDファイルを作り直す
Z:\EFI\Microsoft\Boot\BCD BCD.back
bcdboot <Windowsが入っているドライブレター>:\windows /L ja-jp /s Z: /f all
# HAL.DLLを作り直す
sfc /scanall /offbootdir=z: /offwindir=<Windowsが入っているドライブレター>:\windows
Windows回復環境に戻り、Windowsを起動します。
おまけ
BIOSの場合はどうするの
やってませんが、この辺を参考にするといいんじゃないでしょうか。
Windows Server: BCDファイルの修復方法(起動モード: BIOS) | Dell 日本
本ドキュメントでは、起動モードがBIOSの環境において、BCDファイルの破損によりOSが起動できない場合の復旧方法について説明します。
sfcの部分、何をやってるの
今回の背景にある「いろいろ」の部分、本当にいろいろあり、起動しなくなった時点と対応している時点でハードウェア構成が違います。BCDを作り直しても、HAL.DLLでエラーが出てWindowsが起動しませんでした。
なので、HAL.DLLを作り直してもらうためにsfcを実行しています。
他の方の環境だともしかしたら要らないかもしれません。
コメント