• 帮助中心
  • 新手入门PE的初级教程

    作者:upzxt 文章来源:u盘装系统 发布时间:2012-08-05 08:54点击:

    新手入门PE的初级教程

    本文不涉及任何技术性的东西,期望目的在于让刚接触PE的朋友能对PE进行简单的修改,以适合自己使用。我只是根据自己学习的过程,将它们整理到一起而已(有可能我自己认识错误导致后面的内容错误,请高手指正,如果高手们有耐心看的话)。

    包含以下几个方面的内容:

    一、增减外置程序

    外置程序在光盘的“外置程序”目录中,对应的配置文件是该目录下的WinPE.INI

    删除程序只须删除该软件在外置程序目录对应的子目录,再删除WinPE.INI中相应的LINK创建快捷方式的语句行即可。

    添加程序正好相反,将绿色软件放到外置程序目录中,在WinPE.INI中加入相应的LINK语句行创建快捷方式即可(参照其它LINK语句,复制一行,只须要改一下快捷方式的位置、名称/目标程序的目录名、可执行文件名)。

    这里所说的绿色软件是指能在PE中运行绿软,网上所见的大多绿软并不是真正的绿色软件,应该叫准绿色软件或者免安装软件。

    实际上很多并不是为PE准备的软件也是可以在PE中运行的,用一个笨办法来判断一个普通的绿软是否可以直接在PE中运行,启动PE环境,找到该软件所在目录,复制一份备份,然后将该目录和目录下的所有文件属性改为只读,直接双击目录内的可执行文件,看能否运行,运行后各项功能都使用一下看是否正常,如无异常,则可按上面的方法简单加入。

    如运行异常,有可能缺某些库文件(这种情况一般有提示),或它在自己的目录内写东西,或依赖注册表中的某些键值,这就需要动点手脚,如准备缺少的库文件,看它自己的目录下有没有配置文件可以修改,在XP中运行监视它要读些哪些注册表项。这种情况对不同的软件解决的方法不同,也可能无法解决,不过此种情况超出本文的定位,不再详述。

    二、定制登录过程

    这一项改动需要熟悉PECMD各命令的用法,读懂配置内外配置文件,最好对系统登录的过程有点了解。

    只作为兴趣,因为一键U盘装系统的登录顺序几乎也没什么可改动的了,可以留给我们定制的就是改改提示句、外置程序的加载方式、调整一下细节而已。

    这一过程会涉及到内部配置文件:
    注:用UltraISO修改ISO映像文件时最好用另存,以免改错了原来的备份也没有了。

    三、修改外置程序目录名

    要改动的地方有3个文件+1个目录名:
    将三个INI文件提取出来按下面的步骤修改,假设新名为"NEWNAME":
    用修改后的文件替换下载的光盘映像中原来的(外置程序这个目录的名字可以直接在UltraISO中改)

    说得这么麻烦只是为了防止漏改或者将注释也给改了,实际上新版本因采用的%CurDir%这个环境变量后,要改的只有几个地方,手工改也是可以的。
    四、修改系统设定

    这一步主要是指修改PE的注册表,可以直接修改PE注册表,也可以修改配置文件。

    1、修改内部注册表的方法:

    用前面修改PECMD.INI的方法将内部注册表的文件提取出来:

     

    \WXPE\SYSTEM32\CONFIG\*.*
    \WXPE\SYSTEM32\SETUPREG.HI_(
    这是CAB压缩包,将它解开成SETUPREG.HIV)

    REGEDIT/sREG文件名


    运行注册表编辑器REGEDIT.EXE,鼠标点击HKEY_LOCAL_MACHINE,然后点“文件”-“加载配置单元”,打到提取出来的注册表文件(需要改哪个就加载哪个),打开,提示挂载名时随便输入取一个名字如“WinPE”,展开HKEY_LOCAL_MACHINE后里面就有一项WinPE,然后就跟普通的注册表操作一样了,改好后用鼠标点一下“WinPE”项目,然后“文件”-“卸载配置单元”,这个文件就改好了。

    用改过的注册表文件替换原来的。

    2、修改配置文件的方法:

    对于普通的不依赖于外置程序目录结构的注册表项目,可以用常规方法将修改项写成REG文件(可以直接从XP系统中导出,然后在其基础上修)。在外置程序目录下有个RegDoc.cmd,这个文件是毛桃用来注册外置程序文档关联的(就是改注册表),可以用记事本打开它,加入一行:


    则PE加载外部配置时它会自动导入。

    这是最简单的改注册表的方法。但是如果要修的项依赖于外置程序的目录结构(比如要在右键菜单中添加用UltraEdit32打开),就不能用上面的方法了,因为外置程序的绝对路径是不确定的(不同的机器中盘符不能确定)。

    这种情况就需要用原始的REG命令来做了(就跟毛桃在REGDOC.CMD中的做法一样),这个命令的语法比较艰涩,且注册表键值的表示方法跟REG文件不同。在命令提示符下通过/?参数可以获得它的用法(中文的哦),提醒一下/?参数是个以多层使用的,如REG/?得到的是基本参数的说明,如用REGADD/?则可得到ADD这个参数的用法……

    有了这个命令的基础后,我们来看看是怎么解决不定路径问题的。

    在REGDOC.CMD中有一个环境变量%TP%,代表的是REGDOC.CMD这个文件所在的路径。我们可以通过%TP%\..\表示它的上层目录,%TP%\..\..\表示它的上两层目录。用此方法可以索引到外置程序目录内的所有路径,而不用考虑外置程序目录本身的绝对路径。

    (还有个方法就是在WinPE.INI中用PECMD的REGI命令一行行添加,这个比系统的REG命令好理解些,同样可以用%CurDir%环境变量来索引外置程序目录内的所有路径)

    直接修改的好处是启动PE就是所需要设置,不依赖外部配置文件,PE的加载速度也比较快,但麻烦。修改配置文件则比较简单,但要依赖配置文件加载过程(直到加载到那些语句时才会生效),启动时需要额外的时间加载,相当于给系统打补丁去修改默认设置。

    一般情况下不推荐直接修改PE注册表,麻烦,重新打包也比较花时间。但有些跟系统紧密的键必须直接修改才有效,比如屏幕分辨率,虽然在外面也可以修改有,但在登录时加载到它之前是无效的,那么在登录的过程中屏幕就会因切换分辨率而闪烁。

    自己修改注册表的前提是自己要知道所希望的改变要修注册表中的哪些键值。可以上网搜索,现在网上的这些资源多得是,实在找不到的话可以还可以用RegMon之类的注册表监视软件来定位。

    比如修改记事本的自动换行,又不知道相应的键值在哪。可以先开启RegMon,然后在记事本中改变换行的选项,看RegMon的监视结果,来定位是哪个键值。因为系统本身也在不断的更改注册表,RegMon中的显示会很多,但是通过不断的改变记事本中的设置,最终是可以找到的,这个过程需要的是耐心和细心。

    五、添加驱动

    在外置程序目录中有一个比较重要的目录“PE_OUTERPART”,核心的外置组件都放在这里。里面有4个CAB压缩包,分别是网卡/无线网卡/声卡/显卡驱动包,而且加载的框架都已经搭好了,在cmd脚本中会自动调用INFCACHEBUILD.EXE处理驱动程序。我们要做的工作就是获取驱动程序文件,将它们放到相应的驱动包中。

    从本机上获取驱动文件有很多驱动备份工具,我用的是最笨的方法,在设备管理器中查看驱动程序详细信息,然后一个个复制文件,建一个目录,放到相应的驱动包中。

    中间有一个步骤,就是改一下复制出来的inf文件的名称,让它按文件名排序时可以排在最前面(我就是在文件名前面加了个下划线)。我不知道这一步是否是必须的,因为当初不知在哪个帖子中零星的看了点,没有仔细研究,我做的时候就老老实实改名了。

    这样提取出来的驱动文件可能很大,测试成功后再删除一些不必要的驱动文件。有很多文件是可以删除的,可以参考原驱动包中同类驱动的文件,将类似的文件保留,其它删除。另一个笨办法是一个个删除,每删除一个测试一次,最终找到一个最小的驱动文件子集。

     

    U盘装系统

     

    (责任编辑:www.upzxt.com)