光盘童话--嵌入式桌面操作系统使用与制作攻略

来源:百度文库 编辑:神马文学网 时间:2024/04/27 19:46:18
2007-02-27 13:05
有没有想过你的计算机失去硬盘会怎样?有没有想过硬盘上唯一的系统崩溃却有很多重要文件在系统分区怎么办?望着这堆失去操作系统的“废铁”一筹莫展吗?我们设想有一种操作系统在光盘、U盘甚至软盘等载体上,它可以完全抛开硬盘或其上的操作系统,可直接对计算机其他资源进行使用和管理,而且是完全的图形界面——听起来像个童话,但这种操作系统确实是存在的,那就是今天我们要提到的嵌入式桌面操作系统。
嵌入式桌面操作系统是一种特殊的桌面操作系统,可自由放置并运行在多种存储介质上,如光盘、U盘、ZIP等。这意味着我们可使用光盘引导计算机,然后在没有硬盘的情况下一样进行系统维护、网络共享、网上冲浪、文件操作、文字处理、多媒体应用等工作……甚至这与你日常惯用的操作系统环境并无区别。由于这些系统可自由定制其体积,可灵活选择存放介质,可完全适用于不同配置的计算机,因此随身带着自己的操作系统将不再是个奢望。
目前我们能接触到的常用嵌入式桌面操作系统有微软今年年初发布的Windows XP Embedded,Lindows公司基于Linux开发的Lindows 4.0,德国程序设计师Klaus Knopper以Debian为基础开发而成的Knoppix,以及微软发布后被网络DIYer们修改而出的Super WinPE等。这些操作系统原理有异,各有千秋。由于光盘是目前最普及最成熟的移动介质,笔者将以一个完整的系列来演示如何使用和制作这些嵌入式操作系统引导光盘,而研究的系列对象是Diyer最喜爱的Super WinPE、专业的嵌入式设备Windows XP Embedded以及Linux阵营的Knoppix。
Super WinPE自定义制作
Windows PE系统发布已有一年,相信大家应该对它较熟悉了(编者注:关于WinPE的详细介绍参见本刊2003年第3期和第5期)。虽然许多人对于这个新奇的操作系统充满好奇,但由于微软刻意将系统的图形界面(Shell)去除,只能使用命令行的操作方式显然并不适合普通使用者,在最初的激动过后,许多关注它的人也渐渐将其遗忘。不过一些执著的软件DIYer并没有放弃,在不断的努力下,他们逐渐为原始的WinPE加上了合适的图形Shell,而且适当修改系统注册表后,使大批工具软件能够集成在系统中运行。这些被修改过的WinPE就被称作为“Super WinPE”。
Super WinPE的体积通常会在160MB到700MB不等,这需要看制作者集成的工具软件的数量(图1)。其功能已经非常强大,普通人使用它进行系统维护、网络共享、网上冲浪、文件操作、文字处理、多媒体应用等日常工作完全没有困难,因为其环境与平常的Windows基本没有太大区别。将其称为嵌入式操作系统当然有些勉强,毕竟其软硬件的添加是通过修改集成的,超级工具维护系统也许是更恰当的称呼。但由于其修改方法已十分成熟,也相对简单易懂,将其作为我们系列研究的首选是非常合适的。
相信Super WinPE的使用对任何Windows用户都不存在问题,如何制作自己的Super WinPE光盘镜像才是重点。通常来说Super WinPE的制作有两大流派,一类是以手工集成GEOSHELL为主的纯粹手工制作,在GEOSHELL强大的支持下,最终的系统界面将相当漂亮,功能也相对强化稳定(图2)。而另一类是使用Bart‘s PE Builder工具软件制作,界面相对朴实平淡,胜在制作简单,即使完全不懂制作原理,也能在几个简单选择步骤后制作出自己的Super WinPE(图3),而在其插件的制作过程中却可以逐渐了解到制作原理,从而最后达到手工修改系统的目的。因此我们不妨先从Bart‘s PE Builder制作开始。
PE Builder的最新版本是PE Builder v3.0.18,它比v3.0.17前的版本有个巨大的进步。软件终于不再需要“already installed Windows”项目就可以创建WinPE系统了。也就是说现在创建工作的源文件完全来自于Windows XP/Server 2003安装光盘,而与你计算机上安装的操作系统无关。这样PE Builder就解决了制作WinPE副本必须与硬盘上已安装操作系统完全一致的限制,赋予了极大的制作自由度。使用PE Builder v3.0.18能制作各种操作系统版本的WinPE,只需要拥有相应的操作系统安装光盘,包括Windows XP Home/Pro以及含SP1系列版本、Windows Server 2003 Web/Standard/Enterprise等系列版本。由于国内大部分下载站点提供的还是v3.0.16版本,请到作者的网页http://www.nu2.nu/pebuilder下载最新版本。PE Builder是完全绿色软件,只要将下载的压缩包解开即可使用。下面我们开始具体制作步骤。
1.准备工作
首先在硬盘分区上要留出一定的剩余空间,用于存放制作好的WinPE系统以及ISO镜像文件。其具体空间大小由系统要集成的插件决定,但即使是 PE Builder默认建立最小的系统也有160MB左右,也就是说加上制作的ISO镜像文件至少也要有350MB剩余空间。将下载回来的 pebuilder3018.zip文件解压缩,然后双击运行pebuilder.exe文件,在弹出的窗口中点击“Next”按钮进入下一步(图4)。
2.设置文件源
接下来的窗口是设置制作文件源(图5)。“Path to Windows installation files”即选择制作WinPE系统所需的安装文件路径。通常Windows安装文件路径可选择放入光驱中的系统安装光盘,但你也可选择本机硬盘或网络上的目录,前提是事先已将安装光盘中的文件复制到相应目录位置中。
“Add files/folders this(custom)directory to ISO”意思是添加自定义文件或文件夹到WinPE系统的ISO镜像文件中。这个项目主要是为了方便系统中集成一些绿色的软件,例如Foxmail、 FlashGet、QQ等,他们无需安装就可直接在操作系统内运行。由于PE Builder软件这里只能设定一个目录,如果需要集成多个软件时,需要先将这些软件放在同一目录下,然后直接点击右侧的“浏览”按钮定位这个目录,被集成到系统的自定义软件将放在ISO镜像文件的根目录下。完成这些设置后点击“Next”按钮进入下一步。
3.配置插件
接下来是插件配置窗口(图6)。简单来说,插件就相当于Windows桌面系统里安装的软件。所以这一步是决定制作出WinPE系统性能的关键。 Bart‘s PE Builder目前内置了29个插件,都被放置在窗口中。在这里显示了当前设置下所有插件的激活状态,如果“Enabled”列显示“Yes”,则代表该插件已被激活,显示“No”则代表未被激活,我们可通过“Enable/Disable”按钮选择是否需要激活该插件;使用“Edit”按钮则可重新编辑插件程序的安装源、程序名等选项;而使用“Add”和“Remove”按钮可添加插件或删除不想要的插件,当然前提是你已经下载或自己编写了更多插件。对于PE Builder的内置29个插件,分为3种类型,以下是它们详细的激活使用条件。
(1)无需加入其他文件即可使用的插件
Nu2menu:一个为Win2000/XP/WinPE开发的动态外壳(Shell)/菜单应用程序,也是专门为PE Builder设计的(图7),这是我们打造Super WinPE的基础插件,在PE Builder中默认就是激活的。在你有能力手工添加修改Super WinPE的外壳前,一定不要关闭本插件。
Bst5(Bart‘s Stuff Test v5):一个小型的Win32应用程序,用于存储设备的长时间重负荷测试,它支持文件和设备级别的测试(图8)。
Boot Fix:赋予Super WinPE的引导CD在引导时有5秒的引导系统选择时间,如果敲击任意键即从CD上进行系统引导,而不作反应则会从硬盘引导系统。
Check Disk:为系统增加了磁盘检查工具chkdsk.exe以及相应的帮助使用的脚本。
Custom:这个插件是专门为了自定义制作Super WinPE而设定。在深入了解Super WinPE的制作原理后,如果要修改PE Builder的制作参数,不要修改pebuilder .inf文件,而是使用custom.inf来定义。
Document:只是简单地为Super WinPE添加“Documents and Settings”文件夹目录。
QSoft Ramdisk:激活此插件即可在使用Super WinPE光盘引导系统后,创建一个大小为32MB的虚拟硬盘B(图9)。
Remote Desktop Client by Microsoft:远程桌面客户端,会从安装光盘上拷贝所需要文件。
Startup Group(autorun):插件会在Nu2menu菜单中创建一个启动群,不过这只是个假的启动群,在默认情况下其启动项目都是一个接一个执行的,也就是说上一个程序关闭后下一个才会被执行。
Dos support for WinPE:此插件为Super WinPE提供16位的DOS支持能力,不需要其他文件。
Keyboard Layout:此插件可设定默认的键盘布局,通常情况下我们修改插件的keyboard.inf文件来设定。不过实际上在WinPE运行中也可通过 Nu2menu菜单上的“Keyboard Layout option”来随时改变键盘布局。注意这时所有已经运行的程序需要重新启动,才能适应新的键盘布局。
(2)需要加入其他文件才可使用的插件
Network:这个插件利用TCP/IP协议中的微软网络客户端提供完全的网络支持能力(图10)。不过在使用这个插件前,需要先拷贝另外两个文件到插件目录下。这两个文件是factory.exe和netcfg.exe(文件名也可能是x86netcfg.exe和 x86factory.exe),PE Builder本身并不包含这两个文件。这里factory.exe的版本必须是5.2.3790.0或更高,你有两个途径可以得到它:一是在 Windows Server 2003安装光盘目录下的support\tools\deploy.cab中解压得到;二是到微软的网站下载Windows Server 2003资源开发包(http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang = en),在rktools.msi\Cabs.winrk.cab\deploy.cab中将其解出。netcfg.exe的最新版本在Windows PE 1.2版本中可以得到,另外你也可以使用Win2000开始包的snetcfg_wxp.exe来代替netcfg.exe(http://www.jsiinc.com/dl/snetcfg_wxp .zip)。得到两个文件后,将它们拷贝到PE Builder的plugin\network目录下。
BGInfo:检测计算机配置等各方面信息的程序。程序会自动检测计算机的信息并将它们显示为桌面背景(图11),如计算机的名称、操作系统版本等。插件需要bginfo.exe文件,可在http://www.sysinternals.com/files/bginfo.zip下载,解压放入PE Builder的plugin\bginfo目录下。
Total Commander:这应该是大家非常熟悉的计算机资源管理程序了,软件集成的是免费的共享版本(图12)。插件需要cabrk.dll、 default.bar、no.bar、sfxhead.sfx、share_nt.exe、totalcmd.exe、totalcmd.hlp、 totalcmd.inc、unacev2.dll、unrar.dll、wcmicons.dll、wcmzip32.dll,如果制作时机器上没有安装Total Commander,可在http://www.ghisler.com/download.htm下载上述文件包,然后解压放入plugin\total目录下。如果计算机本身安装有注册版本,那么需要将wincmd.key也拷贝到目录下,并修改插件的totalcmd.inf文件中的部分内容为“wincmd.key=a,,1”。
Ad-Aware:非商业自由软件(图13)。它是一个很小的系统安全工具,可扫描你计算机浏览的网站所发送进来的广告跟踪文件和相关文件,并能安全地将它们删除。插件需要将文件aawhelper.dll、ad-aware.exe、reflist.ref、english.bmp、 english.det、english.ini拷贝到PEBuilder的plugin\adaware目录,可在http://www.lavasoftusa.com/software/adaware下载该软件。
IrfanView:一款快速、简单的免费图像影像编辑及浏览软件,它支持所有主流的图形文件格式(图14)。插件需要文件i_view32.exe及i_view32.hlp,你可在其主页http://www.irfanview.com/download_sites.htm上下载软件,然后将文件拷贝到PE Builder的plugin\irfanview 目录下。
McAfee commandli-ne virus scanner:McAf-ee病毒扫描器插件(图15)。这个插件需要不断更新,可在http://www.seawind.org/~ylchang/McAfee-VirusCodeUpdate上先下载文件sdatXXXX.exe,这里的XXXX是版本号码,如sdat4304.exe。这个文件即McAfee病毒扫描器的病毒代码(含扫描引擎),将其下载拷贝到PE Builder的plugin\mcafee\files目录下。然后将它解压,在目录下运行“sdatXXXX.exe /e”,解压过程视机器快慢大约有若干秒不会有任何反应,等待就行,不要以为出问题了。
Off By One Web Browser:号称世界上最小的Web浏览器(图16),完全支持HTML3.2。可在其主页http://www.offbyone.com/ob1_download.htm下载软件,插件需要将软件的ob1.exe文件拷贝到PE Builder的plugin\ob1目录下。
PuTTY:完全免费的telnet和ssh客户端工具,全面支持ssh1、ssh2。在http://www.chiark.greenend.org.uk/~sgtatham/putty/down-load.html上下载putty.exe文件,并将其拷贝到PE Builder的plugin\putty目录下(图17)。
McAfee AVERT Stinger:McAfee提供的专门解除特殊病毒(如冲击波病毒)的独立程序(图18)。可在http://vil.nai.com/vil/stinger上下载stinger.exe文件,并将其拷贝到PE Builder的plugin\stinger目录下。
TightVNC:客户机/服务器软件工具包,能通过网络远程控制客户端电脑桌面,尤其适合低速网络连接。可在http://download.enet.com.cn/html/010062002041001.html上下载软件(图19)。插件需要将软件安装后的vncviewer.exe文件拷贝到PE Builder的plugin\vncviewer目录下。
3Com Gigabit LOM(3C940/ 3C2000)Driver(Asus P4P800 onboard):为3Com 3C2000-T Adapter提供的专用驱动插件。请到华硕的主页下载驱动,目前的版本是3com_940_v46.zip。文件解压然后将el2k_cpp.dll、 el2k_xp.sys、el2000x.inf、el2000.cat拷贝到PE Builder的plugin\nic_el2k_xp目录下。
DSK:为Promise FastTrak TX4000/S150 TX Series系列磁盘驱动器编写的专用插件。主要是为了作为你编写自己磁盘驱动器的插件样板,你只要简单地改写其INF文件就可以拥有自己的专用插件。
Broadcom 440x 10/100 Integrated Controller Driver:Broadcom 440x系列10/100 MB网卡集成控制器驱动编写。在http://www.broadcom.com/drivers/downloaddrivers.php上下载相应驱动,解压后将bcm4sbxp.sys、bcm4sbxp.inf文件拷贝到PE Builder的plugin\nic_bcm4sbxp目录下。
Broadcom BCM57xx NetX-treme Gigabit Ethernet Driver:插件及驱动下载同上。解压后将文件b57xp32.sys、b57xp32.inf拷贝到PE Builder的plugin\nic_b57xp32目录下。
(3)需要付费购买软件的插件:
Disk Commander:一个用来恢复坏死以及被删除或格式化了的文件,还能重新建立被破坏了的分区表(图20)。如果计算机中拥有这个软件,那么将文件 boot.znc、dcmdhlp.vxd、dskcmw32.exe、mbr.bin拷贝到PE Builder的plugin\dskcmd目录下。
ERD Commander 2003:一个用来修复坏死操作系统的超级系统维护工具光盘,可用于重新设定文件权限、重建已遗失的密码、抢救系统及重要资料等许多任务(图21,可参看本刊2003年第21期《你的光盘,你的选择》一文)。如果计算机中拥有这个软件,那么将文件common.dll、compmgmt.exe、 explorer.exe、faux-shell.dll、locksmith.exe、pwdserv.exe、regedit.exe、 tcpcfg.exe拷贝到PE Builder的plugin\erd2002目录下。
Ghost32:大家都非常熟悉的磁盘备份软件(图22)。如果拥有这个软件,可将文件ghost32.exe和ghostexp.exe拷贝到PE Builder的plugin\ghost32目录下。
Nero Burning Rom:经典刻录光盘软件,如果有刻录机,这个插件将带来很大的工作便利(图23),v5.5.10.X的系列版本都可正常使用。如果拥有这个软件,可将安装目录内的文件全部拷贝到PE Builder的plugin\nero burning rom\files目录下。然后修改penero.inf文件的software.addreg部分,修改用户名、公司名及注册号码。其大致看上去如下结构:
[Software.AddReg]
0x1, "ahead\Nero - Burning Rom\Info", "User", "Bart Lagerweij"
0x1, "ahead\Nero - Burning Rom\Info", "Company", "Nu2 Productions"
0x1, "ahead\Nero - Burning Rom\Info", "Serial5", "0000-0000-0000-0000-0000-0000"
提示:如果插件文件不全,点击“Enable/Disable”按钮后就会提示缺少的文件(图24),通常可以下载相应软件并在Windows中安装好,然后根据提示,将缺少的文件复制到Plugins目录下即可。详细提示可通过点击“PluginHelp”按钮获得。每个插件文件夹下都至少包含了*.htm、*.inf、*.xml这3个文件。从http://www.nu2.nu/pebuilder/#plugin还可下载更多插件。另外你也可以自己定制插件,这就需要拷贝相应的文件到Plugins目录下,并编写相应的INF文件,下文将会详述。
4.输出设置
最后是选择制作完毕的系统的输出设置。默认的文件输出路径是“c:\pebldr”,而ISO镜像文件则会被放到PE Builder软件目录中,当然你也可以另行设置(图25),唯一的条件是要保证目标路径有足够的可用空间。设置完毕,点击“Next”按钮进入下一步。
5.创建ISO文件
PE Builder会立即开始执行创建操作,系统首先会从Windows安装光盘中拷贝必要的文件到前面所设置的输出目录中,这里需要一定的时间。耐心等待片刻,一个ISO格式的光盘镜像文件就创建完成了(图26)。如果创建过程中出现错误,那么软件会记录错误出现的原因,我们使用“>>”和 “<<”按钮就可以查看每处错误的成因(图27)。在修正错误后继续点击“Next”按钮再次创建即可。
最后,将建立的ISO文件刻录到光盘上,就可以得到量身定做的Super Windows PE工具盘了,用它启动计算机看看自己的劳动成果吧。
重要软件下载地址:
1.WindowsPE SP2
WinPE官方下载地址:
英文版:
http://oem.microsoft.com/downloads/worldwide/OPK_XPSP2/xpsp2_2180_usa_x86fre_opk.zip
中文版:http://oem.microsoft.com/downloads/worldwide/OPK_XPSP2/xpsp2_2180_chs_x86fre_opk.zip
二、Super WinPE系统汉化
由于PE Builder是英文软件,使用英语或相近语言操作系统安装光盘制作的Super WinPE一般不会有什么问题。但如果是使用汉语等双字节语言的操作系统安装光盘制作Super WinPE,则Nu2menu菜单和中文语言的程序界面会充斥着乱码(图1),更别说中文输入法了,根本无法正常使用。乱码是由于PE Builder默认拷贝到Super WinPE的字库以及在系统中的设置均是针对于英文,所以我们需要在制作时将中文字库拷贝到Super WinPE中,并且修改系统为正确的语言设置。这个工作可在制作完ISO镜像后,通过手工修改镜像文件完成。但这样做不仅麻烦,而且每制作一个ISO文件都要修改,如果经常制作的话,工作量不免太大。所以一劳永逸的方法是制作一个简体中文语言的插件,这样当Super WinPE的ISO制作完毕后就是正确的语言显示了。下面我们就来编写一个简体中文语言插件,同时用来详细演示插件如何开发。
(一)中文插件的开发
一个典型的插件一般至少包含有*.html、*.xml、*.inf这3个文件(图2)。*.html文件一般是插件的说明或帮助文档,*.xml则是插件在系统启动后的菜单项。但有些插件的使用并不需要帮助和菜单项,例如我们下面将编写的中文语言插件,那么*.html和*.xml文件就可省略。*.inf文件是插件的灵魂,它告诉PE Builder建立插件需拷贝的文件、拷贝文件的位置、插件在Super WinPE中的正确设置等关键信息。所以插件的开发基本上就是inf文件的编写。
我们使用记事本来编写inf文件即可,需要注意的是文件最后的存盘格式必须是标准的ASCII文件,不能是unicode文件。脚本中的语句前以分号“;”开始,则会被认为是注释而不会被最终处理,另外注意代码中的所有标点符号都应为半角,否则无法被正确识别。此外需要说明的一点是,在改写中会经常测试改写是否正确有效,如果每完成一步都要刻盘再重启机器,未免太过麻烦,因此推荐使用虚拟机软件Virtual PC或VMWare,用ISO镜像文件直接启动虚拟系统进行测试(注:关于虚拟机软件的使用可参考本刊2003年第7期和第9期的相关文章)。
1.创建插件inf文件
打开记事本,新建文件。通常任何一个PE Builder的插件都能在开头找到以下两句(图3)。
[Version]
Signature= "$Windows NT$"
这两行信息必须添加到新建文件中,否则inf文件就不可用,[Version]之上可按照自己的需要添加注释(行前加分号),添加内容完毕后将其存为chinese.inf文件,这个插件显然还不能做任何事情,下面我们还要添加其他部分。
2.[PEBuilder]部分
每个插件的inf文件都必须包含这一部分,此部分有3个参数。参数“Name”是插件名称,即在PE Builder中显示的名称。参数“Enable”是插件的默认初始状态,0表示插件在PE Builder中非激活,1则表示插件在PE Builder中默认激活(图4)。这个部分的中文插件如下编写:
[PEBuilder]
Name="chinese Language Ver 1.0"
Enable=1
3.[WinntDirectories]部分
此部分使用固定语句格式:directoryID=dirname[,attribute],其主要作用是在Super WinPE中创建目录。“directoryID”是建立目录的ID,在插件的inf文件中你可随意使用字母a~z分配ID;“dirname”即建立目录的名称,必须使用半角的双引号包括(图5);“attribute”的数值表示一些选项开关,默认值为0。我们的插件如下编写:
[WinntDirectories]
a="documents and settings\default user\my documents",3
4.[SourceDisksFiles]部分
这个部分是插件的关键部分,它告诉PE Builder插件需要将哪些文件拷贝到Super WinPE中的哪个目录里。此部分使用如后基本语句格式:filename=directoryID。其中“filename”即需要复制的文件,“directoryID”是目标文件夹的系统目录名称,它使用不同数字来代表不同的系统目录。由于我们需要编写的是简体中文语言插件,所以要将正确的中文字库拷贝到Super WinPE的Font目录中,顺便也可将输入法文件和字库拷贝到Super WinPE的system32目录中。system32系统目录ID为2,Font系统目录为22,故此部分我们如下编写:
[SourceDisksFiles]
WINPY.IME=2
WINPY.MB=2
app936.fon=22
;……
以上省略号处省略了10行,每行格式都类似于“app936.fon=22”,只是将“app936.fon”分别改为vga936.fon、svgasys.fon、svgafix.fon、s8514fix.fon、s8514oem.fon、s8514sys.fon、simsun.ttc、simhei.ttf、simkai.ttf和simfang.ttf。
5.[Software.AddReg]部分
拷贝到Super WinPE的插件文件需要告知系统才会被正确调用,所以我们必须将其加上相应的注册信息。这个部分即专门添加Software部分注册信息,基本格式为“regType”、“regKey”、“regValue”、“regData”。参数“regType”用于指定注册信息键值的数据类型,共有7种类型(表1),注意其中的“0x”必须要小写,否则将无法被正确识别,“regKey”为注册键目录字符串,“regValue”为注册键值的字符串,“regData”用于指定实际使用的数据。
由于Super WinPE系统中的注册键值实际上基本可对应于WinXP的注册键值,所以我们需要做的工作就是将WinXP中关于显示字库和输入法的注册信息导入到Super WinPE系统中。在你的WinXP系统中点击“开始菜单→运行”,输入“regedit”回车后启动注册表编辑器,在如下子键上点击右键将其导出为文本文件备用(图6):
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows NT\CurrentVersion”下的FontMapper、FontSubstitutes、FontLink、Fonts、GRE_Initialize和FontDPI子键,“HKEY_LOCAL_MACHINE\ SOFTWARE\Classes\CLSID”下的{529A9E6B-6587-4F23-AB9E-9C7D683E3C50}、{540D8A8B-1C3F-4E32-8132-530F6A502090}、{08CD963F-7A3E-4F5C-9BD8-D692BB043C5B}、{33C53A50-F456-4884-B049-85FD643ECFED}、{3CE74DE4-53D3-4D74-8B83-431B3828BA53}、{529A9E6B-6587-4F23-AB9E-9C7D683E3C50}、{A4B544A1-438D-4B41-9325-869523E2D6C7}、{B9931692-A2B3-4FAB-BF33-9EC6F9FB96AC}、{EBB08C45-6C4A-4FDC-AE53-4EB8C4C7DB8E}、{275C23E2-3747-11D0-9FEA-00AA003F8646}、{C04D65CF-B70D-11D0-B188-00AA0038C969}和{D66D6F99-CDAA-11D0-B822-00C04FC9B31F}子键。
下面我们来看如何使用导出的文本文件。打开从“CurrentVersion\GRE_Initialize”键值导出的GRE_Initialize.txt文件(图7),按上文所说的格式将其改写为[Software.AddReg]的部分。首先是GRE_Initialize键本身的默认值,由于数据类型“regType”是REG_SZ而且数据值为空(图8),所以其数据类型为0x0。而其键值目录“regKey”并不需要写全,我们将“HKEY_ LOCAL_MACHINE\ SOFTWARE”的后面部分写上即可。所以添加如下内容:
[Software.Addreg]
0x0, "Microsoft\WindowsNT\CurrentVersion\GRE_Initialize"
接着我们将GRE_Initialize内其他键值都进行修改。如值0的数据类型为REG_SZ而又非空值,所以其数据类型为0x1。而其“regValue”和“regData”分别为“GUIFont.Facename”和“宋体”,故添加为:
0x1, "Microsoft\Windows NT\CurrentVersion\GRE_Initialize", "GUIFont.Facename", "宋体"
用此方法将上文所述导出的注册键信息全部按格式添加到[Software.AddReg]部分。实际上我们向Super WinPE系统中拷贝的字库文件有限,上述添加的键值中许多并非必须。但是这样的处理方法简单易行,你不需要费心去辨识那些键值,当然你也可以在熟悉理解WinXP注册表信息后只编写需要的部分,这样可大大降低插件inf文件的体积。
6.[SetupReg.AddReg]部分
这个部分的语法格式与[Software.AddReg]部分完全一致。启动注册表编辑器,将“HKEY_LOCAL_MACHINE\ SYSTEM\ControlSet001\Control”下的“Keyboard Layouts\00000804”、“Keyboard Layouts\E0010804”及“FontAssoc”子键导出为文本文件,并依照第5步的做法按格式将信息添加到插件inf文件的[SetupReg.AddReg]部分。
7.[default.AddReg]部分
这个部分主要的语法格式与[Software.AddReg]部分完全一致。启动注册表编辑器,将“HKEY_CURRENT _USER\Keyboard Layout”下的“Preload”、“Toggle”及“Control Panel\Desktop”等子键导出为文本文件,同样按第5步的做法按格式添加到插件inf文件的[default.AddReg]部分。
至此中文简体插件的chinese.inf文档编写工作全部完成。实际上插件inf文档的编写还包括有其他部分,但编写简体中文语言插件并不需要,大家可对照上述编写过程来学习其他部分。
8.导入插件
由于PE Builder导入插件必须使用cab压缩包文件,所以需要先将chinese.inf文件打包为chinese.cab文件,笔者一般使用Cabnet Manager打包软件(下载地址:http://download.pchome.net/utility/pack/3836.html),可使用鼠标右键菜单方便地添加cab压缩包(图9)。之后在使用PE Builder制作Super WinPE的配置插件步骤时,点击窗口上的“Add”按钮,在弹出窗口中选择刚才制作的chinese.cab文件(图10)。接着软件会让你给插件的目录命名(图11),命名后点击“OK”按钮,插件就会被导入到PE Builder中,由于在插件的[PEBuilder]部分的Enable参数为1,所以导入的插件已经是激活状态(图12)。导入这个中文插件后继续制作完成WinPE的ISO文档,完成后来看看那些中文软件的界面,乱码都已经消失,熟悉的中文回来了(图13)。
(二)Nu2menu菜单的汉化
经过上一步处理后发现Super WinPE的界面菜单依然是英文,且其位置安排也不尽如人意。要改进这一状况,必须修改Nu2menu插件。上文说过,插件内一般有3种文件,其中XML文件就是系统的菜单,所以汉化菜单的工作实际上非常简单,只是简单地修改Nu2menu插件的XML文件就可以了。
用记事本打开Nu2menu插件的Nu2menu.xml文件,其菜单结构一目了然(图14)。即使你完全不懂得XML文件的语法,也可以从文档规律性的语句中轻易辨识出对应在Super WinPE中的菜单项。比如说文档的第一段结构的部分是这样的。

Programs

这代表系统的一级菜单,其语法结构都是对称形式的,非常简单。如整个一级菜单从开始,完成整个部分后则以带斜线的结束。其内具体菜单子项也是从开始然后以结束,和的中间部分则是在Super WinPE菜单中的具体显示文字,如将上文中的“Programs”修改为“程序组”,那么在Super WinPE中菜单项目就改变了(注:前提是已经使用了上面的中文插件,否则可能会有乱码。图15)。因此只要将这部分简单修改为中文,菜单的汉化工作就完成了(注:“”代表菜单中的分隔线)。
修改并制作完成后发现二级和三级菜单依然有部分是英语,这是因为Nu2menu插件只负责系统的一级和部分二级菜单,而更多菜单是由插件本身附带的XML文件负责添加。那么修改插件附带的XML文件即可,如打开插件bginfo的bginfo_nu2menu.xml文档,同样只要将的中间部分修改成中文并存盘即可。另一种方法是将此XML文件的内容修改后再复制到Nu2menu.xml中,而插件附带的XML文件删除即可,这种处理方法更加集中方便,制作出的Super WinPE始终存在此插件的菜单项,但没有激活集成插件的话,相应的菜单项目也是灰色不可选的(图16)。经过对所有被集成插件的XML文件修改汉化,我们制作出的Super WinPE终于是完全的中文界面了(图17)。
三、系统的完善
经过汉化的Super WinPE使用上已经没有太多问题了,不过依然有一些问题需要完善。
1.加入硬件驱动
使用PE Builder建立的Super WinPE是最小化的,只有基本的硬件驱动,而且尽管已经集成了网络插件,但实际上可能仍无法用它实现网络功能,原因在于网卡驱动与具体的网卡可能不相配。要正常使用网络,需要对应为你计算机的网卡在Super WinPE中加入驱动,仍然可以使用插件的形式,以3Com网卡驱动为例。建立inf文件,例如3Com.inf,其内容如下:
[Version]
Signature= "$Windows NT$"
[PEBuilder]
Name="3com"
Enable=1
[SourceDisksFiles]
3com.sys=4,,1 ;将3Com.sys拷贝至system32中
3com32.inf=20,,1 ;将3Com32.inf拷贝至i386\inf目录中
将文件打包为cab文件,导入PE Builder中后会在plugin目录中建立子目录,然后拷贝网卡驱动3com.sys和3com32.inf至此目录下。在制作Super WinPE时激活此插件即可使用3Com的网卡驱动。
2.快速修改镜像
用PE Builder制作完成的ISO镜像大约200MB左右,刻录200MB的小光盘恰好合适,但如刻录一张700MB的普通光盘则未免浪费空间。那么最好集成更多的软件工具,但是否又需重新制作呢?直接使用ISO工具修改即可。不过由于此ISO镜像是使用ISO-9660:1999(version 2)文件系统标准,必须作出相应设置才能保证ISO文件的正确结构。下面的演示中我们将替换Super WinPE的背景墙纸,并为系统添加一个绿色软件WinRAR。
使用软件UltraISO打开镜像,首先调整ISO文件的格式。点击菜单“文件→属性”,在弹出窗口中依次选择“Joliet光盘文件系统标准→Windows/Unix(31)→扩展(110)”(图18)。在硬盘上准备一张分辨率为800×600的BMP图片,将文件名改为“NU2”,打开ISO文件的“I386\ system32”,使用鼠标右键将刚准备好的NU2.bmp文件替换该目录下的同名文件(图19)。这样系统背景墙纸则已经改变(图20)。同样道理,对于无需修改注册表的绿色软件一样可以编辑ISO文件集成到系统中,无需编写插件。打开ISO镜像文件的Progr-ams目录,使用鼠标右键将硬盘上已有的WinRAR安装文件夹添加到其中。然后将ISO镜像文件中“Programs\ NU2MENU”目录下的nu2-menu.xml文件提取出来,用文本编辑器打开,在之间添加如下行(注:中间无换行):
winrar
存盘后再覆盖ISO镜像中的nu2menu.xml文件,这样就可在系统菜单下使用WinRAR了(图21)。