WinPE 制作技术文章之 —— 自己DIY亲自制作Win7PE系统

  首先,在D盘新建一个winpe文件夹,在winpe文件夹中再新建sources、pe3和new三个文件夹,把附件中提供的工具imagex连同文件夹一起放到winpe目录中。

制作win7pe步骤:
  1、把windows 7光盘(或光盘镜像)里的\sources\boot.wim文件复制到d:\winpe\sources目录;
  2、在附件提供的imgaex目录里右键点击inf文件,选安装(Imagex 6.0 AIK 封装工具);
  3、运行cmd,进入imgaex目录;
  4、输入:imagex /mountrw d:\winpe\sources\boot.wim 2 d:\winpe\new (将d:\winpe\sources\boot.wim镜像映射到d:\winpe\new目录)备注:如果无法映射可以把 "2"换成"1"
  5、删除d:\winpe\new目录下的setup.exe文件。删除sources文件夹(很重要),可以精简winpe哟;
  6、输入:imagex /unmount /commit d:\winpe\new (合并对d:\winpe\new目录中映像文件的修改,并将其卸载);
  7、输入:imagex /compress maximum /export "d:\winpe\sources\boot.wim" 2 "d:\winpe\pe3\boot.wim",把boot.wim分离并重新压缩;
  8、d:\winpe\pe3\boot.wim即为修改后的镜像。这个时候运行这个映像winpe是默认的“命令提示符”窗口;
?
制作WinPE光盘镜像:
  1. 新建d:\winpe\pe目录和d:\winpe\pe\sources目录;
  2. 复制(windows 7光盘为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提取windows 7光盘引导文件,保存为windows7.bif;
  4. 用UltraISO将d:\winpe\pe下的目录和文件添加到光盘镜像,加载windows7.bif,保存镜像为WinPE3.0.iso;

图像shell
  Winpeshl.ini 可控制是否将自定义外壳程序加载到 WindowsPE,而不是默认的“命令提示符”窗口。若要加载自定义外壳程序,请创建一个名为 Winpeshl.ini 的文件,然后将它放在自定义 WindowsPE 映像的 %SYSTEMROOT%"System32 中。该 .ini 文件必须包含以下部分和项:
[LaunchApp]
AppPath = %SYSTEMDRIVE%"myshell.exe
[LaunchApps]
%SYSTEMDRIVE%"mydir"application1.exe, -option1 -option2
application2.exe, -option1 -option2
  将 AppPath 项设置为外壳应用程序的路径。该路径可以是完整的绝对路径,也可以使用环境变量(例如 %SYSTEMROOT%"System32"Myshell.exe)来表示该相对路径。AppPath 项不支持命令行选项。使用 [LaunchApps] 部分运行带命令行选项的应用程序。应用程序按照列出的顺序运行;应用程序的名称及其选项以逗号分隔。当退出“命令提示符”窗口或自定义外壳应用程序时,WindowsPE 将重新启动。不要编辑 Setupreg.hiv 的 HKEY_LOCAL_MACHINE\SYSTEM\Setup 注册表项中的 CmdLine 值来启动外壳应用程序。CmdLine 的值可调用 Winpeshl.exe,Winpeshl.exe 会执行很多函数,包括调用 Windows PE 中的默认“命令提示符”窗口或您的自定义外壳应用程序。
  举例:用b**plorer制作自制 DIY 版WindowsPE,从网上下载b**plorer程序,从CMD到imagex目录:imagex /mountrw d:\winpe\sources\boot.wim 1 d:\winpe\new,解压b**plorer后连同文件夹一起放到d:\winpe\new\windows目录中,把上面建的Winpeshl.ini,里面要指出b**plorer.exe所在的路径,放到d:\winpe\new\windows\system32中。
定义:
【bs_desktop.ini】
这个文件是用来自定义WinPE的桌面快捷方式的,第一行的 [Desktop CFG file Ver.1] 必须保留。
格式:
<-ItemBegin->
ItemX=
ItemY=
Caption=
ExeName=
IconName=
IconNumber=
ExeDir=
CmdParam=
ShowState=
<-ItemEnd->
举例:
<-ItemBegin->
ItemX=20
ItemY=20
Caption=资源管理器
ExeName=%SystemDrive%\Program files\A43\A43.exe
IconName=%SystemDrive%\Program files\A43\A43.ico
IconNumber=0
ExeDir=%SystemDrive%\Program files\A43
CmdParam=
ShowState=NORMAL
<-ItemEnd->
参数说明:
  每一个左边上的图标都是由这样的一段配置生成的,每个图标开头和结尾必须有 <-ItemBegin-> 和 <-ItemEnd-> , ItemX= 是指图标的横向距离,默认第一列为 20 ,第二列为 100 ,第三列为 180 ,以此类推(每下一列的值都比前一列增加 80 ,这是默认的设置,可以自由修改,但这是最好的设计了)。 ItemY 和 ItemX= 一样,但指的是横向坐标(即行数)。 Caption 填什么都可以,支持中文,是图标下的名称文字。 ExeName则是目标文件或程序的路径(要求包括扩展名,可以不是绝对路径。允许使用系统变量)。 IconName 是此快捷方式的图标路径, IconNumber 是此图标文件中的第几个图标,默认为 0 。 ExeDir 是此文件或程序的运行路径。 CmdParam 是专门应用于这个程序的启动(命令行)参数(例如 Nero StartSmart Essentials 的启动参数是 -ScParameter=8 ),大部分大型软件都有用到。 ShowState 是目标的显示方式,默认为 NORMAL ,在此参数下打开窗口不会有任何变化,仍然是原样。

【bs_logon.ini】
  这个文件是用来自定义WinPE的登录方式的,这里只讲解 [Shell] 部分, [Shell] 此行必须保留。
格式:
=
举例:
BS图形界面=%SystemDrive%\Program Files\B**plorer\explorer.exe
参数说明:
  =之前的内容为登陆框下拉菜单中的显示文字(允许空格和汉字),之后的内容为一个WinPE Shell的路径,其实就是一个可执行程序,但是如果只打开一个普通应用程序的话就不会打开桌面,当此程序结束时会退回登录对话框。无论 [Shell] 下面的内容你删去了什么,举例中的那行一定要保留,否则下拉菜单中不会出现 BS图形界面项,自然也无法进入桌面了。
?
【bs_qlaunch.ini】
  这个文件是用来自定义WinPE的快速启动栏的,第一行的 [QLaunch CFG file Ver.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%\program files\Office97\WORD.EXE
IconNumber=45
ExeDir=%SystemDrive%\program files\Office97
ShowState=NORMAL
<-ItemEnd->
参数说明:
  ShowInAutorun= 和 EnableInAutorun= 两项好像基本在我的自定义实验中并没有什么用处,所以不做讲解。大部分参数都与以上介绍的几个文件相同,ParentItem= 是指向此快捷方式放入哪个文件夹(如果要放到开始菜单的根目录下的话,就需要写入 root )。建立文件夹的格式为:
<-ItemBegin->
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=programs
Caption=Office 97
MenuId=office
<-ItemEnd->
  MenuId 是一个唯一的标识,普通快捷方式的 ParentItem= 指向的就是这里。
  同样需要特殊说明的是建立分隔线,格式为:
<-ItemBegin->
ShowInAutorun=YES
EnableInAutorun=YES
ParentItem=root
Caption=-
<-ItemEnd->
  同样,ParentItem= 的值属性同上(汉译为:“母物品”)。
imagex /unmount /commit d:\winpe\new
imagex /compress maximum /export "d:\winpe\sources\boot.wim" 1 "d:\winpe\pe3\boot.wim"
  然后把boot.wim放到d:\winpe\pe\sources中,用Ultraiso制作ISO文件(步骤同上),这样以后你的winpe3的外壳界面就是b**plorer带来的效果了。刚快试试吧!

 

制作Bootmgr引导+EFI引导光盘命令格式

oscdimg.exe -m -o -u2 -udfver102 -lmype -bootdata:2#p0,e,b"D:\winpe\pe\boot\etfsboot.com"#pEF,e,b"D:\winpe\pe\efi\microsoft\boot\efisys.bin" D:\winpe\pe D:\mype.iso

 

grldr引导+EFI引导(下列命令中的D:\mycddir\skype是grldr)

OSCDimg.exe -lmyiso -h -m -o -d -g -c -n -bootdata:2#p00,e,b"D:\mycddir\skype"#pEF,e,b"d:\aaa\UEFI.BIN" "D:\mycddir" "D:\abc.ISO"