EFI Windows 起動の仕組みと復旧コマンドの使い分け

「No bootable device」というエラーメッセージを見た瞬間、多くの人は焦ります。パソコンが起動しないからです。このエラーは単なる故障ではありません。パソコンの起動プロセスの奥深い部分で問題が発生していることを教えてくれる、重要な手がかりなのです。

このエラーに遭遇したとき、インターネットで調べると様々な修復コマンドが見つかります。bootrec、bcdedit、diskpart、bcdboot。これらのコマンドはどう違うのでしょうか。なぜ複数のコマンドが存在するのでしょうか。コマンドの役割の違いを理解すると、エラーの原因がどこにあるのか、どの順番で何を調べればよいのかが見えてきます。

パソコン起動プロセスと「No bootable device」エラー 電源投入 UEFI起動 デバイス探索 EFI発見 Boot Manager Windows起動 エラー発生 「No bootable device」の原因 ストレージの物理故障 パーティション構造の問題 ブートファイルの破損 UEFI設定の問題 GPT/MBR形式の不一致 修復コマンドの役割分担 diskpart : 調査・診断 bootrec : 基本修復 bcdboot : 完全再構築 bcdedit : 詳細設定

パソコンが起動するまでの道のり

まず、電源ボタンを押してからWindowsが立ち上がるまでに何が起きているのかを理解しましょう。

電源投入からUEFIまで

電源を入れると、最初にUEFI(ユーイーエフアイ、ユーフィー)というプログラムが動き出します。UEFIは、パソコンの基本的な部品(CPU、メモリ、ストレージなど)が正常に動作するかをチェックします。これをPOST(ポスト、Power-On Self Test)と呼びます。

UEFIは以前のBIOS(バイオス)と呼ばれていたプログラムの新しい版です。BIOSよりも高機能で、より大きなストレージを扱えます。

ブートデバイスの探索

ハードウェアの確認が終わると、UEFIは「どこからWindowsを起動するか」を決めなければなりません。SSD、USBメモリ、ネットワークなど、複数の選択肢があります。

UEFIはあらかじめ設定された優先順位に従って、各デバイスを順番にチェックします。図書館で本を探すとき、決められた順序で書棚を見て回るのと似ています。

EFIシステムパーティションの発見

UEFIがSSDやハードディスクを調べるとき、特定の形式で作られたパーティション(区画)を探します。これがEFIシステムパーティション(ESP)です。

パーティションとは、ストレージを用途別に分けた区画のことです。一つの建物を複数の部屋に分けるのと同じ考え方です。ESPは「起動専用の部屋」として使われます。

ESPは必ずFAT32という形式でフォーマットされ、通常100MB~500MB程度の小さなサイズです。この中に、Windowsを起動するために必要なファイルが保存されています。

ブートマネージャーの起動

ESPが見つかると、UEFIはその中の「bootmgfw.efi」というファイルを実行します。これがWindows Boot Manager(ブートマネージャー)です。

ブートマネージャーは「交通整理係」のような役割を果たします。複数のWindowsがインストールされている場合、どれを起動するかを決定します。通常は一つしかインストールされていないので、自動的にそれが選ばれます。

ブートローダーによるカーネル読み込み

ブートマネージャーが起動するWindowsを決めると、今度は「winload.efi」というブートローダーが動き出します。ブートローダーは実際にWindowsのカーネル(中核部分)をメモリに読み込む作業を行います。

カーネルとは、Windowsの心臓部にあたる「ntoskrnl.exe」というファイルです。このファイルが正常に読み込まれて実行されると、ようやくWindowsが起動します。

「No bootable device」が発生する段階

「No bootable device」エラーは、この起動プロセスの初期段階で発生します。具体的には、UEFIがブートデバイスを探している段階で、適切なESPやブートファイルを見つけられない状態です。

これは図書館で目的の本を探しているときに、該当する書棚がなかったり、書棚はあるのに本が見つからなかったりする状況に似ています。

エラーの原因は大きく4つに分けられます。ストレージの物理的な故障、パーティション構造の問題、ブートファイルの破損、UEFI設定の問題です。

GPTとMBRの違いが重要な理由

UEFIとESPを理解するために、ストレージのパーティション管理方式について説明します。現在、主に2つの方式が使われています。

MBR(Master Boot Record)

MBRは古い方式です。1980年代から使われており、2TB以下のストレージで動作します。プライマリパーティションを最大4つまで作成できます。

MBR方式では、ストレージの最初の512バイトにブート情報が記録されます。この部分が壊れると、パソコンは起動できなくなります。

GPT(GUID Partition Table)

GPTは新しい方式で、UEFIと組み合わせて使用されます。2TBを超える大容量ストレージに対応し、理論上は128個のパーティションを作成できます。

GPT方式では、パーティション情報が複数の場所に保存されるため、一部が壊れても復旧できる可能性があります。より信頼性が高い設計になっています。

UEFI起動にはGPTが必須

重要なのは、UEFI環境でWindowsを起動するには、ストレージがGPT形式でフォーマットされている必要があることです。MBR形式のストレージでは、レガシーBIOSモードでしか起動できません。

これが「No bootable device」エラーの原因になることがあります。ストレージはGPT形式なのにUEFI設定がレガシーモードになっていたり、その逆の状況が発生すると、起動できません。

修復コマンドの役割分担

「No bootable device」エラーを修復するとき、複数のコマンドが使われます。それぞれに明確な役割があります。

diskpart – 調査の基本ツール

diskpartは、ストレージやパーティションの状態を調べるためのツールです。医者が患者を診察するための聴診器のような存在です。

diskpartで最初に行うべき確認は以下の通りです。

diskpart
list disk
Code language: PHP (php)

このコマンドで、接続されているストレージの一覧が表示されます。重要なのは「GPT」列に「*」マークがついているかどうかです。マークがあればGPT形式、なければMBR形式です。

select disk 0
list partition
Code language: PHP (php)

パーティションの一覧を表示します。UEFI環境では、「EFI System Partition」や「システム」と表示されるパーティションが必要です。このパーティションが存在しない場合、ESPを作成する必要があります。

list volume
Code language: PHP (php)

各パーティションがどのドライブレター(C:、D:など)に割り当てられているかを確認します。回復環境では、通常の環境と異なるドライブレターが割り当てられることがあります。

bootrec – ブート情報の修復

bootrecコマンドは、ブート関連の問題を修復するためのツールです。家の修理でいえば、基礎工事を行う職人のような役割を果たします。

bootrec /fixmbr

MBR(マスターブートレコード)を修復します。これはMBR形式のストレージでのみ有効です。

bootrec /fixboot

ブートセクターを修復します。パーティションの起動情報が壊れている場合に使用します。

bootrec /scanos

インストールされているWindowsを検索します。このコマンドで「0個のWindowsインストールが見つかりました」と表示される場合、より深刻な問題があります。

bootrec /rebuildbcd

BCD(Boot Configuration Data)を再構築します。BCDは、どのWindowsをどのように起動するかの設定情報を含むデータベースです。

bcdboot – ブートファイルの新規作成

bcdbootコマンドは、ESPに必要なブートファイルを新しく作成するツールです。建築でいえば、新しい建物を一から建てる建築業者のような存在です。

bcdboot C:\Windows /s S: /f UEFI

このコマンドは、C:\WindowsからブートファイルをS:ドライブ(ESP)にコピーし、UEFI用のブート環境を構築します。bootrecが既存の情報を修復するのに対し、bcdbootは完全に新しいブート環境を作成します。

bcdedit – 詳細な設定変更

bcdeditは、BCDの内容を詳細に表示・編集するためのツールです。設計図を詳しく読んで、必要に応じて修正する設計士のような役割です。

bcdedit /enum

現在のブート設定を詳細に表示します。問題の原因を特定するときに重要な情報が得られます。

コマンドの使い分けと実践的な手順

これらのコマンドを効果的に使うには、適切な順序で実行することが重要です。

  • 段階1: 現状把握
  • 段階2: 基本的な修復
  • 段階3: 本格的な再構築
  • 段階4: 詳細な調整
  1. まずdiskpartで状況を把握します。ストレージがGPT形式かMBR形式か、ESPが存在するか、各パーティションがどの状態にあるかを確認します。
  2. bootrecコマンドで基本的な修復を試みます。/scanosでWindowsが検出されるか、/rebuildbcdでBCDを再構築できるかを確認します。
  3. bootrecで解決しない場合、bcdbootで完全にブート環境を再構築します。これは最も確実な方法ですが、既存の設定が失われる可能性があります。
  4. 必要に応じてbcdeditで細かい設定を調整します。複数のWindowsが存在する場合や、特殊な起動設定が必要な場合に使用します。

MBRからGPTへの変換

UEFI環境でWindowsを使用するには、ストレージをGPT形式に変換する必要があります。Windows 10以降では、mbr2gptというツールが提供されています。

mbr2gpt /validate /disk:0 /allowFullOS
mbr2gpt /convert /disk:0 /allowFullOS

このツールは、データを保持したままMBRからGPTに変換できます。ただし、変換後はUEFI設定をレガシーモードからUEFIモードに変更する必要があります。

変換に失敗する場合、「Cannot find OS partition」エラーが表示されることがあります。これは、BCDが正しく設定されていない、またはOSパーティションがアクティブになっていないことが原因です。

EFIシステムパーティションの作成

ESPが存在しない場合、diskpartで手動作成できます。

diskpart
select disk 0
create partition efi size=500
format fs=fat32 quick
assign letter=S

500MBのESPを作成し、FAT32でフォーマットして、S:ドライブとして割り当てます。その後、bcdbootでブートファイルを配置します。

bcdboot C:\Windows /s S: /f UEFI

回復環境でのドライブレター変更

重要な注意点があります。Windows回復環境では、通常の環境と異なるドライブレターが割り当てられることがあります。ESPがC:、WindowsシステムがE:という状況も珍しくありません。

作業前に必ずdiskpartでドライブレターを確認し、正しいパーティションを指定してください。間違ったパーティションに対してコマンドを実行すると、データが失われる可能性があります。

システムファイルの整合性確認

ブート修復と並行して、Windowsのシステムファイルに破損がないかも確認する必要があります。

sfc /scannow

このコマンドは、保護されたシステムファイルをスキャンし、破損したファイルを修復します。

DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth

DISMコマンドは、より深いレベルでシステムイメージの整合性をチェックし、修復します。

まとめ

「No bootable device」エラーは、UEFIによるブートデバイス探索段階で発生する問題です。解決には、diskpartによる現状把握、bootrecによる基本修復、bcdbootによる再構築、bcdeditによる詳細調整という段階的アプローチが有効です。UEFI環境ではGPT形式のストレージとEFIシステムパーティションが必須であり、MBRからGPTへの変換やESPの手動作成が必要になる場合があります。各コマンドの役割を理解することで、問題の根本原因を特定し、適切な修復手順を選択できます。

  1. Boot and UEFI – Windows drivers | Microsoft Learn – Windows 10のブートプロセスとUEFI実装要件に関するMicrosoft公式ガイド
  2. Use Bootrec.exe in the Windows RE to troubleshoot startup issues – Microsoft Support – bootrecコマンドの各オプション(/fixmbr、/fixboot、/scanos、/rebuildbcd)の公式説明書
  3. BCDBoot Command-Line Options | Microsoft Learn – bcdbootコマンドの詳細な使用方法とブート環境の構築に関するMicrosoft公式技術資料
  4. Convert a disk to GPT or MBR | Microsoft Learn – diskpartを使ったMBRとGPT間の変換手順に関するMicrosoft公式ドキュメント
  5. What Is UEFI, and How Is It Different from BIOS? – How-To Geek – UEFIとBIOSの違い、起動プロセスの基本概念を分かりやすく解説した技術記事
  6. UEFI – Wikipedia – UEFI仕様の歴史、技術的詳細、実装例に関する包括的な情報源
  7. MBR vs GPT: What’s the Difference Between an MBR Partition and a GPT Partition? – freeCodeCamp – MBRとGPTパーティション方式の違いと選択基準を詳細に比較した実践的ガイド