WinPE核心DIY修改教程Word格式.docx
《WinPE核心DIY修改教程Word格式.docx》由会员分享,可在线阅读,更多相关《WinPE核心DIY修改教程Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
那么意义明确了,不同的PE,核心就需要进行相应的调整,这样才可以达到最大利用率。
ISO核心PE的X盘大小调整方法(以毛桃0911为例)
找到核心文件WINPE.IS_,用WINRAR打开,把里面的WINPE.ISO提出来.用ULTRAISO打开WINPE.ISO,找到WXPE\SYSTEM32\PECMD.INI文件,看到FBWF这行,这条命令就是用来设置X盘大小的,不需要懂原理,会用就可以了.
命令参数如下:
FBWF[P可用内存百分数][L最小值][H最大值]
FBWFP20L32H64
三个参数都可单独使用,如FBWFL64表示强制设置64M的FBWF;
FBWF命令必须在MOUN命令之后
这样就可以设置X盘的大小了,把修改后的ISO保存,再用CAB压缩就OK.
IMG核心中X盘大小调整方案
一.FATIMGX盘调整方案
1.类似ISO一样调整FBWF(不过FBWF+IMG+卡巴=蓝屏,并且FBWF不太稳定),方法是先用WINRAR解压后缀为IM_的文件,把里面的IMG后缀的文件解压出来,然后用VDM加载,同样找到WXPE(这个文件夹名能会有点变化,不同的PE可能不同)\SYSTEM32\PECMD.INI,调整好后,卸载镜象.再用CAB压缩.
2.直接建立所需要大小的IMG(即X盘需要70M就建立70M大的IMG,并关闭FBWF)
假设我的PE的系统文件为60M,那么我要建立一个70M的IMG,则先打开VDM,建立一个70M的IMG,然后加载IMG-----格式化为FAT格式---把PE的文件都复制进去---卸载IMG-----在如上图最右边的压缩按钮。
这里还要再提一下,表面上PE的系统文件为60M,PE核心大小为70M,那么就多了10M空间,但启动后,X盘的剩余空间会比10M要大一些,这是因为启动后会删除一些启动后就没用的文件,例如SRS驱动等。
二.NTFSIMGX盘调整方案
1.用FBWF(方法和FATIMG一样,但也会蓝屏)
2.建立所需大小的IMG(和FATIMG有所不同,请注意),因为是NTFS格式的关系,所以我们可以起用NTFS压缩来自动压缩核心中的文件,例如,60M的文件,经过NTFS压缩后就变成了48M。
那么我们建立核心只要52M就可以放下原来是60M的文件。
过程是这样的:
建立一个50M的IMG-----格式化为NTFS格式-----启用NTFS压缩,接下来到了关键的一步,就是复制文件,这里和FATIMG的复制不同,FATIMG是一次全部复制过去就可以了,但NTFSIMG不可以。
首先把SYSTEM32目录以外的目录先复制过去,SYSTEM32目录里的文件要几个一批慢慢复制,遇到体积较大的文件如SHELL32.DLL,一次复制一个,假如遇到提示磁盘空间不足,则卸载IMG,重新再挂载再继续复制,直到所有文件都复制完毕。
复制完成后就可以卸载IMG了,然后把后缀名改为IM_,这里不要用CAB压缩,具体原因看下面PE启动内存的计算。
PE启动内存计算
PE的启动内存和核心有关,大概为下面这个公式(只是大概)
1.用CAB压缩过的核心
X*2+16(单位MB)(X为未压缩时的核心大小)
2.不用CAB压缩的核心
X+32(单位MB)(X为未压缩时的核心大小)
这里就可以解释为什么NTFSIMG的核心一般不用CAB压缩,因为NTFSIMG格式的核心用CAB压缩效果很差,压缩率低,例如:
50M的NTFSIMG用CAB压缩后才35M,而70M(里面有60M的文件)的FATIMG用CAB压缩后,体积变成了26-29M左右。
所以NTFSIMG不用CAB压缩,体积减小不多,而启动内存要加倍,因小失大
关于安装配置文件txtsetup.sif的简单说明
相信玩过精简版系统的朋友都知道这个文件的用途,同样PE里也有这个文件,这也是为什么我在文章一开始把PE比喻成类似未安装的系统,废话不多说,我就简单讲讲这个文件。
[WinntDirectories]
这个字段是用代码表示文件拷贝的目标文件夹,其根目录为%WinDir%即安装指定的Windows文件夹。
[SourceDiskFiles]
根据前面设定的代码表示文件拷贝的具体细节。
下面三段为集成SATASCSI等驱动时所用
[HardwareIdsDatebase]—硬件标识
[SCSI.load]——SCSI驱动加载
[SCSI]——SCSI设备说明
添加srs驱动实例
◇在PE中添加sata,raid驱动的方法:
(这里以IntelMatrixStorageManagerdriver为例,以便于说明,以下描述的驱动文件名只基于本实例,实际操作中的具体的文件名称以需要添加的具体驱动为准)
一.准备材料:
1.原版驱动文件
2.从PE中提取的txtsetup.sif文件
二.从PE中提取txtsetup.sif文件:
先将PE中的winpe.is_重命名为winpe.cab,然后用RAR解压出winpe.iso
用UltraISO打开它,将txtsetup.sif提取出来,并用记事本打开备用。
三.修改txtsetup.sif文件
1.打开驱动包,里面有一个扩展名为“.inf”或“.oem”的小文件,如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”),用记事本打开备用;
2.在txtsetup.sif中查找[SourceDisksFiles]字段,在其下添加iaStor.sys=1,,,,,,4_,4,1,,,1,4
3.查找[SCSI.Load]字段,在其下添加iaStor=iaStor.sys,4
4.切换到刚才打开的txtsetup.oem,查找HardwareIds关键字,将该字段下的代码全部拷贝到txtsetup.sif文件的[HardwareIdsDatabase]字段末尾,但需要更改一下代码的格式,比如将id="
PCI\VEN_8086&
DEV_27C3&
CC_0104"
"
iaStor"
改为PCI\VEN_8086&
CC_0104=iaStor
5.查找[SCSI]字段,在其下添加iaStor="
Intel(R)82801FBMSATAAHCIController(MobileICH6M)"
至此,修改txtsetup.sif文件部分完成,将修改后的sif文件替换原来的文件。
四.复制驱动文件
将驱动文件iaStor.sys用makecab.exe压缩成iaStor.sy_并添加到PE的system32\DRIVERS目录下,然后将修改后的winpe.iso用makecab.exe重新压缩成winpe.is_替换原来的文件。
至此整个添加驱动工作完成,重启动以测试成功与否。
关于更详细的txtsetup.sif的用法,可以到精简区搜索,那里有不少教程,我这里就不多说了。
关于修改PE的注册表
要DIY核心,修改注册表是肯定要会的,先找到SYSTEM32目录下的setupreg.hi_,用WINRAR打开把里面的setupreg.hiv解压出来。
打开开始菜单---运行----输入regedit,用鼠标选中HKEY_LOCAL_MACHINE项,然后单击文件---加载外部配置文件
然后找到刚刚的那个setupreg.hiv加载,然后提示项名称,这里随便填,我填"
!
"
方便区分。
之后,你就可以修改!
项里的注册表了,!
项里的就是PE的注册表,修改完了后不要忘记卸载配置单元,选中!
项,按文件—卸载配置单元。
最后用CAB把修改好的setupreg.hiv文件压缩再替换原文件即可。
这一步主要是指修改WinPE的注册表,可以直接修改WinPE注册表,也可以修改配置文件。
1、修改内部注册表的方法:
用前面修改PECMD.INI的方法将内部注册表的文件提取出来:
\WXPE\SYSTEM32\CONFIG\*.*
\WXPE\SYSTEM32\SETUPREG.HI_(这是CAB压缩包,将它解开成SETUPREG.HIV)
运行注册表编辑器REGEDIT.EXE,鼠标点击HKEY_LOCAL_MACHINE,然后点“文件”-“加载配置单元”,打开提取出来的注册表文件(需要改哪个就加载哪个),提示挂载名时随便输入取一个名字如“WinPE”,展开HKEY_LOCAL_MACHINE后里面就有一项WinPE,然后就跟普通的注册表操作一样了,改好后用鼠标点一下“WinPE”项目,然后“文件”-“卸载配置单元”,这个文件就改好了。
用改过的注册表文件替换原来的。
2、修改配置文件的方法:
对于普通的不依赖于外置程序目录结构的注册表项目,可以用常规方法将修改项写成REG文件(可以直接从XP系统中导出,然后在其基础上修)。
在外置程序目录下有个RegDoc.cmd,这个文件是毛桃用来注册外置程序文档关联的(就是改注册表),可以用记事本打开它,加入一行:
REGEDIT/sREG文件名
则WinPE加载外部配置时它会自动导入。
这是最简单的改注册表的方法。
但是如果要改的项依赖于外置程序的目录结构(比如要在右键菜单中添加用UltraEdit32打开),就不能用上面的方法了,因为外置程序的绝对路径是不确定的(不同的机器中盘符不能确定)。
这种情况就需要用原始的REG命令来做了(就跟老毛桃在REGDOC.CMD中的做法一样),这个命令的语法比较艰懂,且注册表键值的表示方法跟REG文件不同。
在命令提示符下通过/?
参数可以获得它的用法(中文的哦),提醒一下/?
参数是个以多层使用的,如REG/?
得到的是基本参数的说明,如用REGADD/?
则可得到ADD这个参数的用法……,有了这个命令的基础后,我们来看看是怎么解决不定路径问题的。
在REGDOC.CMD中有一个环境变量%TP%,代表的是REGDOC.CMD这个文件所在的路径。
我们可以通过%TP%\..\表示它的上层目录,%TP%\..\..\表示它的上两层目录。
用此方法可以索引到外置程序目录内的所有路径,而不用考虑外置程序目录本身的绝对路径。
还有个方法就是在WinPE.INI中用PECMD的REGI命令一行行添加,这个比系统的REG命令好理解些,同样可以用%CurDir%环境变量来索引外置程序目录内的所有路径.直接修改的好处是启动WinPE就是所需要设置,不依赖外部配置文件,WinPE的加载速度也比较快,但麻烦。
修改配置文件则比较简单,但要依赖配置文件加载过程(直到加载到那些语句时才会生效),启动时需要额外的时间加载,相当于给系统打补丁去修改默认设置。
一般情况下不推荐直接修改WinPE注册表,麻烦,重新打包也比较花时间。
但有些跟系统紧密的键必须直接修改才有效,比如屏幕分辨率,虽然在外面也可以修改有,但在登录时加载到它之前是无效的,那么在登录的过程中屏幕就会因切换分辨率而闪烁。
自己修改注册表的前提是自己要知道所希望的改变要修注册表中的哪些键值。
可以上网搜索,现在网上的这些资源多得是,实在找不到的话可以还可以用RegMon之类的注册表监视软件来定位。
比如修改记事本的自动换行,又不知道相应的键值在哪。
可以先开启RegMon,然后在记事本中改变换行的选项,看RegMon的监视结果,来定位是哪个键值。
因为系统本身也在不断的更改注册表,RegMon中的显示会很多,但是通过不断的改变记事本中的设置,最终是可以找到的,这个过程需要的是耐心和细心。
修改WinPE的OEM信息
1.提取文件
从WinPE镜像光盘中提取WinPE.IS_并解压,得到WinPE.ISO,提取其中需要的文件
2.修改
修改OEM文字信息请编辑OEMINFO.INI(用记事本编辑即可),修改OEM图标请用作图工具编辑
3.替换文件&
压包
用UltraISO把修改好的文件替换到WinPE.ISO中对应的位置,再把WinPE.ISO用makecab压为WinPE.IS_文件,最后用UltraISO把刚压缩得到的WinPE.IS_替换到原始WinPE光盘(镜像)中生成新的WinPE光盘(镜像)
备注:
有的修改OEM信息是修改Winpe.ini文件。
一、删除桌面上的“命令提示符”
修改注册表,删除以下键值
[HKEY_LOCAL_MACHINE\SOFTWARE\Sherpya\XPEinit\Desktop]
@shell32.dll,-22022"
=hex
(2):
25,00,63,00,6f,00,6d,00,73,00,70,00,65,00,63,00,\
25,00,00,00
或者:
REGDELETEHKLM\SOFTWARE\Sherpya\XPEinit\Desktop/v@shell32.dll,-22022/f>
nul
二、删除桌面上的“我的文档”
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu]
{450D8FBA-AD25-11D0-98A8-0800361B1103}"
=dword:
00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
三、删除右键菜单中的“管理”
[HKEY_LOCAL_MACHINE\soft\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage]
红色部分为注册表加载项的名称
四、修改文件夹视图方式
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams]
;
平铺查看
Settings"
=hex:
08,00,00,00,06,00,00,00,01,00,00,00,e5,25,f1,65,e1,7b,10,48,ba,9d,d2,71,c8,43,\2c,e3,04,00,00,00,1a,00,00,00,43,00,00,00
缩略图查看
08,00,00,00,05,00,00,00,01,00,00,00,90,b2,eb,8b,d0,52,d0,11,b7,f4,00,c0,4f,d7,\06,ec,04,00,00,00,07,00,00,00,43,00,00,00
列表查看
09,00,00,00,03,00,00,00,00,00,00,00,e0,a5,1f,0e,73,35,cf,11,ae,69,08,00,2b,2e,\12,62,04,00,00,00,01,00,00,00,43,00,00,00
详细信息查看
08,00,00,00,04,00,00,00,01,00,00,00,00,77,7e,13,73,35,cf,11,ae,69,08,00,2b,2e,\12,62,04,00,00,00,01,00,00,00,43,00,00,00
图标查看
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
五、修改虚拟驱动器X盘的大小
先把WinPE.IS_解压成WinPE.ISO,然后修改WXPE\SYSTEM32里的PECMD.INI的相关参数
//配置文件开始
FBWFP40L32H96
TEAMENVIS=%SystemRoot%|ENVISS=%S%\SYSTEM32|ENVISSD=%SS%\Drivers
TEAMFILE%S%\TXTSETUP.SI*|FILE%SS%\NTOSKRNL.EX*|FILE%SS%\WIN32K.SYS|FILE%SS%\CONFIG|FILE%SS%\*.*_|FILE%SSD%\*.SY_
TEAMLOGS%S%\PECMD.LOG|MDIR%SystemDrive%\TEMP|ENVI|INIT|EXEC@PECMD.EXECALL$SHELL32.DLL,DllInstall,#1,U
.........................
P代表可用内存的40%
L代表最低设置为32MB
H代表最高设置为96MB
最高设置可以不超过256MB
当然有P40这个参数在,H设置成512也没事,也不会出现内存用光的情况
六、在WinPE中如何多建立一个Ramdisk盘
解开winpe.is_,得到winpe.iso,然后提取setupreg.hiv,用注册表编辑器加载到HKEY_LOCAL_MACHINE下,取名为!
system,然后导入下面这个reg
WindowsRegistryEditorVersion5.00
[HKEY_LOCAL_MACHINE\!
system]
system\ControlSet001]
system\ControlSet001\Enum]
system\ControlSet001\Enum\Root]
system\ControlSet001\Enum\Root\UNKNOWN]
system\ControlSet001\Enum\Root\UNKNOWN\9999]
ClassGUID"
="
{FFA1C341-4539-11D3-B88D-00C04FAD5172}"
Class"
RamDisk"
ConfigFlags"
00000004
Mfg"
Nu2Productions"
HardwareID"
=hex(7):
72,00,61,00,6d,00,64,00,72,00,69,00,76,00,00,00,00,00
Service"
Ramdriv"
DeviceDesc"
Ramdisk"
Capabilities"
00000000
Driver"
{FFA1C341-4539-11D3-B88D-00C04FAD5172}\\0001"
system\ControlSet001\Enum\Root\UNKNOWN\9999\Control]
DisableCount"
ActiveService"
FilteredConfigVector"
30,00,30,00,00,00,30,00,30,00,00,00,30,00,30,00,\
00,00,30,00,30,00,00,00,30,00,30,00,00,00,30,00,30,0