52Windows PE 启动流程简述
Windows PE 启动流程简述
微软原版的Windows PE(Preinstallation Environment预安装环境)是一个用于系统部署、修复和恢复的精简版Windows操作系统.它的启动过程比完整的Windows系统要轻量和快速得多.下面说明PE系统的启动步骤.
1. 硬件初始化阶段(BIOS/UEFI)
- BIOS(基本输入输出系统) 或 UEFI(统一可扩展固件接口) 首先执行硬件初始化.这一阶段负责自检和初始化系统的硬件,包括CPU、内存、硬盘、USB接口等.
- BIOS/UEFI从用户配置的启动顺序(NVRAM)中检查可启动设备,例如硬盘,U盘和光盘.在选择到合适的启动设备后,BIOS/UEFI会将启动控制权交给该设备的引导程序.
细节说明:
- UEFI模式通常是现代计算机的默认启动方式,与BIOS不同,它能够使用GPT分区表,支持更大的磁盘,并且具有更快的启动速度.
- BIOS模式下,会通过 MBR(主引导记录) 识别启动设备.
2. 引导加载程序(Bootmgr/Bootmgfw.efi)启动
- Windows PE的引导加载程序是 Bootmgr(Windows Boot Manager)/Bootmgfw.efi.
- Bootmgr 是负责加载Windows PE启动配置的程序,它会从启动设备中读取并执行引导配置数据(BCD,Boot Configuration Data,启动配置数据)文件中的启动配置.
- 在BCD中,定义了系统启动时需要加载哪些核心组件以及引导过程的参数,比如内核文件、启动选项、驱动加载等.
细节说明:
- Bootmgr 并不会直接启动操作系统内核,而是负责找到并解析BCD文件,然后加载内核相关文件.BCD文件包含了启动信息的配置,比如启动路径、设备标识、系统根目录等.
- 如果设备支持 Secure Boot(安全启动),此时会进行安全检查,确保引导文件没有被篡改.
3. 加载Windows PE核心组件
- 在加载引导配置文件之后,Bootmgr/Bootmgfw.efi会开始加载PE系统的核心文件,这个过程主要涉及到 boot.wim 文件的加载.
- boot.wim 是Windows PE的核心系统镜像文件,通常位于启动介质的
\sources目录下.wim文件是一个压缩包格式,包含了PE系统运行所需的最核心的操作系统文件.
细节说明:
- boot.wim 文件的大小远小于完整的Windows映像文件,通常不到500MB,而完整的Windows10系统wim文件高达4.72GB.
- WIM解压:boot.wim 被加载到内存后,系统会解压其中的必要文件.
- Windows PE会将这些文件直接加载到内存(也就是Ramdisk模式启动,详见我的第25篇文章:《25Ramdisk 启动模式简介》)而不是加载到硬盘,这样就可以在没有持久存储的情况下运行.
4. 启动WinPE内核
- bootmgr / bootmgfw.efi会从解压后的文件中启动PE系统的核心组件,这些组件包括:
- WinPE内核:PE系统使用的是被精简的的Windows NT内核.(例如,Windows图形界面桌面被移除了).
- HAL:加载与当前硬件架构匹配的硬件抽象层.
- 驱动程序:例如存储驱动、USB驱动、网络驱动等,以便与硬件进行交互.
细节说明:
- 在内核加载的同时,Windows PE会初始化基本的文件系统,允许用户访问存储设备.PE使用 NTFS 文件系统,并能够在启动后访问挂载的系统分区.
- 驱动程序的加载通过内置的驱动实现,PE系统所包含的驱动相对有限,可能无法适配所有的硬件而导致无法启动.
5. WinPE Shell 启动
- winpeshl.exe 是Windows PE系统启动后的一个重要组件,它负责启动PE系统的命令行界面.在加载完内核和驱动之后,系统会运行 winpeshl.exe.
- winpeshl.exe 是PE系统的shell程序,通常会以命令行界面(cmd)作为默认的与用户交互方式,但在第三方的PE系统中,它可以启动不同的图形界面工具或其他应用程序.
- PE系统的服务,比如文件管理、磁盘分区、网络等,会在这个阶段被加载并初始化.
细节说明:
- 如果PE系统有定制的特殊用途,比如用于自动化安装,winpeshl.exe 还可以启动特定的脚本来执行这些任务.
- 对于Windows ISO的自动化部署,PE启动后winpeshl.exe通常会调用 setup.exe 来启动Windows安装程序.
总结
微软官方的Windows PE系统启动流程:
- 硬件初始化:BIOS/UEFI初始化并选择启动设备,用户回车进入PE系统.
- 运行Bootmgr/Bootmgfw.efi:加载BCD文件,读取启动配置.
- 加载boot.wim:解压并加载Windows PE的核心文件.
- 内核加载:启动精简的Windows NT内核,初始化必要驱动.
- winpeshl.exe启动:进入PE系统环境,启动命令行界面.
- 启动结束:用户可以输入命令操作.
浙公网安备 33010602011771号