タイトル通りです。
UEFI(GPT) でインストールしたWindows 10/8.1が起動しなくなった場合を仮定して、以下のような検証をしてみました。
検証内容
- Windows (UEFI) のBCD領域を破壊する
(ブートできなくする) - BIOSを「UEFI」から「レガシーBIOS」に切り替える
(OSもDVDやUSBも UEFI 起動できなくする) - システム復旧DiscでPCをブートする (レガシーブート)
- 「スタートアップ修復」を2~3回かける
または「コマンドプロンプト」から修復を試みてみる - 修復後、BIOSの設定を
- 「UEFI」に戻さない
- 「UEFI」に戻してみる
これで Windows は起動するか?UEFIのWindowsシステムが意図せずレガシーなシステムに書き換わってしまうことはないか?
という実験です。かなり無駄な実験に終わっていますが、サイト内のある過去記事を書いた時に少し気になった事があったので追加検証を行ってみた、という趣旨になっています。
このページの検証について
ざっくりとまとめると以下。
- Windowsを復旧する際、復旧手順間違いでこのような事故 (UEFIブートがレガシーブートになってしまう) が発生するのか?という確認がメイン。
- ブート領域の単純な書き換えではUEFI Windowsはレガシーブトできない、という結果を確認した所で検証は終わり。
- UEFI Windows を レガシーブートさせる方法は、ページ後半で外部リンクを紹介するのみにとどまっています。
「Windowsが起動しなくなった場合」について
今回はこんな感じで起動不能にしてみました。
▲クリックで拡大
赤矢印の部分「DEL BCD」で BCD (ブート構成データ)を削除しています。
これでWindowsを起動するとこうなる
▲クリックで拡大
「BCDが見つかりません。エラー0xc000000f」
Windowsはおろか、回復環境も起動しない。
参考: この症状を復旧するための「正しい手順」
- インストールメディアまたはシステム修復ディスクをUEFI起動する
- 以下、いずれかの方法をとる
- 「スタートアップ修復」を行う
(1回でOK。自動で再起動するはず) - DISKPARTで (通常100MBの)FAT32システム領域をアクセス可能にして、コマンドプロンプトで「bootrec /Rebuildbcd」を行う。
※これの詳細な手順はサイト内「コマンドプロンプトからWindowsを復旧する4つの方法(Vista/7/8/8.1/10)」の後半に記載しています。
- 「スタートアップ修復」を行う
この手順を、敢えて レガシーブートした復旧メディアで行ってみます。
予測
ひょっとすると、以下のいずれかのような挙動をするんじゃないか?と大胆な予測を立ててみました。
- Windows 10/8.1 のシステムディスクが GPT から MBR に変更される
- Windows が レガシーブートで起動するようになる
- MBRディスクなのに UEFIモードで起動するようになる
- MBRに変更されないまでも、ブート領域におかしな情報が書き込まれる
- Windowsは復旧したように見えて、実は問題を抱えた状態になる
結果
少し考えればあたり前の話なのですが、「予測」に書いたような事は全く発生しませんでした。
- GPT が MBR に変更されることはなかった
- レガシーブートでは修復できない。Windowsも起動しない
- 「スタートアップ修復」も「bootrec /Rebuildbcd」も正常作動しない。
▲クリックで拡大
コマンドは一見成功したかのように見えるが、「要求されたデバイスが見つかりません」となり、ブート領域は正しく作成されない。 - もちろん、Windowsは起動しないまま。
まとめ
UEFIでインストールしたWindowsは、UEFIブートした「システム修復ディスク」や「インストールメディア」でなければ修復できない。
外部参考リンク
似たような実験している人はいないかな?と探してみた所、以下のようなページを見つけました。
→ UEFIのWindowsをBIOSモードで起動させる «ライフボート 裏ブログ
なるほど。意図的にシステム領域を削除しなければならないようです。
偶然の事故でUEFI が レガシーBIOSに変わってしまう・・・・というような事故は起きそうにないですね。
あとがき
ネット上でたまに見かける不可解な不具合は、「UEFI Windowsをレガシーブートした復旧メディアで修復した」可能性があるのかな?と思い、実験してみた次第です。しかし結果は「全く復旧できない」となり、かなり意味のない検証になってしまいました。