先日、テレワーク中にPCが落ちて、ブルースクリーンのループにハマったのちに、起動すらしなくなった。
この手の謎事象の原因はハードウェア起因である事がおおく、ホコリ蓄積に起因した熱暴走や、
メモリ/ストレージの接触不良、意外なところではボタン電池(CR2032)の電池切れだったりする。
ひととおり掃除をし直し、電池も交換して、POST(Power On Self Test)は問題なく通るようになったが、
幾度となくブルースクリーンになったために、データ破損でOSが起動しなくなってしまった。
この手の症状で試す王道のコマンドは、次の3つである。
①chkdsk /f、②sfc /scannow、③DISM.exe /Online /Cleanup-image /Restorehealth
①はファイルシステムの検査・修復コマンド、②はWindowsローカルの整合性検査・修復コマンド、
③はオンラインでの整合性検査・修復コマンドとなる。③はネットに繋がっていないといけないので、
まずはセーフモードなり、インストールメディアの回復ツールで①と②をやって、
最低限OSが起動できるようにして、仮復旧後に③という手順になる。
…が、今回は、①②をやっても、ブート領域がやられてしまったらしく、スタートアップ修復も効かない。
復旧手順としては、bootrec /rebuildbcd→bootrec /fixbootと実行するのだが、
bootrec /rebuildbcdでwindowsのスキャンに成功し、
「インストールをブート一覧に追加しますか?」にYesと入力しても、
「要求されたシステムデバイスが見つかりません」というエラーメッセージ表示。
これは、EFIシステムパーティションが認識されていない。
diskpartと入力し、次のよう感じで操作する。
# | コマンド | 説明 |
1 | diskpart> list volume | ドライブ一覧が表示される。 EFIシステムパーティションは、100MB程度のFAT32なので、そのボリュームをXとする。 |
2 | diskpart> select volume X | EFIシステムパーティションを選択 |
3 | diskpart> assign letter=m | mドライブとしてアクセスできるようにする |
4 | diskpart> exit | diskpartの終了 |
で、
# | コマンド | 説明 |
1 | cd /d m:\EFI\Microsoft\Boot | mドライブのブート情報ディレクトリに移動 |
2 | ren BCD BCD.bak | おかしくなっているBCDファイルをリネーム |
3 | bootrec /Rebuildbcd | BCDファイルの再作成。エラー出ても良い |
4 | bootrec /fixboot | boot領域の修復 |
5 | bcdboot y:\Windows /l ja-JP /s m: /f UEFI | BCDの修復。yはbootrec /Rebuildbcdでスキャンしたドライブにすること。bcdboot y:\Windows /l ja-JP /s m: /f ALLと解説してるサイトが多いが、そっちだとうまくいかない。 |
これで、直る。あとは、③DISM.exe /Online /Cleanup-image /Restorehealthを管理者モードで実行する。
もしかしたら、1~3の手順は無駄で、4と5だけでよかったのかもしれない。
※コメント投稿者のブログIDはブログ作成者のみに通知されます