无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6201|回复: 3
打印 上一主题 下一主题

南狮王PE启动调用过程

[复制链接]
跳转到指定楼层
1#
发表于 2013-1-23 10:58:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了方便朋友们,特在此专门开贴说明。

南狮王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文件,可以完全达到自己的目的。

还有不清楚的地方,请跟帖回复说明。

评分

参与人数 1无忧币 +1 收起 理由
xuexiang + 1 很给力!

查看全部评分

2#
发表于 2013-1-23 14:44:40 | 只看该作者
可以不可以把原始WIM包精简成超小的,然后在pe_patch.wim 内把文件补全。这样启动会不会快点?
回复

使用道具 举报

3#
 楼主| 发表于 2013-1-23 15:32:58 | 只看该作者
原帖由 ramos 于 2013-1-23 14:44 发表
可以不可以把原始WIM包精简成超小的,然后在pe_patch.wim 内把文件补全。这样启动会不会快点?


当然了,启动wim体积越小越快。

当到了一定大小的体积,启动速度就不明显了。

例如300M的启动速度,和500M的启动速度,差别不大。

但是对于低速 U 盘,启动体积超过200多M,启动速度几乎令人无法忍受。

再一个启动wim体积小,固然启动速度快,但受限于 X 盘的大小限制(现最大1024M),pe_patch.wim 也不会太大,否则,不能全部释放到 X 盘。

当然外置不受影响。但介质盘不能移走。

所以要权衡各种需求,折中考量。
回复

使用道具 举报

4#
发表于 2021-2-23 20:16:32 | 只看该作者
支持 分享 !
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-24 07:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表