前日まで何の問題なく動いていた Windows 11 が、ある日の朝起動すると突然ブルースクリーンになってしまいました。スタートアップ修復など一通り試みるも失敗。試行錯誤の末、何とか修復できました。ダメだったことも含めて、自分用のメモとして残しておきます。
もくじ
トラブルの内容
トラブルの内容は次の通りです。
- ある日、Windows を起動すると、いきなり自動修復が始まり失敗。「PC が正常に起動しませんでした」と表示される。
- 回復ツール(青い画面のメニュー)で「スタートアップ修復」「システムの復元」「更新プログラムのアンインストール」を試したものの、ことごとく失敗し、状況は変わらず。
- コマンドプロンプトを起動してディスクの内容を確認すると、知らぬ間に Windows のドライブレターが
C:
からF:
に変わっている(謎)
原因の推測と、調べて知ったこと
- コマンドプロンプトから
F:
(元々はC:
で、Windows が入っている)の内容は見えているので、ハードウェアの故障よりも、ブート情報(Windows を起動するときに必要な情報)がおかしくなっている可能性の方が高そう。確証はないけれども。 - そもそも、ストレージのパーティション スタイルには、「MBR(Master Boot Record)スタイル」と「GPT(GUID Partition Table)スタイル」がある。
- ほとんどすべての Windows PC は、BIOS と UEFI(Unified Extensible Firmware Interface)のどちらかのブートモードで起動している。そして、MBR は BIOS をサポートし、GPT は UEFI をサポートしている。
- 今回トラブルを起こした PC は UEFI によるブートなので、GPT スタイルを使用していた様子(今頃・・・)。ということで、MBR のことは以降考えないようにする。
- 最近の Windows では、Windows Boot Manager というブートローダーが、BCD(Boot Configuration Data、ブート構成データ)を読み込んで起動する。ということは、BCD を修復することができれば、起動するようになるかもしれない。
BCD を修復
BCD の修復方法は、いろいろなサイトに詳しく載っていましたが、MBR の情報も混じっている場合も多く、結構混乱しました。ですので、以降は GPT の場合にしぼって書きます。
まず、BCD は単なる 1 個のファイルで、ファイル名はそのまんまの 📄BCD
です。また、その置き場所はシステム ボリュームの 📁EFI\Micrsoft\boot
のようです。なので、このファイルを修復します。
修復には bootrec
コマンドを使用します。/RebuildBcd
オプションを指定します。このコマンドは、ディスクをスキャンして、ディスク上に存在するすべての Windows の一覧を表示し、BCD ストアに追加することができます。ところがここで早速問題が発生しました。
> bootrec /RebuildBcd
Windows のインストールとして認識された合計数: 0
Windows が見つからないです。今回の現象を考えると当たり前なのかもしれませんが。見つからないものを見つけてくれるとコマンドだと思っていたのですが、甘かったです。
詳しい仕組みはわからないのですが、📄BCD
がすでに存在している状態だと、上手くいかないようです(ファイルを作り直してくれるわけではない様子)。そこで、 📄BCD
ファイルを手動で削除してから、もう一度 bootrec /RebuildBcd
を試してみることとします。上でも触れた通り、📄BCD
ファイルはシステム ボリュームにあるので、このままではコマンド プロンプトから操作できません。そこで、まずはシステム ボリュームにドライブレターを割り当ててやる必要があります。これには diskpart
コマンドを使用します。
# diskpart を起動します。
> diskpart
# ボリューム一覧を表示します。
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ---- ---------- ------- --------- --------
Volume 0 G DVD-ROM 0 B メディアなし
Volume 1 E ボリューム NTFS Partition 1863 GB 正常
(省略)
Volume 6 FAT32 Partition 99 MB 正常 システム
(省略)
# ボリュームレターが無く、ファイルシステムが「FAT32」なのがシステム ボリュームです。
# 上の場合、6 番のボリュームが該当するので、そちらを選択します。
DISKPART> select volume 6
ボリューム 6 が選択されました。
# 選択中のボリュームにドライブレターを割り当てます。
# ドライブレターは使用されていないものなら何でも良いので、ここでは V を割り当てることにします。
DISKPART> assign letter V
DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。
# diskpart を終了します。
DISKPART> exit
これで、コマンド プロンプトから V:
でシステム ボリュームを操作できるようになったので、いよいよ📄BCD
ファイルを削除します。ただ、私は削除するのが怖かったので、念のためリネームしておきました。そして、bootrec /RebuildBcd
を実行します。すると、今度は Windows が認識されました。相変わらず C:
ではなく F:
になっていますが、この際気にしないことにしました。認識された Windows をブート一覧に追加するか訊かれるので、「Y(はい)」と入力します。
> cd /d V:\EFI\Micrsoft\boot
# BCD ファイルをリネームします。
> ren BCD BCD.bak
# BCD ファイルを再作成します。
> bootrec /RebuildBcd
Windows のインストールとして認識された合計数: 1
[1] F:\Windows
インストールをブート一覧に追加しますか? Yes(Y)/No(N)/All(A):Y
上記の作業の後は「スタートアップ修復を 2 回実行すること」と様々なサイトに説明されていたので、2 回実行しました。ところが、相変わらずブルースクリーンとなり、Windows は起動してくれませんでした。
システム ファイルを修復
どうしたらよいのかわからないので、試しにシステム ファイルを修復してみることにしました。これには sfc
コマンドを使用します。コマンド プロンプトを起動し、コマンドを実行してみました。すると、どうやら破損したファイルがあったようです・・・。
> sfc /SCANNOW
Windows リソース保護により、破損したファイルが見つかりましたが、それらは正常に修復されました。
ファイルが正常に修復されたとのことなので、期待しつつ念のため「スタートアップ修復」を 2 回実行してみましたが、今度も残念ながら状況は変わらずでした。
今度は、sfc
コマンドに「起動ディレクトリ」と「Windows ディレクトリ」の指定を追加してみることにしました。起動ディレクトリはシステム ボリュームなので、もう一度ドライブレターの割り当てが必要です。再度、V:
を割り当てました。Windows ディレクトリは、相変わらずの F:
です。
> sfc /SCANNOW /OFFBOOTDIR=V:\ /OFFWINDIR=F:\Windows
Windows リソース保護は、破損したファイルを検出しましたが、その一部を修正できませんでした。
実行すると、今度は「一部修正できませんでした」という結果でした。修正できなかったファイルがあるのは困りものですが、前回と結果が異なることから、1 回目とは異なる対象に処理が行われたという可能性が大きそうです。また、実行にかかった時間も 1 回目より長かったです。
もしかしたら修復されたファイルもあるかもしれないので、かすかな期待を込めて「スタートアップ修復」を 2 回実行してみたところ、なんと直りました。長らく見ていなかった Windows 11 の背景画像付きサインイン画面は、カラフルで目にまぶしかったです。同時にわかったことなのですが、「スタートアップ修復」が 2 回必要というのは本当でした。1 回目はブルースクリーンになっていましたので。
なぜか C:
と F:
が入れ替わっていた問題については、元の通りに直っていました。結局原因はわからないままです。
感想
試行錯誤しまくったので、作業過程に不要な操作があったかもしれませんが、今となってはよくわかりません。
起動はしましたが、システムファイルが「一部修正できませんでした」状態なので、内部的にどうなっているか怪しいです。さっさとバックアップを取って、面倒でも再インストールした方が良いかもしれません。
あと、理由はわからないですが、「スタートアップ修復」は 2 回やるということを覚えました。
休止状態から復帰したら、Windowsのセットアップ画面が出るという症状になり、記事を参考に、無事復旧することができました。ありがとうございました。
こんにちは。コメントありがとうございます。
無事復旧できたとのことで、本当に良かったです。
お役に立てて嬉しいです。
こちらの記事のおかげで復旧できました。
どうもありがとうございます。
こんにちは。コメントありがとうございます。
無事復旧されたとのことで、良かったです(^^)
/が打つことができないです
コメントありがとうございます。
お力になれるかわかりませんが、よろしければ状況をもう少し詳しく教えてください!
初めまして、私も昨日から自動修復を繰り返して、エラーコード0xc00014cが発生しており、記事を読ませていただきました。自動修復を繰り返して、データを保持した状態での初期化もできず、空き容量も少なかったためシステムの復元ができない状態でした。
2点お聴きしたいことがございまして、現在正常に起動できないPCをMBRかGPTか判別する方法をご存知でしょうか?。仕様としては、現在Windows11で2年近く前に製造されたNECのパソコンを使っています。OSはSSDで1TBのHDDが内蔵されています。
既存のbcdファイルのリネームはどのように行いましたか?
大変恐縮ですが、教えていただけると幸いです。
何卒よろしくお願いします。
0128事象さん、はじめまして。
システムの復元は何故か上手くできないことが多いですね・・・
以下ご質問への回答なのですが、コマンドプロンプトの起動まではたどり着けている前提となります。
(もしコマンドプロンプトの起動もできない状態であれば、対応方法がわからないです・・・。申し訳ありませんm(__)m)
【正常に起動できない PC での MBR か GPT かの判別方法】
1. コマンドプロンプトから、diskpart を起動します。
2. 「list disk」と入力します。ディスクの一覧が表示され、「GPT」の欄に「*」(アスタリスク)が表示されていれば GPT、表示されていなければ MBR です。
【BCD ファイルのリネーム方法】
私の環境では、本記事の「BCD を修復」セクションに記載の方法「ren BCD BCD.bak」でリネームできたのですが、いかがでしょうか。
Win11へのアプデ直後から、ブルースクリーンが頻繫しており
自動修復もできなくなっていました。
CMDからメモ帳を起動し、Cドライブが見られるのにと思っていたところ
こちらの記事に出会って、修復できました!
ありがとうございます。
名無しTさん、こんにちは。
ブルースクリーンは突然来るので勘弁してほしいですよね
無事なおって本当によかったです!二度と起こりませんように(>_<)
6時間の格闘の末、初期化寸前のところでここに辿りつき、無事回復できました。本当にありがとうございます。
「0xc0000001」のエラーコードに苦しめられましたが、ご記載のとおりに作業し、ワタシの場合は、BCDファイルの再作成後ブート一覧に追加したところで止めて、コマンドプロンプトを閉じました。
そして、スタートアップ修復をせずそのまま「続行」をクリックし、ウインドウズに進むことで開くことができました。
スタートアップするたびにRebuildBcdでウインドウズが認識しなくなっていたので、認識させたまま動かしてみたのが良かったのかもしれません。
治ったのが嬉しくて長文になりました。すいません。同じ様に苦しんで方がここに辿りつけることを祈ります。ありがとうございました。
感謝さん、こんにちは。
暖かいコメントをいただき本当に嬉しいです。こちらこそありがとうございます。
初期化しなければならないかもというときの絶望感、思い出しただけでぞっとします
無事回復、本当に良かったです!!それにしても、スタートアップ修復をしない方が良いパターンもあるとは。勉強になります。
臨機応変にいろいろ試してみたほうが良さそうですね・・・
Windows11 24H2 アップデートから完全に応答不能になり、仕方なく強制シャットダウンをしたところ
ブートローダが壊れたようで起動してもブルースクリーンでWindowsを読み込まなくなってしまいました。
こちらに書かれている通り、MBRパーティションの記事が多くいろいろと試してもダメだったのですが
こちらのページにたどり着き、処置を行ったところ無事に復旧できました。本当にありがとうございます。
Kei5 さん、こんにちは。コメントありがとうございます。
無事復旧されたとのことで、本当に良かったです!
MBR と GPT のことは、私も調べながらとてもややこしく、「これはどっちのこと?」となったのを覚えております。
それにしても、大型アップデート後に調子がおかしくなるのは Windows あるあるですね(>_<)