启动和 UEFI

重要

本节中的某些信息可能仅适用于 Windows 10 移动版和某些处理器体系结构。

运行 Windows 10 的设备对启动到 OS 有若干项要求。 设备固件初始化所有硬件后,设备需要确保有足够的电力来启动。 之后,设备需要确保设备正在启动到相应的 OS 中,具体取决于用户是否要在设备上执行更新或还原,或者用户是否想要将设备启动到主 OS。

为了适应其中每个场景,Windows 10 启动过程使用以下组件:

  • 片上系统 (SoC) 供应商提供的固件引导加载程序。

  • SoC 供应商提供的 UEFI(统一可扩展固件接口)环境。

  • Microsoft 提供的 Windows 启动管理器。

本文概述了启动过程,并更详细地介绍了 SoC 固件引导加载程序、UEFI 和 Windows 启动管理器。

启动过程概述

当 Windows 10 设备打开时,它会经历以下高级过程:

  1. 设备已打开并运行特定于 SoC 的固件引导加载程序,从而初始化设备上的硬件并提供紧急刷写功能。

  2. 固件引导加载程序启动 UEFI 环境,并将控制权移交给 SoC 供应商、Microsoft 和 OEM 编写的 UEFI 应用程序。 这些应用程序可以利用 UEFI 驱动程序和服务。

  3. UEFI 环境会启动 Windows 启动管理器,后者会确定是启动到全闪存更新 (FFU) 映像刷写或设备重置模式、更新 OS 还是主 OS。

下图简要说明了此过程。

boot process overview for windows phone.

下面是有关此图中某些组件的更多详细信息:

  • 更新 OS 是 Microsoft 提供的最小 OS 环境。 此 OS 专门用于安装更新。

  • 全闪存更新 (FFU) 映像刷写模式是指将 OS 映像刷写到设备存储的 UEFI 应用程序。 Microsoft 提供可在非制造场景中使用的 UEFI 刷写应用程序。 OEM 还可以实现自己的 UEFI 刷写应用程序。 有关详细信息,请参阅捕获和应用 Windows 完整闪存更新 (FFU) 映像

SoC 固件引导加载程序

SoC 固件引导加载程序会初始化设备运行所需的最小硬件集。 SoC 固件引导加载程序旨在尽快完成,在运行时,不会向屏幕绘制任何内容。 SoC 固件引导加载程序完成后,设备将启动进入 UEFI 环境中。

SoC 固件引导加载程序还包含一种紧急刷写功能,允许在以下情况下刷写设备:启动环境不稳定,且无法使用 Microsoft 提供的刷写工具进行基于完整闪存更新 (FFU) 的映像的刷写。 紧急刷写需要特定于 SoC 的工具。 有关详细信息,请与 SoC 供应商联系。

UEFI

Windows 10 利用统一可扩展固件接口 (UEFI) 来支持将系统控制从 SoC 固件启动加载程序移交给 OS。 UEFI 环境是一个最小启动 OS,设备可在其上启动,并且 Windows 10 OS 可在其上运行。 有关详细信息,请参阅 Windows 中的 UEFI

了解 Windows 启动管理器

Windows 启动管理器是 Microsoft 提供的一个 UEFI 应用程序,用于设置启动环境。 在启动环境中,启动管理器启动的单个启动应用程序在设备启动之前为所有面向客户的场景提供功能。

重要

启动环境中的所有组件都由 Microsoft 提供,不能由 OEM 修改、替换或省略。

启动应用程序会实现以下场景的功能:

  • 启动前为设备电池充电。

  • 捕获和保存脱机故障转储(仅限开发人员版本)。

  • 使用新映像刷写设备。

  • 重置设备。

  • 更新设备。

  • 将设备启动到主 OS。

下图说明了启动管理器在被 UEFI 环境启动后所遵循的进程的一些关键部分。

boot manager process for windows phone.

以下步骤更详细地描述了此过程:

  1. UEFI 环境启动启动管理器后,启动管理器将初始化启动库,读取启动配置数据库以确定要运行哪些启动应用程序以及运行它们的顺序。 启动管理器按顺序启动应用程序,每个应用程序在完成后退出启动管理器。

    启动库是扩展现有 UEFI 功能的函数库,旨在用于启动环境中。 只有启动应用程序(由启动管理器启动)有权访问启动库。

  2. 启动管理器会首先捕获用户按下的任何保留硬件按钮组合。

  3. 在非零售 OS 映像中,启动管理器接下来会运行脱机故障转储启动应用程序,使设备能够从以前的 OS 会话捕获物理内存快照。 当设备异常重置时,系统会在整个重置期间保留上一个 OS 会话的内存。 发生这种情况时,脱机故障转储应用程序会保存该内存并将其转换为脱机故障转储文件,该文件可传输到设备外并进行分析。 如果设备在以前的 OS 会话中未异常重置,则脱机故障转储应用程序会立即退出。

  4. 在所有 OS 映像中,启动管理器接下来会运行 mobilestartup.efi。 此应用程序会运行多个启动库,其中一些库仅在首次启动(例如,预配安全启动策略)或仅在非零售映像(例如,进入 USB 大容量存储模式)中运行。 始终运行以下库:

    1. 首先,mobilestartup.efi 会运行用于实现 UEFI 电池充电的库。 此库允许用户在设备处于启动环境中(或被视为已关闭)时为其设备充电。 首先运行此库,以确保设备有足够的电力完全启动。 有关涉及电池充电应用程序的场景的详细信息,请参阅启动环境中的电池充电

    2. 接下来,mobilestartup.efi 会运行用于实现刷写、设备重置和更新的库。 这些库会确定设备是应启动到刷写模式还是设备重置模式,或者设备是否应继续更新 OS 或主 OS。

  5. 如果 mobilestartup.efi 无法启动到刷写模式或设备重置模式,启动管理器会启动到主 OS 或更新 OS。

启动环境中的电池充电

UEFI 电池充电应用程序的体系结构

Windows 中的 UEFI

捕获和应用 Windows 完整闪存更新 (FFU) 映像