ブートおよび UEFI
重要
このセクションの一部の情報は、Windows 10 Mobileおよび特定のプロセッサアーキテクチャにのみ適用される場合があります。
Windows 10を実行しているデバイスには、OSを起動するためのいくつかの要件があります。 デバイスのファームウェアによってすべてのハードウェアが初期化された後、デバイスは起動に十分な電力があることを確認する必要があります。 その後、ユーザーがデバイスで更新または復元を実行するかどうか、またはユーザーがデバイスをメインOSで起動するかどうかに応じて、デバイスが適切なOSで起動していることを確認する必要があります。
これらの各シナリオに対応するために、Windows 10のブートプロセスでは次のコンポーネントが使用されます。
システムオンチップ (SoC) ベンダーによって提供されるファームウェアブートローダー。
SoCベンダーによって提供されるUEFI (Unified Extensible Firmware Interface) 環境。
Microsoftによって提供されるWindowsブートマネージャー。
この記事では、ブートプロセスの概要について説明し、SoCファームウェアのブートローダー、UEFI、およびWindowsブートマネージャーについて詳しく説明します。
ブートプロセスの概要
Windows 10デバイスがオンになっている場合、次のような大まかなプロセスが実行されます。
デバイスの電源がオンになっており、SoC固有のファームウェアブートローダーが実行されています。これにより、デバイス上のハードウェアが初期化され、緊急点滅機能が提供されます。
ファームウェアブートローダーは、UEFI環境を起動し、SoCベンダー、Microsoft、およびOemによって作成されたUEFIアプリケーションに制御を渡します。 これらのアプリケーションでは、UEFIドライバーとサービスを利用できます。
UEFI環境では、Windowsブートマネージャーが起動されます。これにより、完全なフラッシュ更新 (FFU) イメージの点滅またはデバイスリセットモード、更新OS、またはメインOSを起動するかどうかが決まります。
次の図は、このプロセスの概要を示しています。
この図の一部のコンポーネントの詳細を次に示します。
更新OSは、Microsoftによって提供される最小限のOS環境です。 このOSは、特に更新プログラムをインストールするために使用されます。
完全なフラッシュ更新 (FFU) イメージの点滅モードは、デバイスの記憶域にOSイメージをフラッシュするUEFIアプリケーションを指します。 Microsoftでは、製造以外のシナリオで使用できるUEFIフラッシュアプリケーションを提供します。 Oemは、独自のUEFIフラッシュアプリケーションを実装することもできます。 詳細については キャプチャし、Windowsの完全なフラッシュ更新 (FFU) イメージを適用を参照してください。
SoCファームウェアブートローダー
SoCファームウェアブートローダーは、デバイスを実行するために必要なハードウェアの最小セットを初期化します。 SoCファームウェアブートローダーは、できるだけ高速に完了するように設計されており、実行中に画面には何も描画されません。 SoCファームウェアブートローダーが完了すると、デバイスはUEFI環境で起動されます。
SoCファームウェアブートローダーには、ブート環境が安定していないときにデバイスをフラッシュできるようにする緊急点滅機能も含まれており、Microsoft提供の点滅ツールを使用したFull Flash Update (FFU) イメージベースの点滅は不可能です。 緊急点滅には、SoCに固有のツールが必要です。 詳細については、SoCベンダーにお問い合わせください。
UEFI
Windows 10では、Unified Extensible Firmware Interface (UEFI) を利用して、SoCファームウェアブートローダーからOSへのシステム制御のハンドオフをサポートしています。 UEFI環境は、デバイスが起動され、Windows 10 OSが実行される最小限のブートOSです。 詳細については、 「WindowsのUEFI」 を参照してください。
Windowsブートマネージャーについて
Windowsブートマネージャーは ブート環境を設定するMicrosoft提供のUEFIアプリケーションです。 ブート環境内では、ブートマネージャーによって開始された個々の ブートアプリケーション は、デバイスが起動する前に、すべての顧客向けシナリオの機能を提供します。
重要
ブート環境内のすべてのコンポーネントはMicrosoftによって提供され、Oemによって変更、置換、または省略することはできません。
ブートアプリケーションは、次のシナリオの機能を実装します。
起動前にデバイスのバッテリを充電します。
オフラインのクラッシュダンプ (開発者ビルドのみ) をキャプチャして保存します。
新しいイメージを使用してデバイスをフラッシュします。
デバイスをリセットします。
デバイスを更新しています。
メインOSにデバイスを起動します。
次の図は、UEFI環境によって起動された後にブートマネージャーが従うプロセスの主要な部分を示しています。
次の手順では、このプロセスについて詳しく説明します。
UEFI環境によってブートマネージャーが起動されると、ブートマネージャーは ブートライブラリを初期化し、ブート構成データベースを読み取って、実行するブートアプリケーションとその実行順序を決定します。 ブートマネージャーはブートアプリケーションを順番に起動し、各アプリケーションは終了後にブートマネージャーに戻ります。
ブートライブラリは、既存のUEFI機能を拡張する関数のライブラリであり、ブート環境内で使用するように設計されています。 ブートマネージャーによって起動されるブートアプリケーションのみが、ブートライブラリにアクセスできます。
ブートマネージャーは、まず、ユーザーが押した予約済みのハードウェアボタンの組み合わせをキャプチャします。
市販以外のOSイメージでは、ブートマネージャーは、デバイスが前のOSセッションから物理メモリのスナップショットをキャプチャできるようにするオフラインクラッシュダンプブートアプリケーションを次に実行します。 デバイスが異常にリセットされると、前のOSセッションのメモリはリセット後も保持されます。 この場合、オフラインクラッシュダンプアプリケーションはそのメモリを保存し、デバイスから転送して分析できるオフラインクラッシュダンプファイルに変換します。 デバイスが前のOSセッションで異常にリセットされなかった場合、オフラインクラッシュダンプアプリケーションはすぐに終了します。
すべてのOSイメージで、ブートマネージャーは次にmobilestartup.efiを実行します。 このアプリケーションはいくつかのブートライブラリを実行します。その中には、初回起動時にのみ実行されるもの(たとえば、セキュアブートポリシーをプロビジョニングします。)、または市販されていないイメージ(たとえば、USB大容量ストレージモードを開始するには)でのみ実行されるものがあります。 次のライブラリが常に実行されます。
最初に、mobilestartup.efiはUEFIバッテリ充電を実装するライブラリを実行します。 このライブラリを使用すると、デバイスがブート環境にあるときに (またはオフになっていると認識されているときに) 、ユーザーはデバイスを充電できます。 このライブラリは、デバイスに完全に起動するのに十分な電力があることを確認するために最初に実行されます。 バッテリ充電アプリケーションに関するシナリオの詳細については 「ブート環境でのバッテリ充電」 を参照してください。
次に、mobilestartup.efiは、点滅、デバイスのリセット、および更新プログラムを実装するライブラリを実行します。 これらのライブラリは、デバイスを点滅またはデバイスリセットモードで起動する必要があるかどうか、またはデバイスがUpdate OSまたはメインOSに続行する必要があるかどうかを決定します。
mobilestartup.efiが点滅またはデバイスリセットモードで起動しない場合、ブートマネージャーはメインOSまたはUpdate OSで起動します。