|
为了方便朋友们,特在此专门开贴说明。
南狮王PE启动调用过程;
1,Windows PE 在特定媒体上加载启动扇区。系统将控制传递给 Bootmgr。Bootmgr 从启动配置数据 (BCD) 中提取基本启动信息,并将控制传递给包含在 Boot.wim 文件中的 Winload.exe 文件。然后 Winload.exe 将加载相应的硬件抽象层 (HAL),接着加载系统注册表配置单元和必要的启动驱动程序。Winload.exe 完成加载后,将会准备要执行内核 Ntoskrnl.exe 的环境。
2,该环境将执行 Ntoskrnl.exe 文件。然后 Ntoskrnl.exe 完成环境设置。系统将控制传递给会话管理器 (SMSS)。
3,SMSS 加载注册表的剩余部分,然后配置运行 Win32 子系统 (Win32k.sys) 的环境及其各种进程。SMSS 加载用于创建用户会话的 Winlogon 进程,然后启动服务和剩余的非必要设备驱动程序及安全子系统 (LSASS)。
4,Winlogon.exe 根据 HKEY_LOCAL_MACHINE\SYSTEM\Setup\CmdLine 注册表值来运行设置。南狮王的CmdLine 注册表值如下: PECMD.EXE MAIN %Windir%\system32\PECMD.INI
(通常PE是这样的:Winpeshl.exe 将启动 %SYSTEMDRIVE%\sources\setup.exe 文件,前提是该文件存在。如果该文件不存在,Winpeshl.exe 将确定 %SYSTEMROOT%\system32\winpeshl.ini 文件是否指定了某个应用程序。如果该文件未指定应用程序,则 Winpeshl.exe 将执行 cmd /k %SYSTEMROOT%\system32\startnet.cmd 文件。默认情况下,Windows PE 包含启动 Wpeinit.exe 文件的 Startnet.cmd 文件。Wpeinit.exe 将加载网络资源并协调网络组件(如 DHCP)。当 Wpeinit.exe 结束时,将会出现命令提示符窗口。当命令提示符窗口出现时,Windows PE 的启动进程结束。)
而%Windir%\system32\PECMD.INI 的内容如下: load \pecmd8rp.ini 即 PE 在启动介质的根目录下查找 pecmd8rp.ini 并按照 pecmd8rp.ini 的内容执行。
5,你打开 根目录下的 pecmd8rp.ini 文件就会发现,首先 PE 设置虚拟内存和临时文件夹,你可以根据自己需要修改(根本无需动.wim内核,方便DIY)。接着加载基本驱动,设置桌面,当 PE 执行到 LOAD \pepatch8rp.ini 这一句时,已经进到了桌面。
6,接下来执行关键的 LOAD \pepatch8rp.ini。你打开 根目录下的pepatch8rp.ini就会发现,其主要 调用 CALL DeviInstall CALL Loadnet ,顾名思义,当然是安装驱动(内置及外置),主要是显卡驱动你可以根据自己需要修改,例如用 DEVI 安装外置CAB驱动包,或者 pnputil 或者 drvload 安装你没有打包在CAB内的工作驱动;然后进行适当的清理工作;随后安装网卡驱动及启动服务等。
pepatch8rp.ini 文件还有设置桌面主题等等例句;
7,以上工作完后,返回到 pecmd8rp.ini 继续其它工作,例如打包补丁及后续设置工作。如下语句是释放补丁包(由于imagex86.exe 没有打包在wim内,所以根目录下必须有此程序,其它脚本等一样,如果少了,当然会带来这样那样的问题)
exec =%CurDir%\imagex86.exe /LOGFILE c:\logfile.log /apply %CurDir%\pe_patch.wim 1 x:\
当补丁包打完并进行适当的设置后,会重启资源管理器。自此,整个PE调到内存,启动过程完成。介质盘可以移走它用。
这个过程你搞明白了,遇到问题修改就很方便,不需动WIM文件,可以完全达到自己的目的。
还有不清楚的地方,请跟帖回复说明。 |
评分
-
查看全部评分
|