level 13
win开机启动过程揭秘
Windows开机启动时长是指从加电自检结束到启动到桌面所用的时间。此前我们常用的电脑多采用传统的BIOS(Legacy BIOS),当加电自检过程完成之后,若设备没有问题,自检顺利通过,BIOS会引导电脑读取硬盘中的MBR信息,将引导分区中的扇区代码读入内存并将控制权交给该代码处理。引导扇区代码读取并加载NTLDR文件,读取BOOT.INI文件,加载NTDETECT.COM。此后,NTLDR加载合适的内核和HAL映像文件,读入SYTEM注册表HIVE文件,加载驱动程序,调用NTOSKRNL.EXE并由它开始初始化执行程序子系统并引导系统启动设备驱动程序,在一系列的初始化工作完成后为系统本机应用程序作准备并运行SMSS.EXE。SMSS负责初始化注册表,创建系统环境变量,加载Windows子系统内核模块,启动子系统进程CRSS,启动登录进程WINLOGON。然后开始执行创建初始窗口和桌面对象等过程。然后创建服务控制管理器(SCM)进程(\SYSTEM32\SERVICES.EXE),它加载所有的标记为自动启动的服务程序和设备驱动程序和本机安全验证子系统(LSASS)进程(SYSTEM32\LSASS.EXE)。当一切加载成功且用户在控制台成功登录后,SCM则认为系统引导成功。之后,我们便看到了桌面。
目前越来越多电脑使用UEFI BIOS,传统的Legacy BIOS对应的分区方案为“MBR分区”,而UEFI BIOS对应的分区方案为“GPT 分区”。UEFI下启动Windows的流程为:
UEFI BIOS→EFI系统分区→\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI→EFI\MICROSOFT\BOOT\BCD→\WINDOWS\SYSTEM32\WINLOAD.EFI→加载内核启动系统
ESP分区为UEFI下Windows的引导分区,实际上就是一个FAT格式的分区,并无其他特殊的要求,并不像在传统BIOS下启动Windows需要“活动的主分区”。在ESP分区下,只需EFI文件夹中存在几个重要的文件:BOOTX64.EFI(或BOOTIA32.EFI)、MICROSOFT/BOOT/BOOTMGFW.EFI、MICROSOFT/BOOT/BCD、MICROSOFT/BOOT/ZH-CN即可满足系统启动的需要。从系统启动光盘中找到这些文件,复制粘贴到ESP分区中即可启动系统。
知道了这些应该就可以一起愉快的玩耍了

