Windows が起動しなくなり、その原因がブート領域の破損だった・・・・という場合、「bootrec /fixboot」の実行は、定番の対処法の一つである。

しかし、その「bootrec /fixboot」を行うと「アクセスが拒否されました」とメッセージが出てしまい、復旧作業がそれ以上進まなくなってしまう・・・という症状が時々発生する。

問題発生時の画面(一例)アクセスが拒否されました
▲クリックで拡大

正直な話、この状態になると復旧は大変である。しかも Windows 10 バージョン1607 か 1703 あたりから、今まで定番だった対処方法でも復旧できないケースが増えてきた。
このページは、そんな場合の対処方法も含めている。

スポンサー リンク

注意事項

対処方法

まずはざっくり解説。
大きく分けて4つの対処方法がある。

  1. FAT32 の EFI システムパーティションなど、隠しドライブに対し chkdsk を行う
  2. EFI システムパーティションをフォーマット、その後BCDを再作成する
  3. Windows を部分的にクローンする
    • クリーンインストールで環境を失いたくない場合に行う。
    • Cドライブのみクローン (※他の隠しドライブはクローンしない) を行い、OSのクリーンインストール → Cドライブのみクローンという手順でリカバリする・・・・等の操作を行う。
  4. Windows が正常に起動するのであれば、気にせず放っておく
  5. Windows をクリーンインストールする
    • 上記1.~4. で効果がなかった、または手順が難しいという場合は、これしかない。
    • ブート領域に問題が発生しているので「上書きインストール」や「新たに開始」では問題が解決しないケースが出ると思われる。

軽症の場合、chkdskのみで問題が解決することもある。
重症の場合、「2.」または「3.」が必要。
「4.」については直下の「4. について補足」を読む。

4. について補足

  • Windows 10 バージョン 1607 または 1703 の頃から、メジャーアップデートを行った環境では
    • 「bootrec /scanos」等が異常な値を返しても正常に Windows が起動する
    • 「bootrec /fixboot」がアクセスが拒否される
    という環境が増えた。
  • そのような環境でも Windows が正常起動するケースも多く、Windows の動作に特に問題が起きていない状態であれば、これを気にしても仕方がない感じ。

ざっくり説明ここまで。
以下、上記「1.~3.」の手順説明

具体的手順

まず前準備: PCの起動

PCは、Windows の インストールメディアから起動する。
※ この時、メディアの起動を UEFI と 旧BIOS で間違えない事。
そして コマンドプロンプト起動を起動、「diskpart」で隠しドライブ(ブート領域)を探し、ドライブレターを付けるする。

  • > diskpart
    diskpart> list volume (システムドライブを確認する)
    diskpart> select volume X (FAT32のパーティションを選択)
    diskpart> assign letter b: (ドライブレター例)
    diskpart> exit
  • 重要: パーティションのフォーマットが目的の場合、ラベル名を覚えておく。

参考画像
アクセスが拒否されました
▲クリックで拡大
※この場合、ラベル名はなし

1. chkdskする場合

引きつづき、回復環境上のコマンドプロンプトで行う。

  • chkdsk c: /f #・・・・Windowsのシステムパーティション
    chkdsk b: /f #・・・・EFIシステムパーティション
  • 注意1
    • 上記は、
      回復環境のドライブ・・・・X
      Windows システム ・・・・ Cドライブ
      EFIパーティション ・・・・ Bドライブ
      という場合である。
  • 注意2
    • Windows RE が格納された回復パーティションも chkdsk したほうが良い。
      リカバリイメージがある場合、そちらも chkdsk をかけてみる
    • リカバリイメージがある例
      リカバリイメージがある例
      ▲クリックで拡大
    • chkdsk でリカバリイメージに異常が見つかった例
      リカバリイメージに異常が見つかった例
      ▲クリックで拡大
    • WinREに異常が見つかった場合、クリーンインストールがおすすめ。
      リカバリイメージに異常が見つかった場合、失われたファイルによってはもうリカバリは使わない方が良いと思う。
  • 注意3
    • 何かしらのエラーが発見された場合、エラーが出なくなるまでchkdsk を繰り返す。
    • 必要に応じ、パラメータを「/f」ではなく「/r」に変更し、ガッツリとエラー修正する必要があるかもしれない。

2. EFIパーティションをフォーマットする場合

以下も回復環境上のコマンドプロンプトで行う。
「bootrec /fixboot」で「アクセスが拒否されました」が出る場合、EFIパーティションをフォーマットし、そこからBCDを再作成するのが定番の問題解消法になる。

  • フォーマットのコマンド (B:ドライブをFAT32でフォーマット)
    format b: /FS:FAT32
  • BCDの再作成
    cd /d b:
    bootrec /Rebuildbcd
    ※ bootrec /scanos でもいい
    bootrec /fixboot ※実は実行しなくてもOK
    bcdboot c:\Windows /l ja-JP /s b: /f ALL
    bcdboot c:\windows /s b: /f UEFI (これは個人的メモ)
    ※ bcdboot c:\Windows /l ja-JP だけでもいい
    exit
  • EFIパーティションをフォーマットしてる例
    ※ 下図では、EFIパーティションを「S:」に設定している
    EFIパーティションをフォーマットしてる例
    ▲クリックで拡大
    ※ 途中でラベル名の入力があるため、ラベル名を覚えておく必要がある

※ここで裏技紹介

chkdsk や formatは、コマンドを打たなくてもメモ帳からGUI操作できる。
EFIパーティションをフォーマットしてる例
▲クリックで拡大
Windows 回復環境のコマンドプロンプトでも「notepad」と打つとメモ帳が起動する。
メモ帳で「保存」や「開く」を選択するとエクスプローラのメニューが開くので、そこから「フォーマット」や「プロパティ > ツール」でチェックディスクを行うことが可能。

回復環境から行う手順の紹介、ここまで

ここまでの手順を行えば、大抵は「bootrec /fixboot」の「アクセスが拒否されました」というエラーは解消しているはず・・・・と言いたい所だが、ここまでやっても「アクセスが拒否されました」が消えない場合がある。

まだ 問題が発生している場合、別の角度からアプローチを行う。

まだこの問題が発生している場合

  • Windows が正常起動するかどうか確認する
    • Windows が正常起動する場合
      ・・・・ Windows 10 バージョン 1607 または 1703 あたりから、「bootrec /fixboot」が「アクセスが拒否されました」となるようなPCでも、Windows が正常起動し、かつこの問題が修正できないケースが増えた。個人的な見解だが、この場合はそういうモノだとあきらめて、そのまま使うのが良いと思っている。
    • Windows が正常起動しない場合 1
      電源ボタン長押し強制終了状態や、シャットダウン 状態からであれば起動する場合
    • Windows が正常起動しない場合 2
      次項「3. Windows を部分的にクローン・レストアする」を行う。

3. Windows を部分的にクローン・レストアする

クローンツールなら何でもOKだと思う。
個人的には Paragon Backup & Recovery を使っている。というか、こういう用途の場合は EaseUS Todo Backup などよりも、Paragon Backup & Recovery が使い勝手が良い。

こんな感じで、Cドライブだけをバックアップ対象にする。
Windows を部分的にクローンする
▲クリックで拡大
細かい手順は割愛する。以下はざっくり解説。

  • バックアップの作製が終わったら、バックアップ元のドライブは パーティションを全削除した上でクリーンインストールを行う。(新品のストレージを用意してもOK)
  • クリーンインストール終了後、バックアップしておいたCドライブを新規にクリーンインストールしたCドライブに復元させる。
    • クリーンインストールで欲しいのは、新しく作成された「正常なブート領域」と「正常なストレージ構成」である。
    • そこに、以前のCドライブのファイルを展開していけば、無事、以前とほぼ同じPC環境が出来上がる。
    • ブート領域が壊れるより前に、事前に FAT32 の EFI パーティションをバックアップしていた場合であれば、その FAT32 の EFI パーティションを復元する事で正常な状態に戻すことも可能。
  • 余談
    • 個人的な話になるが、回復環境から bootrec /rebuildbcd などのコマンドを入力する自信が無かった頃、私は「EFI パーティションを事前にバックアップ、問題が起きたらバックアップから復元」という方法でブート領域の問題を解決していた。

このページの情報は以上。
サイト内の関連した更新から2~3年の時が建ってしまったが、この手のエラーに対してようやく経験値が貯まって来たので続きを書いた次第。

外部参考リンク

サイト内関連リンク