教你如何手工打造一个完美的WinPE3.0步骤

教你如何手工打造一个完美的WinPE3.0步骤,第1张

WinPE,全称Windows Preinstallation Environment即Windows预安装环境,它不是一个常规用途的 *** 作系统,无法作为日常工作使用,而是常作为安装、故障排除和恢复的一种工具。下面高手就来教教大家如何自己动手来制作一个完美的WinPE3.0。

一、具体制作方法:

1、把windows7光盘(或光盘镜像)里的sourcesboot.wim文件复制到d:winpesources目录

2、在附件提供imgaex目录里右键点击inf文件,选安装。(Imagex 6.0 AIK 封装工具)

3、运行cmd,进入imgaex目录。

4、imagex /mountrw d:winpesourcesboot.wim 2 d:winpenew (将d:winpesourcesboot.wim镜像映射到d:winpenew目录)

5、删除d:winpenew根目录下的setup.exe文件。删除sources文件夹,很重要,可以精简winpe哟。

6、imagex /unmount /commit d:winpenew (合并对d:winpenew目录中映像文件的修改,并将其卸载)

7、imagex /compress maximum /export “d:winpesourcesboot.wim” 2 “d:winpepe3boot.wim”,把boot.wim分离并重新压缩。

7、d:winpepe3boot.wim即为修改后的镜像。这个时候运行这个映像winpe是默认的“命令提示符”窗口。

二、制作PE光盘镜像:

1. 新建d:winpepe,新建d:winpepesources

2. 复制(windows7光盘为X)X:boot目录(包括文件)到d:winpepe

复制X:efi目录(包括文件)到d:winpepe

复制X:bootmgr文件到d:winpepe

复制修改后的boot.wim文件到d:winpepesources(X为windows7光盘符)

3. 用UltraISO提取windows7光盘引导文件,保存为windows7.bif

4. 用UltraISO将d:winpepe下的目录和文件添加到光盘镜像,加载windows7.bif,保存镜像为PE 3.0.iso

三、图像shell(下面内容来自M$)

Winpeshl.ini 可控制是否将自定义外壳程序加载到 Windows PE 而不是默认的“命令提示符”窗口。若要加载自定义外壳程序,请创建一个名为 Winpeshl.ini 的文件,然后将它放在自定义 Windows PE 映像的 %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] 部分运行带命令行选项的应用程序。应用程序按照列出的顺序运行;应用程序的名称及其选项以逗号分隔。

当退出“命令提示符”窗口或自定义外壳应用程序时,Windows PE 将重新启动。

重要事项:

不要编辑 Setupreg.hiv 的 HKEY_LOCAL_MACHINESYSTEMSetup 注册表项中的 CmdLine 值来启动外壳应用程序。CmdLine 的值可调用 Winpeshl.exe,Winpeshl.exe 会执行很多函数,包括调用 Windows PE 中的默认“命令提示符”窗口或您的自定义外壳应用程序。

举例:用bsexplorer制作自制版WindowsPE,从网上下载bsexplorer程序,从CMD到imagex目录:imagex /mountrw d:winpesourcesboot.wim 1 d:winpenew,解压bsexplorer后连同文件夹一起放到d:winpenewwindows目录中,把上面建的Winpeshl.ini,里面要指出bsexplorer.exe所在的路径,放到d:winpenewwindowssystem32中。

定义:

【bs_desktop.ini】

这个文件是用来自定义PE的桌面快捷方式的,第一行的 [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 filesA43A43.exe

IconName=%SystemDrive%Program filesA43A43.ico

IconNumber=0

ExeDir=%SystemDrive%Program filesA43

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 ,在此参数下打开窗口不会有任何变化,仍然是原样。

这个文件是用来自定义PE的登录方式的,这里只讲解 [Shell] 部分, [Shell] 此行必须保留。

格式:

举例:

BS图形界面=%SystemDrive%Program FilesBsExplorerexplorer.exe

参数说明: = 之前的内容为登陆框下拉菜单中的显示文字(允许空格和汉字),之后的内容为一个PE Shell的路径,其实就是一个可执行程序,但是如果只打开一个普通应用程序的话就不会打开桌面,当此程序结束时会退回登录对话框。无论 [Shell] 下面的内容你删去了什么,举例中的那行一定要保留,否则下拉菜单中不会出现 BS图形界面项,自然也无法进入桌面了。

这个文件是用来自定义PE的快速启动栏的,第一行的 [QLaunch CFG file Ver.1] 必须保留。

格式:

《-ItemBegin-》

Caption=

ExeName=

IconNumber=

《-ItemEnd-》

举例:

《-ItemBegin-》

Caption=显示桌面

ExeName=@ShowDesktop

IconNumber=20

《-ItemEnd-》

参数说明:与 bs_desktop.ini 文件一样,就是参数少了点。

这个文件中保存着需要用到的一些常见的小程序图标(16×16),此文章中所有的 IconNumber= 都指向这里,所以比较重要。第一个编号为 0,第二个编号为 1 ,以此类推,您可按照16×16的大小添加或修改图标。

这个文件中只有几个需要特别讲解的地方:

DesktopBkgndText= 显示在桌面右下角的文字,颜色默认为白色,可自由修改,值为空时会显示一段版权说明。

DesktopTextColor= 规定了桌面上的文字颜色,格式为十六进制颜色数值,默认为 $00ffffff 。

DesktopTextBkColor= 规定了桌面上的文字的背景色,格式为十六进制颜色数值,默认为 $ffffffFF 。

其它可能有用的参数(不做详细解释):

NoCheckFiles= 不检查文件,默认为 YES 。

NoStartMenuIcon= 无开始菜单图标,默认为 NO 。

NoStartMenuMargin= 无开始菜单边缘空白,默认为 NO 。

NoDesctopIcon= 不显示桌面快捷方式,默认为 NO 。

NoQlaunchBar= 不显示快速启动栏,默认为 NO 。

这个文件是最重要的!它规定了开始菜单中的内容。

格式:

ShowInAutorun=

EnableInAutorun=

ParentItem=

Caption=

ExeName=

IconNumber=

ExeDir=

ShowState=

《-ItemEnd-》

举例:

《-ItemBegin-》

ShowInAutorun=YES

EnableInAutorun=YES

ParentItem=office

Caption=Word

ExeName=%SystemDrive%program filesOffice97WORD.EXE

IconNumber=45

ExeDir=%SystemDrive%program filesOffice97

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:winpenew

imagex /compress maximum /export “d:winpesourcesboot.wim” 1 “d:winpepe3boot.wim”

然后把boot.wim放到d:winpepesources中,用Ultraiso制作ISO文件(步骤同上)。

至此,一个完美的WinPE3.0就制作完成了,用户可以把制作好的WinPE3.0安装在Windows系统内,这样一来,系统遇到紧急故障时就可以通过这个来进行修复了。

(这是我在中学时写的论文的一部分)

=============================================

所有80x86微机( *** 作系统不限)在启动时,开关按钮先向主板发出一个”Power Good!”信号.CPU收到信号后复位.使SS=DS=ES=IP=0000h,而CS=FFFFh使CPU从FFFF:0000h执行指令,这部分内存区域是BIOS的ROM空间.这里固化一条跳转指令.使CPU转到POST自检部分执行程序.用户在屏幕上可以看到BIOS的厂商,版本等信息,还可以看见内存,驱动器等设备的检测过程.检测完毕后,会显示自检结果,如果发现硬件被更换,则屏幕下方会显示”Update ESCD…”之后,执行INT 19h指令,进入初始引导程序.初始引导程序按在CMOS设置芯片中的顺序,在各驱动器中查找主引导记录,若找到,则将它读到0000:7C00h单元开始的区域.至此, *** 作系统启动第一步完成,用时约10秒.我要研究第二步:Windows9x,MS-DOS *** 作系统的装载.

1.装入IO.SYS文件.

我的依据是在用UltraEdit打开IO.sys时,找到了”Starting MSDOS…”字符串,以及七项启动菜单的字符串.

此时,屏幕显示Starting MSDOS7.1…或Starting Windows95…

IO.sys是MSDOS7.10的内核,其中包括一组设备驱动程序,还有一段程序,用来装配中断向量.它是一个很重要的系统文件,不可删除.

2.解释MSDOS.sys

我的依据是在MSDOS.sys文件中,找到了控制启动的设置.如图2:

此时,屏幕显示漂亮的启动画面

3解释config.sys

Config.sys是MSDOS中的配置文件,用于初始化DOS,创建DOS的工作环境. 它是一个文本文件,可以让用户编辑修改.通常用来安装设备驱动程序,例如光驱,鼠标的驱动程序.它可以删除,但删除之后,一些硬件无法使用.

我的依据是在启动时显示在Config.sys中驱动程序的信息,说明正在安装驱动程序到内存.

4.装入Command.com

Command.com是DOS的默认外壳.它是一个命令解释程序,它用来解释用户输入的命令,以及解释以扩展名为BAT的可执行文件.我的依据是在没有Autoexec.bat的时候,显示版本信息. 而版本信息在Command.com中可以找到.

5.装入Autoexec.bat

Autoexec.bat是DOS中的自动批处理文件,在启动时自动运行,使用户使用时,不必每次在开机时进行相同 *** 作,只要将每次在启动时输入的命令添加在Autoexec.bat中,在开机时就会自动执行,大大提高工作效率.

我的依据是在启动时,显示Autoexec.bat的执行结果.

至此,MSDOS7.10启动结束,显示类似C:\>的提示符,Windows9x启动第二步完成.

6.装入Win.com

Win.com是Windows9x的装载器,用来装入Windows的所有设备驱动程序.

7.装入Wininit.exe

Wininit.exe是Windows的一个设备驱动程序,使Windows支持PNP技术.

8.装入Vmm32.vxd

Vmm32.vxd是一个重要文件.vmm32.vxd将CPU的工作模式从实模式改变成保护模式,使计算机可以使用大于1MB的内存.并按System.ini和注册表配置GUI系统,读取其他驱动程序

9.装入Win16 API

Win16API由3个文件构成:User.exe,GDI.exe,KRNL386.exe.它们提供了一组系统功能调用,使Windows能运行16位的应用程序.

至此,Windows启动第3步结束.

10.装入Win32API

Win32API由Vwin323.386程序装入,有3个文件:User32.dll,Kernel32.dll,Gdi32.dll组成,形成系统内核,使Windows能运行32位应用程序.

11.装入Explorer.exe

Explorer.exe是Windows的默认外壳. 装入之后, 显示任务栏和开始菜单.

至此,Windows9x启动过程结束.

在写论文的过程中,我感到计算机的知识复杂,但具有挑战性,需要我们学习.

SS DS ES IP CS:它们是CPU中的寄存器,SS寄存器的值为堆栈段的段基址,DS为数据段的段基址,ES为附加段的段基址,IP为指令指针,CS为代码段的段基址.

PNP技术:PNP为Plug And Play的缩写,意为”即插即用”.使硬件的安装大为简化.

实模式,保护模式:它们是80386及以上的80x86系列CPU的工作模式.在实模式下,超过1088K的内存不能直接使


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12199000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存