WinPE的DIY知识简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WinPE DIY知识简介
一、WinPE系统内核
1、PECMD 常用指令简介(请参考 PECMD.INI,详细命令说明请查看 PECMD.EXE)
FBWF:设置FBWF缓存,此处用来设置 X 盘大小
TEAM:执行一组指令
TEXT:在登录画面中或桌面窗口显示文字,可以设置文字的颜色、位置、字体大小WAIT:暂停或等待指定时间后再继续执行命令,单位毫秒
加前导“-”表示在指定的等待时间内遇到任何按键即中止等待,否则直至等待时间结束
FIND:依据条件表达式是否成立来确定执行后面两条指令的一条
ENVI:设置或清除环境变量
FILE:根据操作符操作文件或目录,没有操作符则表示删除操作
LOGS:启用日志以便记录每条命令的执行结果
配置文件结束之前,必须调用一次不带参数的"LOGS"命令,以关闭日志文件(确保日志写入文件)
PATH:操作目录,用于设置PECMD.EXE的当前工作目录或建立目录或删除目录
INIT:执行最基本初始化
EXEC:执行 EXE 、BAT、CMD 程序
CALL:调用DLL函数或调用子过程
REGI:读取或设置、删除注册表数据
HOTK:设置系统热键,并指定该热键执行的命令
LINK:创建快捷方式,如桌面和程序菜单
RAMD:设置虚拟磁盘
LOAD:按顺序逐条运行配置文件中的命令
SHEL:加载指定的SHELL,并将SHELL锁定
LOGO:设置或关闭登录画面
WALL:设置壁纸
MOUN:将WIM文件中的某个映像挂载到指定的目录中或卸下已经挂载上的映像文件NUMK:控制小数字键盘的开关状态
IFEX:依据条件表达式是否成立来确定执行后面两条指令的一条
2、txtsetup.sif
TXTSETUP.SI_为 cab 压缩格式,解压即可得 txtsetup.sif,其中包含了 sata、raid 驱动的描述(驱动程序在 SYSTEM32\DRIVERS),修改比较复杂。

其中有一点常见的是 WinPE 启动时的提示,即 [SetupData] 中的 loaderprompt
天琴星座 WinPE 中为:loaderprompt="Starting Lyra SuperMicro Windows PE ..."
3、注册表修改
注册表文件有 3 个,SYSTEM32 下的 SETUPREG.HIV(由 cab 格式的 SETUPREG.HI_ 解压得到),SYSTEM32\CONFIG 下的 DEFAULT 和 SOFTWARE
a)打开regedit,选中 HKEY_LOCAL_MACHINE(修改 SETUPREG.HIV 或 SOFTWARE)或HKEY_USERS(修改 DEFAULT,这个文件也可以加载到 HKEY_LOCAL_MACHINE 修改)
b)选择“文件->加载配置单元->选择你要修改的注册表文件->打开”,输入项名称时注意不能和当前项下面子项重名
c)修改加载项中的相关内容,完毕后选中加载的项,选择“文件->卸载配置单元->是”
4、SHELL32.DLL的修改
用 Resource Hacker 可以修改其中的注册表项(REGINST)、位图、图标、菜单等内容,比较复杂,下面列举一个简单的注册表修改
修改注册用户(RegisteredOwner)和公司(RegisteredOrganization),这两项在“系统属性”“常规”页面的“注册到”中显示
用查找功能定位到 RegisteredOwner,将最后一个字符串修改为你需要的名称,选择编译脚本,选择“文件->保存”
把修改的 SHELL32.DLL 替换到核心的 ISO 中,重新打包为 cab 格式的 WINPE.IS_ 这两项还有一个简单的修改方法就是修改 PECMD.INI(参考 PECMD 的 USER 命令),如在 PECMD.INI 中增加:
ER 老九*无忧启动论坛
复制代码
5、加入 ImDisk 支持并将外置程序 Ramdisk 的 Y盘替换为 ImDisk
ImDisk 可以加载 img、iso等格式的文件,使用控制面板中的功能可以修改文件大小,也可以生成不关联文件的虚拟内存盘
a)修改注册表
下载新版 PECMD,其中的 ImDisk_for_PE.REG 需要导入到 SETUPREG.HIV
注意:ImDisk_for_PE.REG 中的路径为 HKEY_LOCAL_MACHINE\_PE_,因此需要将SETUPREG.HIV 加载到 HKEY_LOCAL_MACHINE,项目名称为 _PE_
双击 ImDisk_for_PE.REG 导入到注册表,查看
HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Services\,如果下面有 ImDisk 子项则导入成功
顺便删除注册表中两条 Ramdisk Y盘的信息,分别为:
1.HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Services\Ramdriv
2.HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Enum\Root\UNKNOWN
复制代码
在左侧选中项目,右键->删除。

卸载 _PE_,将修改后的 SETUPREG.HIV 压缩为 cab 格式的 SETUPREG.HI_,替换到内核中
b)加入相关文件
将 PECMD 包中的 IMDISK.SYS 加入到内核 SYSTEM32\DRIVERS 下
将 IMDISK.CPL、IMDISK.EXE、IMDSKSVC.EXE 加入到 SYSTEM32 下,附件中有,也可以从其他已加入 ImDisk 的 PE 中提取
c)修改 PECMD.INI,加入 ImDisk 虚拟盘
1.EXEC !PECMD.EXE RAMD ImDisk,L1,FAT,Y:,ImDisk
复制代码
其中 L1 表示最小 1M,FAT 表示格式化为 FAT 格式(虚拟盘太小,不能格式化为 NTFS 格式),Y 表示盘符,详细信息请参考 PECMD
注意:ImDisk 格式化需要 FMIFS.DLL 支持,天琴星座的内核中没有 FMIFS.DLL,而是放在了外置程序的 PE_OUTERPART 下面的 COMMON.7Z 中。

所以若想将 Y 盘修改为 ImDisk,请将 FMIFS.DLL 加入到内核
d)在 PECMD.INI 增加如下内容,以加入 ImDisk 右键支持
1.`注册IMDISK右键
2.CALL RegImdRk
3.`注册IMDISK右键
4._SUB RegImdRk
5. REGI HKCR\Drive\shell\ImDiskSaveImage\=保存ImDisk虚拟磁盘
6.REGI HKCR\Drive\shell\ImDiskSaveImage\command\=rundll32.exe
imdisk.cpl,RunDLL_SaveImageFile %L
7. REGI HKCR\Drive\shell\ImDiskUnmount\=卸载ImDisk虚拟磁盘
8.REGI HKCR\Drive\shell\ImDiskUnmount\command\=rundll32.exe
imdisk.cpl,RunDLL_RemoveDevice %L
9. REGI HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\=加载为
ImDisk虚拟磁盘
10.REGI
HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\command\=rundl
l32.exe imdisk.cpl,RunDLL_MountFile %L
11. REGI HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\=加载为
ImDisk虚拟磁盘
12.REGI
HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\command\=rundl
l32.exe imdisk.cpl,RunDLL_MountFile %L
13._END
复制代码
把修改后的 PECMD.INI 替换到内核中
e)保存修改后的内核 WINPE.ISO,压缩为 WINPE.IS_,修改完毕。

6、修改默认的文件夹视图方式
a)将 SYSTEM32\CONFIG 下的 DEFAULT,加载到 HKEY_USERS,比如项目名称为 PE b)将
HKEY_USERS\PE\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams 导出c)将导出文件中关于文件夹视图部分的内容为:
1."Settings"=hex:08,00,00,00,04,00,00,00,01,00,00,00,00,77,7e,13,73,3
5,cf,11,ae,\
2. 69,08,00,2b,2e,12,62,04,00,00,00,01,00,00,00,43,00,00,00
复制代码
d)替换为你想要的格式,不同格式对应内容如下:
1.平铺查看
2."Settings"=hex:08,00,00,00,06,00,00,00,01,00,00,00,e5,25,f1,65,e1,7
b,10,48,ba,\
3. 9d,d2,71,c8,43,2c,e3,04,00,00,00,1a,00,00,00,43,00,00,00
4.缩略图查看
5."Settings"=hex:08,00,00,00,05,00,00,00,01,00,00,00,90,b2,eb,8b,d0,5
2,d0,11,b7,\
6. f4,00,c0,4f,d7,06,ec,04,00,00,00,07,00,00,00,43,00,00,00
7.列表查看
8."Settings"=hex:09,00,00,00,03,00,00,00,00,00,00,00,e0,a5,1f,0e,73,3
5,cf,11,ae,\
9. 69,08,00,2b,2e,12,62,04,00,00,00,01,00,00,00,43,00,00,00
10.详细信息查看
11."Settings"=hex:08,00,00,00,04,00,00,00,01,00,00,00,00,77,7e,13,73,3
5,cf,11,ae,\
12. 69,08,00,2b,2e,12,62,04,00,00,00,01,00,00,00,43,00,00,00
13.图标查看
14."Settings"=hex:08,00,00,00,01,00,00,00,01,00,00,00,e0,d0,57,00,73,3
5,cf,11,ae,\
15. 69,08,00,2b,2e,12,62,04,00,00,00,20,00,00,00,43,00,00,00
复制代码
e)保存文件->导入到注册表->卸载单元->替换到内核
还有一个简单方法就是在 PECMD.INI 中通过设置注册表数据修改
如设置为图标查看,在 PECMD.INI 中增加:
1.REGI
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Set
tings=@08,00,00,00,01,00,00,00,01,00,00,00,e0,d0,57,00,73,35,cf,11,
ae,69,08,00,2b,2e,12,62,04,00,00,00,20,00,00,00,43,00,00,00
复制代码
其中 @ 后面的内容即为上面列举的 "Settings"=hex: 后面的内容,把续行符 \ 去掉即可。

7、系统盘 X、外置程序盘 Y
a)PE 启动后系统所用盘符 X,查找相关资料后结论基本是不可修改
b)外置程序所在虚拟盘由 SETUPREG.HIV 中两个子项定义
1.HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Services\Ramdriv
2.HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Enum\Root\UNKNOWN
复制代码
其中 HKEY_LOCAL_MACHINE\pe\ControlSet001\Services\Ramdriv\Parameters 下面的"DriveLetter"="Y:" 为虚拟盘符,修改后还需要修改 WINPE.INI 中相关内容
"DiskSize"=dword:00100000 为虚拟盘大小,单位字节,十六进制数 100000
即为十进制 1048576 = 1024*1024 = 1M
8、PECMD 托盘菜单(没有测试)
用 Resource Hacker 打开 PECMD.EXE,选择菜单
托盘菜单默认没有宽屏的分辨率,自己增加或修改后编译脚本->保存
图中字符串 10025 为 PE 的超级登录口令的 MD5(需要者自己搜索“字符串 MD5”,网上有生成字符串 MD5 值的网页)
即使 INI 文件中的 SHEL 命令设置了口令,用这个超级口令依然可以登录 PE
字符串 10026 定义了一个热键,默认对应设置 800*600 的分辨率
9、主配置文件(PECMD.INI)的指定
加载注册表文件 SETUPREG.HIV,下图的 CmdLine 中指定了主配置文件的路径和文件名
10、登录画面、壁纸、系统信息及 OEM 信息(没有测试)
a)WINPE.INI(也有可能在PECMD.INI)中 LOGO 指令后面的图片为“登录画面”
b)WINPE.INI(也有可能在PECMD.INI)中 WALL 指令后面的图片为“壁纸”
c)注册号,加载注册表文件 SYSTEM32\CONFIG\SOFTWARE,如下图的 ProductId
这儿应该也可以设置注册用户(RegisteredOwner)和公司(RegisteredOrganization)没有测试和 SHELL32.DLL 中信息的加载顺序如何
d)系统属性常规页的左上角图片和右上角的一些信息可以用Resource Hacker 打开SYSTEM32\SYSDM.CPL
可以看一下位图1,字符串12、13,更多信息请搜索“SYSDM.CPL 修改”
e)左下角为 OEM 图片的显示位置,做一张170X120左右的BMP文件,文件名指定为OEMLOGO.BMP,放到 SYSTEM32 目录即可
f)右下角可以显示 OEM 文字信息按钮,用固定格式写一个文本文件,文件名指定为OEMINFO.INI,放到 SYSTEM32 目录,格式如下:
1.[General]
2.Manufacturer=天琴星座
3.Model=Windows XP SP3 PE
4.[Support Information]
5.Line1=版本:090226
6.Line2=PE DIY
复制代码
“=”号后面的内容随意修改,Line可以继续增加,更多信息请搜索“XP OEM 信息”
11、加入 WIM 文件关联
无忧论坛中两位高手的工具(lxl1638 的 WimTool 和 nn2nn 的 WiMNT)都非常强大且简单易用,下面以 WiMNT 为例说明加入的方法
a)将 WIMNT.EXE 加入到内核的 SYSTEM32 目录下
b)在 PECMD.INI 中增加如下内容:
1.`注册WIM文件关联
2.EXEC !%WS%\WIMNT.EXE /REG /M /MP Y:\WIM `注册WIM文件与WIMNT关联
复制代码
c)注意 PE 中外置程序加载在 Y 的根下,代码为 WINPE.INI 中的
1.MOUN %CurDrv%\MINIPE\OP.WIM,Y:,1
2.ENVI OPDir=Y:\外置程序
复制代码
由于 WIM 文件的默认挂载目录设置为 Y:\WIM,所以应将外置也挂载到 Y 下的一个目录,如修改为:
1.PATH Y:\PROGRAM `在 Y 盘根下建立目录 PROGRAM
2.MOUN %CurDir%\OP.WIM,Y:\PROGRAM,1
3.ENVI OPDir=Y:\PROGRAM\外置程序
复制代码
12、增加搜索各分区根下 PETOOLS 目录文件功能,并在桌面建立快捷方式
a)在 SYSTEM32 下增加文本文件 PETOOLS.INI,内容为:
1.`生成目标文件的快捷方式
2._SUB MAKELINK
3. LSTR Drive=%TOOLS%,1
4. ENVI V0=%StartMenu%\%Drive%盘PETools
5. LINK %V0%\target,%TOOLS%
6. EXEC =!CMD /C "COPY "%WINDIR%\SYSTEM32\Desktop.in1"
"%V0%\Desktop.ini""
7. TEAM SITE %V0%\*.*,+A+H+S|SITE %V0%,+R+S|ENVI V0=
8. TEAM FORX %TOOLS%\*.INI,TOOLSINI,0,LOAD %TOOLSINI%|ENVI TOOLSINI=
9. `TEAM TEXT %TOOLS%已经被装载到了开始菜单。

#0xEE,$20|WAIT 1000|TEXT
10. MESS %TOOLS%已经被装载到了开始菜单。

@挂载PETOOLS工具 #OK *2000
11._END
12.`搜索PETOOLS目录下文件
13.FORX @\PETOOLS,TOOLS,0,CALL MAKELINK
复制代码
b)在 SYSTEM32 下增加文本文件 DESKTOP.IN1,内容为:
1.[.ShellClassInfo]
2.CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
3.Flags=2
复制代码
c)在 PECMD.INI 增加建立桌面快捷方式的指令
1.LINK %Desktop%\搜索装载PETOOLS到开始菜
单,PECMD.EXE,LOAD %WS%\PETOOLS.INI,Shell32.dll#45
复制代码
纯内核启动时可用
二、WinPE系统外置
1、显卡、声卡、网卡驱动
大概可以如下修改:
使用提取工具,提取要加入的驱动,加入到外置程序相应的 cab 包中,如显卡DRIVERS_VGA.CAB,对应的加载文件为 START_VGA.CMD(这个可能不需要修改)
2、外置程序
如增加 WINPM9
a)使用 WIM 工具可写加载 OP.WIM(若为 img 格式的外置程序,先用 ImDisk 可写加载 img 文件,Windows 下可用的 ImDisk 下载地址:
http://www.ltr-data.se/opencode.html)
b)在“外置程序”目录建立新目录“WINPM”,将 WINPM9 的所有文件放到 WINPM 目录
c)卸载 OP.WIM 并确认更新
d)在 WINPE.INI 中增加
1.LINK %Programs%\磁盘光盘工具\Paragon Partition Manager
9.0,%OPDir%\WINPM\Program\launcher.exe,,%OPDir%\WINPM\Program\launc
her.ico
复制代码
三、DOS 工具
一般为 img 格式文件,可以用 WinImage 修改或用 ImDisk 加载修改
DOS 工具的启动顺序为:
CONFIG.SYS -> AUTOEXEC.BAT(批处理)
AUTOEXEC.BAT 中可能会再加载其他的批处理文件,用文本编辑工具即可修改这些文件WinPE启动过程简介及修改方法
一、纯WinPE,如老毛桃、天琴星座
1、加载引导区代码,相当于硬盘的MBR
修改方法:
a)用UltraISO打开ISO文件,选择“启动”->“保存引导文件”,即可得到引导文件(大小为2k),比如文件名为pe.bif(使用easyboot启动PE时即调用此文件)b)此文件中可以修改的地方有两处,用UltraEdit打开,找到下图中的位置,其中SETUPLDR.BIN指定下一步要调用的文件名,WXPE为SETUPLDR.BIN相对于根目录的路径
c)修改SETUPLDR.BIN和WXPE,注意和ISO中的文件名和路径对应且应该保持字节数不变,保存
d)用UltraISO打开ISO文件,选择“启动”->“加载引导文件”,选择刚修改保存的pe.bif,修改其中的路径和文件名与pe.bif中的一致,保存ISO文件,结束
2、加载在引导区代码中指定的SETUPLDR.BIN,如上图:
3、加载SETUPLDR.BIN中指定的,也就是本合盘中的“BOOT/”
4、加载SETUPLDR.BIN中指定的WINNT.XPE(常用名),也就是本合盘中的“X”,这个文件对于所有PE基本都一样,差别就在文件中指定WinPE.IS_路径的地方
5、加载WINNT.XPE中指定的PE系统内核“WinPE.IS_(cab压缩文件,可以用WinRAR解压)”
6、加载WinPE.IS_中的脚本TXTSETUP.SIF(由WinPE.IS_中TXTSETUP.SI_(cab压缩文件)解压得到,TXTSETUP.SIF 是一个安装信息文件(sif),主要用于 Windows 的文本安装模式,Windows PE 用到了文本安装模式的末尾和 GUI 安装模式的开始部分,可以利用它添加第三方驱动
7、加载PECMD.INI,这个文件就是“PECMD - WinPE Commander,功能强大的 WinPE 命令
解释工具”的配置文件,在里面可以运行各种PECMD的命令,注释使用“`”或“//”
如:启动过程记录(LOGS),使用这个命令可以生成启动过程日志,通过这个日志可以更深入的理解PECMD参数文件的加载过程,自己制作PE时可用清楚的看到启动过程是否有问题
修改注册表(REGI)
增加桌面快捷方式和开始菜单快捷方式(LINK)
8、PECMD.INI中间会加载WINPE.INI,该文件一个很重要的功能是配置外置程序,另外各个PE加载显卡驱动的命令一般也在这个文件中,如果有的PE在启动过程中直接加载了显卡驱动而导致PE启动后黑屏(部分ATI显卡),可以修改这部分代码为选项加载或不加载
9、启动结束
二、easyboot方式(只能用于光盘启动或U盘量产),如深山红叶
1、加载easyboot的引导文件(用easyboot软件自带,用easyboot制作iso文件时自动写入到iso引导区)
2、加载easyboot引导文件中指定的菜单文件,如CDMENU.EZB
3、加载菜单中选择的项,如选择PE,则下面的启动顺序同“一”中的步骤,如选择其他的image文件(可以用winimage编辑),则下面加载image文件中config.sys,autoexex.bat
三、grub4dos方式(多用于U盘启动)
1、光盘启动(将菜单集成到grldr,为grldr增加bin或bif等UltraISO可以加载的引导文件后缀,用UltraISO加载此引导文件即为grub4dos光盘启动)
a)加载引导文件(grldr),显示菜单
b)加载选择菜单中选择的项,下面同easyboot方式加载菜单中选择的项
2、U盘或移动硬盘启动(参考hwd6的PE中U盘、移动硬盘启动的制作)
a)使用grub4dos的MBR启动
a1)加载grub4dos的MBR
a2)加载MBR中指定的grldr
a3)加载菜单文件(首先加载grldr中集成的菜单,如没有则加载外部菜单文件)
a4)加载选择菜单中选择的项,如选择PE,则下面的启动顺序同“一”中的步骤,如选择其他的image文件(可以用winimage编辑),则下面加载image文件中config.sys,autoexex.bat
b)使用NT的MBR启动
b1)加载NT的MBR
b2)加载MBR中指定的NTLDR
b3)加载NTLDR中指定的BOOT.INI,hwd6PE中为BOOT\INI
b4)加载BOOT.INI中指定的grldr
b5)下面同“使用grub4dos的MBR启动”的a3、a4
完。

相关文档
最新文档