WinPE,全称WindowsPreinstallationEnvironment即Windows预安装环境,它不是一个常规用途的操作系统,无法作为日常工作使用,而是常作为安装、故障排除和恢复的一种工具。下面高手就来教教大家如何自己动手来制作一个完美的WinPE3.0。
一、具体制作方法:
1、把windows7光盘(或光盘镜像)里的\sources\boot.wim文件复制到d:\winpe\sources目录
2、在附件提供imgaex目录里右键点击inf文件,选安装。(Imagex6.0AIK封装工具)
3、运行cmd,进入imgaex目录。
4、imagex/mountrwd:\winpe\sources\boot.wim2d:\winpe\new(将d:\winpe\sources\boot.wim镜像映射到d:\winpe\new目录)
5、删除d:\winpe\new根目录下的setup.exe文件。删除sources文件夹,很重要,可以精简winpe哟。
6、imagex/unmount/commitd:\winpe\new(合并对d:\winpe\new目录中映像文件的修改,并将其卸载)
7、imagex/compressmaximum/exportd:\winpe\sources\boot.wim2d:\winpe\pe3\boot.wim,把boot.wim分离并重新压缩。
7、d:\winpe\pe3\boot.wim即为修改后的镜像。这个时候运行这个映像winpe是默认的命令提示符窗口。
二、制作PE光盘镜像:
1.新建d:\winpe\pe,新建d:\winpe\pe\sources
2.复制(windows7光盘为X)X:\boot目录(包括文件)到d:\winpe\pe
复制X:\efi目录(包括文件)到d:\winpe\pe
复制X:\bootmgr文件到d:\winpe\pe
复制修改后的boot.wim文件到d:\winpe\pe\sources(X为windows7光盘符)
3.用UltraISO提取windows7光盘引导文件,保存为windows7.bif
4.用UltraISO将d:\winpe\pe下的目录和文件添加到光盘镜像,加载windows7.bif,保存镜像为PE3.0.iso
三、图像shell(下面内容来自M$)
Winpeshl.ini可控制是否将自定义外壳程序加载到WindowsPE而不是默认的命令提示符窗口。若要加载自定义外壳程序,请创建一个名为Winpeshl.ini的文件,然后将它放在自定义WindowsPE映像的%SYSTEMROOT%System32中。该.ini文件必须包含以下部分和项:
[LaunchApp]
AppPath=%SYSTEMDRIVE%myshell.exe
[LaunchApps]
%SYSTEMDRIVE%mydirapplication1.exe,-option1-option2
application2.exe,-option1-option2
将AppPath项设置为外壳应用程序的路径。该路径可以是完全限定路径,您也可以使用环境变量(例如%SYSTEMROOT%System32Myshell.exe)来表示该路径。AppPath项不支持命令行选项。
使用[LaunchApps]部分运行带命令行选项的应用程序。应用程序按照列出的顺序运行;应用程序的名称及其选项以逗号分隔。
当退出命令提示符窗口或自定义外壳应用程序时,WindowsPE将重新启动。
重要事项:
不要编辑Setupreg.hiv的HKEY_LOCAL_MACHINE\SYSTEM\Setup注册表项中的CmdLine值来启动外壳应用程序。CmdLine的值可调用Winpeshl.exe,Winpeshl.exe会执行很多函数,包括调用WindowsPE中的默认命令提示符窗口或您的自定义外壳应用程序。
举例:用bsexplorer制作自制版WindowsPE,从网上下载bsexplorer程序,从CMD到imagex目录:imagex/mountrwd:\winpe\sources\boot.wim1d:\winpe\new,解压bsexplorer后连同文件夹一起放到d:\winpe\new\windows目录中,把上面建的Winpeshl.ini,里面要指出bsexplorer.exe所在的路径,放到d:\winpe\new\windows\system32中。
定义:
【bs_desktop.ini】
这个文件是用来自定义PE的桌面快捷方式的,第一行的[DesktopCFGfileVer.1]必须保留。
格式:
《-ItemBegin-》
ItemX=
ItemY=
Caption=
ExeName=
IconName=
IconNumber=
ExeDir=
CmdParam=
ShowState=
《-ItemEnd-》
举例:
《-ItemBegin-》
ItemX=20
ItemY=20
Caption=资源管理器
ExeName=%SystemDrive%\Programfiles\A43\A43.exe
IconName=%SystemDrive%\Programfiles\A43\A43.ico
IconNumber=0
ExeDir=%SystemDrive%\Programfiles\A43
CmdParam=
ShowState=NORMAL
《-ItemEnd-》
参数说明:
每一个左边上的图标都是由这样的一段配置生成的,每个图标开头和结尾必须有《-ItemBegin-》和《-ItemEnd-》,ItemX=是指图标的横向距离,默认第一列为20,第二列为100,第三列为180,以此类推(每下一列的值都比前一列增加80,这是默认的设置,可以自由修改,但这是最好的设计了)。ItemY和ItemX=一样,但指的是横向坐标(即行数)。Caption填什么都可以,支持中文,是图标下的名称文字。ExeName则是目标文件或程序的路径(要求包括扩展名,可以不是绝对路径。允许使用系统变量)。IconName是此快捷方式的图标路径,IconNumber是此图标文件中的第几个图标,默认为0。ExeDir是此文件或程序的运行路径。CmdParam是专门应用于这个程序的启动(命令行)参数(例如NeroStartSmartEssentials的启动参数是-ScParameter=8),大部分大型软件都有用到。ShowState是目标的显示方式,默认为NORMAL,在此参数下打开窗口不会有任何变化,仍然是原样。
【bs_logon.ini】
这个文件是用来自定义PE的登录方式的,这里只讲解[Shell]部分,[Shell]此行必须保留。
格式:
=
举例:
BS图形界面=%SystemDrive%\ProgramFiles\BsExplorer\explorer.exe
参数说明:=之前的内容为登陆框下拉菜单中的显示文字(允许空格和汉字),之后的内容为一个PEShell的路径,其实就是一个可执行程序,但是如果只打开一个普通应用程序的话就不会打开桌面,当此程序结束时会退回登录对话框。无论[Shell]下面的内容你删去了什么,举例中的那行一定要保留,否则下拉菜单中不会出现BS图形界面项,自然也无法进入桌面了。
【bs_qlaunch.ini】
这个文件是用来自定义PE的快速启动栏的,第一行的[QLaunchCFGfileVer.1]必须保留。
格式:
《-ItemBegin-》
Caption=
ExeName=
IconNumber=
《-ItemEnd-》
举例:
《-ItemBegin-》
Caption=显示桌面
ExeName=@ShowDesktop
IconNumber=20
《-ItemEnd-》
参数说明:与bs_desktop.ini文件一样,就是参数少了点。
【bs_menuimg.bmp】
这个文件中保存着需要用到的一些常见的小程序图标(16×16),此文章中所有的IconNumber=都指向这里,所以比较重要。第一个编号为0,第二个编号为1,以此类推,您可按照16×16的大小添加或修改图标。
【bs_explorer.ini】
这个文件中只有几个需要特别讲解的地方:
DesktopBkgndText=显示在桌面右下角的文字,颜色默认为白色,可自由修改,值为空时会显示一段版权说明。
DesktopTextColor=规定了桌面上的文字颜色,格式为十六进制颜色数值,默认为$00ffffff。
DesktopTextBkColor=规定了桌面上的文字的背景色,格式为十六进制颜色数值,默认为$ffffffFF。
其它可能有用的参数(不做详细解释):
NoCheckFiles=不检查文件,默认为YES。
NoStartMenuIcon=无开始菜单图标,默认为NO。
NoStartMenuMargin=无开始菜单边缘空白,默认为NO。
NoDesctopIcon=不显示桌面快捷方式,默认为NO。
NoQlaunchBar=不显示快速启动栏,默认为NO。
【BS_START.INI】
这个文件是最重要的!它规定了开始菜单中的内容。
格式:
《-ItemBegin-》
ShowInAutorun=
EnableInAutorun=
ParentItem=
Caption=
ExeName=
IconNumber=
ExeDir=
ShowState=
《-ItemEnd-》
举例:
《-ItemBegin-》
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=office
Caption=Word
ExeName=%SystemDrive%\programfiles\Office97\WORD.EXE
IconNumber=45
ExeDir=%SystemDrive%\programfiles\Office97
ShowState=NORMAL
《-ItemEnd-》
参数说明:ShowInAutorun=和EnableInAutorun=两项好像基本在我的自定义实验中并没有什么用处,所以不做讲解。大部分参数都与以上介绍的几个文件相同,ParentItem=是指向此快捷方式放入哪个文件夹(如果要放到开始菜单的根目录下的话,就需要写入root)。建立文件夹的格式为:
《-ItemBegin-》
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=programs
Caption=Office97
MenuId=office
《-ItemEnd-》
MenuId是一个唯一的标识,普通快捷方式的ParentItem=指向的就是这里。
同样需要特殊说明的是建立分隔线,格式为:
《-ItemBegin-》
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=root
Caption=-
《-ItemEnd-》
同样,ParentItem=的值属性同上(译为:母物品)。
imagex/unmount/commitd:\winpe\new
imagex/compressmaximum/exportd:\winpe\sources\boot.wim1d:\winpe\pe3\boot.wim
然后把boot.wim放到d:\winpe\pe\sources中,用Ultraiso制作ISO文件(步骤同上)。
至此,一个完美的WinPE3.0就制作完成了,用户可以把制作好的WinPE3.0安装在Windows系统内,这样一来,系统遇到紧急故障时就可以通过这个来进行修复了。