2010-01-17更新] 由零开始,用XP SP3全新制作你的的微型XPE系统
2010-01-17:有一年多没有更新此帖了,一些原来的连结已经失效,现在更新一下,使其教程仍然有效。(没有增加新的功能!)

藉着XP SP3的推出,我重新制作了几只微型XPE系统,包括英文,简体中文和繁体中文的版本。
三个版本都是从整合了SP3XP安装盘,经PEBuilderWinBuilder直接打做,十分干净。

我对XPE系统核心的定位是这样的:
1. 用于日常电脑的维护,安装和修理,不考虑声卡和显卡等特别装置。
2. 虽然希望核心体积做到尽可能微型,对网络,SATA/SCSI/RAID和多处理器HAL的支持不可少。
3. 无论是中文或者英文版本,都需要支持中文的显示和输入。
4. 使用EXPLORERSHELL,不带MMC以减少核心体积。带DISKPART.EXE, FORMAT.EXE等磁盘工具。
5. RAMDISK, FBWF, WIMFLTR服务功能,可用IMAGEX挂载Windows镜像文件(WIM)
6. BOOTSECT.EXEBCDEDIT.EXE,方便处理VISTA的启动扇区。
7. 外置程式可以放到内置或者外置PROGRAMS文件夹,也可以放到Windows镜像文件PROGRAMS.WIM中。
8. SATA/SCSI/RAID驱动程式内置于核心,网络驱动程式外置到PROGRAMS.WIM
9. 替换SHELL32.DLL,EXPLORER.EXE,MSGINA.DLL,SYSDM.CPL内的图标和图像,做成VISTA-LOOK外观。
10. 多重精简和压缩技术把系统核心达成微型化,压缩后的.IM_内核大约有35MB左右。

三只ISO (英文:xpe_en.iso, 简体中文:xpe_cn.iso, 繁体中文:xpe_hk.iso)已经上载到无忧的FTP2,
在文件夹khauyeung\Tiny XPE SP3里面。)

ISO只含核心文件和只带网络驱动程式的PROGRAMS.WIM,我将把我的完整PROGRAMS.WIM(英文程式,95MB)
也放到同一文件夹里面,有需要的可以下载替换。

同时上载的还有一只叫erd_en.iso, 那是基于Server 2003 SP1XPE,整合了ERD Commander 2007
是只二合一CD

2010-01-17:上载了一份最新的版本(XpeBuilder.rar)到zhxy9804ftp,在khauyeung/XpeBuilder目录里面。seewebzhaohj那边也有一份,仍在khauyeung/Tiny XPE SP3目录下面。

系统采用了老九的PECMDPELOADER,也参考了其他无忧网友的大作,这里一并道谢。

请留意我的这些微型XPE系统是名乎其实的撒手不管版,因为我没有太多的时间支持网友。要下载,
转载,改编,YY,发扬光大的,说一声谢谢就成了。

[5-6-2008]补充: 我在压制.IMG核心文件时,一律采用100MB的大小,所以用RAMDISK256MB才能运行 (我日常要处理的机器)。如果自行压制成75MB.IMG192MB的内存当可运行。想要再小一些内存运行,需要对核心再精简到58-65MB左右,这样做会失去部分功能(如多处理器支持),或者在载入网络装置时超载系统盘; 为了老机器而得不偿失,是我不推荐的。在老机器上运行PE,最好不使用RAMDISK型式运行,应该用光盘版运行,这样128MB的内存就足够了。我提供的XPE系统采用标准的文件和文件夹命名,把.IM_解压后就可以进行改编成光盘版的PE。自己动手,丰衣足食!

最后,贴几张图片:






我开始尝试写教程,分几部分介绍,包括(1) PEBuilder产生内核,(2) WinBuilder改注册表和增加功能(中文,RAMDISKFBWFWIMFLTR),(3) 增加 EXPLORER SHELL(4) 精简和网络功能外移,(5)简单的美化。有空就写一些,用连载方式进行。

第一部分:PEBuilder

1.  下载 PEBuilder 的最近版本号v3.1.10a
69.90.47. ... /pebuilder3110a.zip

2.  pebuilder3110a.zip进行解压,解压后的文件放在文件夹 C:\WinPEBuilder 里面。

3.  在文件夹 C:\WinPEBuilder 里面,文件 bartpe.bmp 是壁纸,可以用你自己喜欢的加以替换。特别的网卡或者SCSI驱动,请加到drivers文件夹里面。

4.  假如你用的 Windows CD属中文体系,又或者你需要简(或繁)体中文支持,请把附上的 zzh 中文插件加到plugin文件夹里面。
zzh.part1.rar (292.97 KB)
zzh.part2.rar (147.56 KB)

5.  双击并运行 ,如图5,在 Source: 下面填上你的 Windows CD (XP或者2K3)路径,在 Output: 下面填上生成PE的目标路径。留空 Custom:,不设 Media output
5:


6.  单击 Plugins 按钮以选择插件,如图6,我们只启用 (Enable) 五个插件:barpe.inf, ChinesePlugin.inf, penetcfg.inf, dcomlaunch.inf, sermouse.inf 其余均以 Enable/Disable 按钮禁用之。
6:


7.  单击 Close 按钮返回图5画面,单击 Build 按钮,在你回答并同意创建目录和接受用户许可协议书后,PEBuilder即开始建造最简单的PE内核。如图7,有四个错误出现是正常的,因为我们没有选用nu2menu.inf插件。
7:


8.  单击 Close 按钮返回图5画面,然后单击 Exit 按钮退出 PEBuilder。最简单的BartPE内核已经建成(大约180MB),它用命令符作SHELL,有网络功能。见图8
8:


5-21-2008]有关zzh中文插件的补充说明:
我用PEBuilder来建PE的核心,是因为它建成的PE最为稳定,有最完整的注册表和良好的网络支持。不过,假如我们用的 Windows CD属中文体系,又或者我们需要在英文体系中增加对简(或繁)体中文支持,这就要解决两个问题:

问题一:PEBuilder是建基于英文体系的,不加中文插件做出来的PE,缺少了支持中文需要的NLSLOCALELANGUAGE, CODEPAGEFONTSFONTLINK和输入法等注册表资料。为此,我在zzh文件夹里面放了四个中文插件供选用:
1.  ChinesePlugin.inf: Windows CD属简体中文体系,用来建造以简体中文为核心的PE,当然也能支持英文。
2.  CHS_on_EN_Platform.inf: Windows CD属英文体系,用来建造以英文为核心的PE,而且,它兼会支持简体中文。(你的英文源CD可能缺少下面文件,请自行把它们放置在zzh文件夹中:,c_936.nls,c_10008.nls
3.  CHT_on_EN_Platform.inf: Windows CD属英文体系,用来建造以英文为核心的PE,而且,它兼会支持繁体中文。(你的英文源CD可能缺少下面文件,请自行把它们放置在zzh文件夹中:,c_950.nls,c_10002.nls
4.  ChineseTraditional.inf: Windows CD属繁体中文体系,用来建造以繁体中文为核心的PE,当然也能支持英文。
四个中文插件其实只有很小差别,有兴趣的请自行打开研究。

问题二:假如你用来建造PE的所处平台与目标PE不属于相同语言体系,(例如我在英文平台用上面的1.  ChinesePlugin.inf建造以简体中文为核心的PE,)
PEBuilder在改写netmscli.infnettcpip.inf两只网络文件的过程中,错误地把最后的[STRINGS]段落里的中文字符串砍掉。为此,我们需要把它手动还原。ChinesePlugin.inf调用的CN_MSCLI.INFCN_TCPIP.INFChineseTraditional.inf调用的TW_MSCLI.INFTW_TCPIP.INF,就是为了这个目的而设的。

不用担心由PEBuilder产生的PE核心体积会过大(180MB),现阶段我们的目的是要全,不是要简。全部功能齐全后,我们才去精简。

[5-24-2008]
第二部分:WinBuilder
这部分我们介绍使用WinBuilder这个工具,对先前已经做好的PE核心增加功能(RAMDISKFBWFWIMFLTR)和注册表优化:

1.  下载 WinBuilder 的最近版本号[078SP6]
winbuilder/e107_files/downloads/WinBuilder078SP6.zip

2.  WinBuilder078SP6.zip进行解压,解压后的文件放在文件夹 C:\WinPEBuilder 里面。

3.  双击并运行 ,如下图所示,单击顶头的Download页面,只选取下载VistaPETools(工具),其余均留空不选。单击左下角落的 Download 按钮进行下载。WinBuilder会自动在当前目录创建Projects文件夹,并把下载的Tools文件夹和文件置于其下。完成后退出WinBuilder



2009-01-16:  由于VistaPETools(工具)现在已经比较难以下载,我特别把这些工具包含在以下的附件Project.rar之中,大家就不必再下载了。

4.  下载附上的Projects.rar,解压后的文件和文件夹放到 C:\WinPEBuilder 里面,覆盖原有的文件和文件夹。你会发现Projects目录下面多了一个名为WINPE的文件夹,内含我编写好的脚本和所需文件。
Projects.rar (内含我编写的BartPE优化脚本 01-BartpePlus.script):

Projects.part01.rar (390.63 KB)
Projects.part02.rar (390.63 KB)
Projects.part03.rar (390.63 KB)
Projects.part04.rar (390.63 KB)
Projects.part05.rar (390.63 KB)
Projects.part06.rar (187.75 KB)

5.  双击并再一次运行 ,你会发现顶头处比前多了一个当前的Scripts(脚本)页面,底下有我整里好的第一个脚本。当前页右方有Script, Paths, LogCode Box四栏可选,我们先选Paths设定路径。见图9。(新版本的WinBuilder只有ScriptSource两栏,其中Source一栏与旧版的Paths同义。)
9:


6.  Source directory: 下面填上你的 Windows CD 路径(不是核心PE的路径),在 Target directory: 下面填上经WinBuilder优化后生成PE的目标路径。我们暂时没有用到ISO file。设定完成后,请退回当前页右方Script的一栏。

7.  如图10所示,展开当前页左方的BartpePlus Configuration,在右面窗口上半部设定RAMDisk的大小和盘符,下半部设定需要优化的核心PE的所在路径和它的%SystemRoot%文件夹名。设定完成后,你就可以单击右上方的 Play 按钮让WinBuilder替你的PE加工优化了。
10:


8.  BartPE内核优化已经完成,它仍用命令符作SHELL,有网络功能,而且加入了RAMDISK,可以挂载Windows镜像.WIM文件,可对建基于光盘上的系统进行模拟写文件操作。

WinBuilder这个工具有很强的能力,十分适合对已经做好的PE进行YY操作,脚本语法也很易掌握。有兴趣研究的,可以到网页winbuilder/help/处下载详细的语法说明。你也不妨打开我编写的脚本, (c:\WinPEBuilder\Projects\WINPE\BASE\01-BartpePlus.script),你会很容易看到我是如何实现那些功能的,从而便作出适合你自己的修改了。

[5-25-2008]
第三部分:Explorer Shell
在这部分我们用WinBuilder和我编写好的脚本,往先前做好的的BartPE内核加入Explorer Shell(外壳)。这样,我们的PE就有了图形化的介面,而不是停留在单调的命令符窗口了。同时加入的,还有老九的PECMD 3.0PELOGONPELOADERPESHELLHWPnP等厢关工具。下面描述的,其实是把第二部分和第三部分内容一起显示:

1.  下载附上的Explorer.rarPROGRAMS.WIM.rar,把解压后的文件夹和其下的文件放到 C:\WinPEBuilder 里面,覆盖原有的文件和文件夹。你会发现Projects\WINPE\BASE目录下面多了一个名为02-ExplorerShell.script的脚本文件,sysfiles目录里面亦增加了一批文件。

ExplorerShell.rar:
ExplorerShell.part1.rar (292.97 KB)
ExplorerShell.part2.rar (292.97 KB)
ExplorerShell.part3.rar (1.91 KB)

PROGRAMS.WIM.rar
PROGRAMS.WIM.part1.rar (292.97 KB)
PROGRAMS.WIM.part2.rar (292.97 KB)
PROGRAMS.WIM.part3.rar (292.97 KB)
PROGRAMS.WIM.part4.rar (292.97 KB)
PROGRAMS.WIM.part5.rar (192.05 KB)

2.  双击并运行 ,见图11的画面出现。

11:


3.  如图12所示,我们先往Paths处设定路径:在 Source directory 下面填上你的 Windows CD 路径(不是核心PE的路径),在 Target directory 下面填上经WinBuilder加入Explorer外壳后的成品XPE的目标路径。我们暂时没有用到ISO file。完成后,退回Script处(Paths的左邻)。

12:


4.  如图13所示,展开BartpePlus Configuration,在右面窗口上半部设定RAMDisk的大小和盘符,下半部设定需要进行优化,并加入Explorer外壳的核心PE的所在路径和它的%SystemRoot%文件夹名。

13:


5.  如图14所示,展开Explorer Shell, 在右面窗口SourceCD Language:下面选择你的Windows CD所属语言,再在Set Locale to:下面设定你的成品XPE的所属意的Locale(不知道正确译名)。两者可以不同,例如英文CD0409)用中文Locale0804)。你还需设定备用的语言文件所在地。

14:


6.  设定完成后,你就可以单击右上方的 Play 按钮让WinBuilder替你的PE进行优化并加入Explorer外壳了。一个经优化的XPE内核已经完成,它用Explorer作图形化的外壳,有网络功能,而且加入了RAMDISK,可以挂载Windows镜像.WIM文件,可对建基于光盘上的系统进行模拟写文件操作。它又采用了大家熟悉的PECMD,你可以在熟悉的环境下面,加插入合你使用的其他东西。现在,你可以用CDIMAGEPE做成ISO,然后用虚拟机试试这只XPE的功能了。(由于现时的XPE还处于新鲜出爐状态,未经加工,很多系统文件还没有转换成需要的大写。所以,请用CDIMAGE时不要使用“-d”选项,好使CDIMAGE把全部文件名以大写状态写入ISO。)
tcpip详解全三卷简体中文pdf
15:Explorer外壳的XPE:


[5-27-2008]有关Explorer Shell的重要补充:
有网友反映制作后生成的XPE运行出错,系统在修正子过程后停留不动,经查明发现问题出在我的大意,漏发了一个PROGRAMS.WIM镜像文件,现在已经把它放在教程第三部分第一点ExplorerShell.rar的后面,请下载解压后再重新运行一次WinBuilder就成了。现在提供的这只PROGRAMS.WIM只带FREEWB(基点五笔拼音输入法),不带其他东西。你可自行增加合用的外置程式到里面。我又更改了一下PECMD.INI,避免直接使用WAIT命令(可能拖垮CPU),以NIRCMD.EXE WAIT xxxx代替之,希望可以降低启动时死机的机会。

我相信很多动手自己做PE的人都有不错的技术水平,可以很容易地从我写的脚本中看出我是如何实现功能的。这正是我的原意,因为有很多东西别人是难以一一解释清楚的,必须由你自己钻研。我会在下一步分讨论精简PE

[6-01-2008]
第四部分:XPE的后期处理和精简
在这部分我们用WinBuilder和我编写好的脚本(XpePostProcess.script),对先前经优化的XPE内核全版本进行后期处理和精简。很多人觉得自己从零开始做PE很难,要精简更是难上加难。不过,如果你能参考我的脚本,有系统的进行建造和精简,你会发觉它并非如传说那么困难的:

1.  下载附上的XpePostProcess.rar,把解压后的文件夹和其下的文件放到 C:\WinPEBuilder 里面,覆盖原有的文件和文件夹。你会发现Projects\WINPE\BASE目录下面多了一个名为03-XpePostProcess.script的脚本文件,sysfiles目录里面亦增加了一批文件,包括一只有网友想要的多语言版本v2.3

XpePostProcess.rar:
XpePostProcess.part1.rar (390.63 KB)
XpePostProcess.part2.rar (390.63 KB)
XpePostProcess.part3.rar (79.44 KB)

2.  运行 跟前介绍相同,展开XPE Post Process,见图16的画面出现。

16:


3.  16所示基本显示了后期处理和精简的整个流程,几乎每个步骤都容许选择与否。你最好能打开并对照XpePostProcess.script脚本,以便明白我的描述:

    a. 脚本首先会除去没有特别用途的字库文件,你甚至可以指定一个小的(2.3MB)SIMSUN.TTC代替大字库文件。(减少23MB
    b. 脚本然后会除去 i386\WinSxS 目录下面的不必要文件夹和文件。 (减少8MB
    c. 接下来,网络的系统文件会被外置,并被保留到LastPE\PENET\CNXP文件夹下面(不包括驱动文件,因为我们会另用驱动包)。 (减少13MB
    d. 你可以选择除去Windpows自带的批量储存驱动文件(因为我们可以另用驱动包),脚本会自动修改txtsetup.sif内的[SCSI.load]段落以适应之。
    e. 脚本跟着从三个地方除去不必须的系统文件:i386\inf (减少3.6MB; i386\system32\drivers (减少22MB; i386\system32 (减少57MB
    f. 你还可以决定是否保留bartpe.bmp壁纸,写字板 画图 和计算器
    g. 系统启动过程会载入一批系统文件和驱动,这些文件都可以CAB模式存在,以节省空间。假如你选择这样做,脚本会向WindowsCD寻原庄CAB文件用以替换。
    h. 使用UPX压缩DLL或者EXE文件是减少空间的一个方法,但不能滥用,因为解压运行过程会反增使用空间。我只对几只大文件(如xpsp2res.dll)进行UPX压缩,它们都是不常活动的文件。
    i. 脚本还可以生成ISO,但由于不太稳定,我没有把它选用。建议你自己手动生成。

4.  设定完成后,你就可以单击右上方的 Play 按钮。WinPEBuilder在后期处理和精简过程中,把XPE内核成功地由 184MB 减少到 65MB

5.  如上所说明,网络的系统文件已经被外置,你需要把 WinPEBuilder\LastPE\PENET 下保留的文件自己加到外置PROGRAMS.WIM镜像文件或者PROGRAMS外置文件夹,还要加进DRIVERS_NET.CAB网络驱动包(已上载到ftp2)。详程请参考我的ISO或者等待下回分解。

6.  高级用家请留意一下 WinpeBuilder\LastPE 目录下面的内容,WINPE文件夹是后期处理改动前的完整PEREMOVAL文件夹下是处理过程除去的各类文件。这些资讯对你的开发过程可能是很有用的。

这部分生成的XPE内核还不是最精简的ISO,几只大文件如SHELL32.DLL完全没有处理过,单把它的图标替换就能节省3MB空间。我打算在第五部份介绍用RESHACKER进行资源替换美化,并谈一下如何增加批量储存驱动包。

[6-07-2008]
第五部分:XPE的批量储存和资源优化

XPE主要的用途在于对Windows系统的维护和恢复,所以对SCSI/RAID/SATA等各类型批量储存器的支持就显得十分重要。WindowsCD虽然也带部分批量储存的驱动,但并不足够,而且也嫌太旧了(我们在第四步份的精简过程索性把它移去)。在这部分我们重新往XPE加入比较新和全的DriverPacks批量储存驱动包(整理好的 8MB MassStorage.rar已经上载到ftp2),再用资源黑客reshacker进行资源优化:

1.  下载附上的XpeMassStorageResHack.rar,把解压后的文件夹和其下的文件放到 C:\WinPEBuilder 里面,覆盖原有的文件和文件夹。你会发现Projects\WINPE\BASE目录下面多了名为04-XpeMassStorage.script05-XpeResourceHack.script的两只脚本文件,另有Resources文件夹,sysfiles目录里面亦增加了一批文件。

XpeMassStorageResHack.rar:
XpeMassStorageResHack.part01.rar (390.63 KB)
XpeMassStorageResHack.part02.rar (390.63 KB)
XpeMassStorageResHack.part03.rar (390.63 KB)
XpeMassStorageResHack.part04.rar (47.79 KB)

2.  请留意上面的附件并未包括批量储存的驱动包。因为它的体积有8MB大,我把它上载到ftp2名为MassStorage.rar。下载解压后的文件夹和其下的文件放到 C:\WinPEBuilder 里面。你会发现Projects\WINPE\BASE目录下面多了MassStorage文件夹,内含在wnt5,wxp,w2k3使用的批量储存驱动文件。

3.  运行 跟前介绍相同。XPE MassStorage没有什么设定,把它选好就成了。展开XPE Resource Hack,见图18的画面出现。脚本可以让你选择是否对shell32.dll, , msgina.dllsysdm.cpl进行图标替换和资源优化。

18:


4.  设定完成后,你就可以单击右上方的 Play 按钮。WinPEBuilder最终会在目标路径TargetDir产生一 68MB 左右的非压缩 XPE,它用Explorer作图形化的外壳,有网络功能(外置),全面支持SCSI/RAID/SATA等各类型批量储存器(内置),而且加入了RAMDISK,可以挂载Windows镜像.WIM文件,可对建基于光盘上的系统进行模拟写文件操作。它又经过多重精简,并且进行了资源优化和美化,可谓美观实用。

5.  我们现在简单的看一下批量储存脚本04-XpeMassStorage.script是如何工作的:
    a. 拷贝xp/2k3通用的驱动器:DirCopy,"%ScriptDir%\MassStorage\wnt5\*.*","%TargetDir%\i386\system32\Drivers"
    b. 拷贝只用在wxp的驱动器:DirCopy,"%ScriptDir%\MassStorage\wxp\*.*","%TargetDir%\i386\system32\Drivers"
    c. 更新txtsetup.sif里面[SourceDisksFiles]段落下有关批量储存驱动器文件名讯息
    d. 更新txtsetup.sif里面[SCSI]段落下有关批量储存驱动器的命名讯息
    e. 更新txtsetup.sif里面[SCSI.Load]段落下有关在启动时要自动载入的批量储存驱动器文件名
    f. 更新txtsetup.sif里面[HardWareIdsDatabase]段落下有关批量储存驱动器的硬件身分资料库讯息
   
    上面几点是加批量储存驱动的基本步骤。脚本移植自DriverPacksBartPE插件。有兴趣的可以下载以下文件自己研究:
   
    www.driverpacks/DriverPacks/DriverPack.php?pag=b
    driverpacks.mirror.thesneaky/BASE/DPs_

    www.driverpacks/DriverPacks/DriverPack.php?pag=m
    driverpacks.mirror.thesne ... _wnt5_x86-32_805.7z   

6.  现在再来谈一下使用reshacker进行资源优化:
    a. reshacker主要是用来对 .exe/.dll/.cpl 里面的图标文件(.ico)和图形文件(.bmp)进行替换。这样做的目的不单是为了美化,而且是为了节省空间。
    b. 例如Shell32.dll里面的图标(.ico)很多都包藏好几套点阵,一个图标也许就有100KB大小,假如我们使用一个单含16x16点阵的图标代替它,我们可能减少90%的空间。经过资源优化,shell32.dll8MB降低至5MB
    c. reshacker是可以批量执行指令的,下面是s内含的部分批量指令,你可以看到它是如何替换图标和图形,与及删除AVI等文件的:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。