Windows 11 が起動しないのを修復した備忘録(ブート情報・システムファイル修復)

前日まで何の問題なく動いていた 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 回やるということを覚えました。

参考

kpdn

お寿司とゲームと動物が好きな、フリーランスのエンジニアです。フロントエンドからインフラまで日々奮闘中です。最近は物忘れがどんどんがひどくなってきました。

8件のコメントがあります

  1. 匿名

    休止状態から復帰したら、Windowsのセットアップ画面が出るという症状になり、記事を参考に、無事復旧することができました。ありがとうございました。

    1. アバター画像
      kpdn

      こんにちは。コメントありがとうございます。
      無事復旧できたとのことで、本当に良かったです。
      お役に立てて嬉しいです。

  2. 匿名

    こちらの記事のおかげで復旧できました。
    どうもありがとうございます。

    1. アバター画像
      kpdn

      こんにちは。コメントありがとうございます。
      無事復旧されたとのことで、良かったです(^^)

  3. 匿名

    /が打つことができないです

    1. アバター画像
      kpdn

      コメントありがとうございます。
      お力になれるかわかりませんが、よろしければ状況をもう少し詳しく教えてください!

  4. 0128事象

    初めまして、私も昨日から自動修復を繰り返して、エラーコード0xc00014cが発生しており、記事を読ませていただきました。自動修復を繰り返して、データを保持した状態での初期化もできず、空き容量も少なかったためシステムの復元ができない状態でした。
    2点お聴きしたいことがございまして、現在正常に起動できないPCをMBRかGPTか判別する方法をご存知でしょうか?。仕様としては、現在Windows11で2年近く前に製造されたNECのパソコンを使っています。OSはSSDで1TBのHDDが内蔵されています。
    既存のbcdファイルのリネームはどのように行いましたか?
    大変恐縮ですが、教えていただけると幸いです。
    何卒よろしくお願いします。

    1. アバター画像
      kpdn

      0128事象さん、はじめまして。
      システムの復元は何故か上手くできないことが多いですね・・・

      以下ご質問への回答なのですが、コマンドプロンプトの起動まではたどり着けている前提となります。
      (もしコマンドプロンプトの起動もできない状態であれば、対応方法がわからないです・・・。申し訳ありません‍m(__)m)

      【正常に起動できない PC での MBR か GPT かの判別方法】
      1. コマンドプロンプトから、diskpart を起動します。
      2. 「list disk」と入力します。ディスクの一覧が表示され、「GPT」の欄に「*」(アスタリスク)が表示されていれば GPT、表示されていなければ MBR です。

      【BCD ファイルのリネーム方法】
      私の環境では、本記事の「BCD を修復」セクションに記載の方法「ren BCD BCD.bak」でリネームできたのですが、いかがでしょうか。

コメントを残す