制作Windows PE的具体过程.docx
- 文档编号:24087386
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:16
- 大小:49.36KB
制作Windows PE的具体过程.docx
《制作Windows PE的具体过程.docx》由会员分享,可在线阅读,更多相关《制作Windows PE的具体过程.docx(16页珍藏版)》请在冰豆网上搜索。
制作WindowsPE的具体过程
WindowsPECustomizationSPEC
Revision<1.3>
July11,2006
Inventec
Copyright2006Inventec(TianJin)Co,Ltd.AllRightsReserved
本文件之著作权为英业达集团(天津)电子技术有限公司所有,其内容及所涉及的专案信息为本公司商业机密,非经本公司授权许可,任何人不得以任何形式使用(包括但不限于阅读、引用、复制、修改、翻译、保存、出售、公开发布等)或为其他足以侵害本公司著作权及商业机密之行为,若有违者,本公司将依法追诉。
History
Revision
Date
Author
Comment
1.0
2006-4-30
董敏
新建
1.1
2006-6-8
董敏
添加章节1.5和1.6
1.2
2006-6-26
董敏,朱令
修改章节1.3,1.4,1.5和1.6
1.3
2006-7-11
董敏
修改章节1.3,1.4,1.5和1.6
目录
WindowsPECustomizationSPEC4
1.1支持机型4
1.2WindowsPE制作平台4
1.2.1Windows系统4
1.2.2WindowsPE制作工具4
1.3WindowsPE映像所带功能4
1.3.1正常识别网卡4
1.3.2正常识别硬盘5
1.3.3RamDrive支持5
1.4WindowsPE映像支持的启动方式5
1.4.1支持非InRam光盘启动方式5
1.4.2支持InRam光盘启动方式5
1.4.3支持非InRam硬盘启动方式5
1.4.4支持InRam硬盘启动方式5
1.5WindowsPE映像的制作流程6
1.5.1准备工作6
1.5.2制作WindowsPE基础映像7
1.5.3定制WindowsPE映像9
1.5.4创建光盘文件11
1.6WindowsPE映像的配置方法11
1.6.1配置非InRam光盘启动方式11
1.6.2配置InRam光盘启动方式11
1.6.3配置非InRam硬盘启动方式12
1.6.4配置InRam硬盘启动方式12
1.6.5硬盘MBR配置13
1.7附录14
1.7.1参考资料14
WindowsPECustomizationSPEC
WindowsPE(MicrosoftWindowsPreinstallationEnvironment)是带有有限服务的最小Win32子系统,基于在受保护模式下运行的Windows内核。
它包括运行Windows安装程序、从网络共享安装操作系统、自动化基本过程,以及执行硬件验证所需的最基本功能。
本文描述了为ITCnDWinPESolution项目定制的WindowsPE映像的规格。
1.1支持机型
目前已知的支持机型如下:
Fenway3.0
Taos2.0
Davos3.0
Tianshan1.0
W14
Cheela
U12
Symphony
内存需要在256M以上(含256M)
1.2WindowsPE制作平台
1.2.1Windows系统
所用的Windows系统是英文版的WindowsXPSP2。
1.2.2WindowsPE制作工具
所用的WindowsPE制作工具是2005版的,该版本支持的Windows系统是WindowsXPSP2以及Windows2003SP1。
1.3WindowsPE映像所带功能
1.3.1正常识别网卡
WindowsPE映像启动后,能正常地识别所支持机型的网卡,并且Multicast功能正常。
Multicast功能可以通过所附的程序(Mcast.exe)进行测试。
此程序可以在目录Files下找到。
1.3.2正常识别硬盘
WindowsPE映像启动后,能正常地识别所支持机型的硬盘。
能正常地使用diskpart进行相关硬盘操作。
1.3.3RamDrive支持
WindowsPE映像启动后,会自动产生一个4M的RamDrive,盘符是R。
RamDrive上能正常地进行相关的文件操作或目录操作。
RamDrive的尺寸可以调整,上限为16M。
1.4WindowsPE映像支持的启动方式
1.4.1支持非InRam光盘启动方式
以非InRam光盘启动方式启动后,系统盘符由系统自动分配(即光盘盘符),运行过程中会随时读盘,所以光盘不可拔出。
因系统盘是光盘,所以在其上不可作写入操作。
1.4.2支持InRam光盘启动方式
以InRam光盘启动方式启动后,系统盘符固定为X,启动后即可拔出光盘,后续运行过程中无需再读光盘。
系统盘是RamDisk,并且模拟的是光盘,所以在其上也不可作写入操作。
1.4.3支持非InRam硬盘启动方式
以非InRam硬盘启动方式启动后,系统盘符由系统自动分配(即硬盘盘符)。
因系统盘是硬盘,所以在其上可以作写入操作。
但是无法对系统盘做删除分区等动作。
1.4.4支持InRam硬盘启动方式
以InRam硬盘启动方式启动后,系统盘符固定为X。
因系统盘是RamDisk,并且模拟的是光盘,所以在其上也不可作写入操作。
但是可以对硬盘可以做删除分区等动作。
1.5WindowsPE映像的制作流程
1.5.1准备工作
1.5.1.1制作WindowsPE映像前至少需要先准备一张Windows产品CD(即Windows系统的安装光盘)以及一张对应的OPK光盘或者WindowsPE光盘。
具体如下:
A、准备一张Windows产品CD,比如WindowsXPSP2的安装盘。
B、准备一张对应的OPK光盘或者WindowsPE光盘。
标准版本的Windows PE通过WindowsOPKCD和Windows PECD发布。
WindowsOPK CD仅供OEM使用。
Windows PECD仅供从Microsoft购买许可证的非OEM客户使用。
我们需要从OPK光盘或者WindowsPE光盘中取得WindowsPE制作工具,当前所用的WindowsPE制作工具是2005版的。
1.5.1.2另外,实现InRam启动方式时需要有其他的四个文件辅助,这四个文件都可以在目录Files下找到,具体如下:
A、三个文件:
,ramdisk.sys以及setupldr.bin,都来自于Windows2003SP1的安装盘,注意时间版本都是2005/03/25的,否则启动时会出现不可预知的问题。
B、一个手动生成的文本文件:
winnt.sif,文件内容:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\I386\system32\"
OsLoadOptions="/noguiboot/fastdetect/minint/rdexportascd/rdpath=winpex86.iso"
Architecture="I386"
1.5.1.3还有,因为需要添加RamDrive,所以需要准备RamDrive的驱动程序,目前所用的是微软提供的免费版本,可在目录Files下找到,具体如下:
A、驱动文件:
ramdrv.sys和ramdrv.inf。
1.5.1.4最后,需要准备需要添加的网卡驱动和硬盘驱动,以及需要添加的相关Tools和流程。
这些都要视需要而定,具体如下:
A、需要添加的网卡驱动文件和硬盘驱动文件。
B、需要添加的Tools和流程,这部分将被拷贝到映像中的一个特定目录下,目录名为Programs,并且目录下必须要有一个Shell.cmd文件,用于作为流程的入口。
1.5.2制作WindowsPE基础映像
此小节重点描述定制WindowsPE基础映像的过程。
具体步骤如下:
A、在硬盘上创建一个用来存储Windows PE生成工具的目录(表示为build_version)。
例如,请键入:
mdc:
\build_x86
B、将WindowsOPKCD或Windows PECD放在CD-ROM驱动器(表示为cd_drive)中。
C、将cd_drive\Winpe\*.*复制到build_version中。
例如,请键入:
xcopye:
\winpe\*.*c:
\build_x86/E
D、修改build_version\WINPESYS.INF文件(目的是用于添加增加一个RamDrive而对应的注册库的变化),具体:
在“;Nls”对应的内容之后,添加如下内容。
;
;RAMDRV(SAMPLE)Implementation(BasedonRajuram-DDKSupport)
;ENTRIESADDEDBY(Sivakn-DSOPKSupport)
;
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}","Class",0000000000,"Sample"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}","Icon",0000000000,"-5"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","DriverDate",0000000000,"01-21-2002"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","DriverDesc",0000000000,"RamdrvDriver"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","DriverVersion",0000000000,"5.1.2600.0"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","InfPath",0000000000,"ramdrv.inf"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","InfSection",0000000000,"DiskInstall"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","InfSectionExt",0000000000,".NT"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","MatchingDeviceId",0000000000,"ramdrv"
HKLM,"SYSTEM\ControlSet001\Control\Class\{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000","ProviderName",0000000000,"Microsoft"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE",,0x00000010
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","Capabilities",0x00010001,0x0
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","Class",0000000000,"Sample"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","ClassGUID",0000000000,"{78A1C341-4539-11D3-B88D-00C04FAD5171}"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","ConfigFlags",0x00010001,0x4
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","DeviceDesc",0000000000,"RamdrvDriver"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","Driver",0000000000,"{78A1C341-4539-11D3-B88D-00C04FAD5171}\0000"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","HardwareID",0x00010000,"ROOT\ramdrv"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","Mfg",0000000000,"Microsoft"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000","Service",0000000000,"Ramdrv"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000\Control","ActiveService",0000000000,"Ramdrv"
HKLM,"SYSTEM\ControlSet001\Enum\Root\SAMPLE\0000\LogConf",,0x00000010
HKLM,"SYSTEM\ControlSet001\Services\ramdrv","DisplayName",0000000000,"RamdrvDriver"
HKLM,"SYSTEM\ControlSet001\Services\ramdrv","ErrorControl",0x00010001,0x1
HKLM,"SYSTEM\ControlSet001\Services\ramdrv","ImagePath",0x00020000,"System32\DRIVERS\ramdrv.sys"
HKLM,"SYSTEM\ControlSet001\Services\ramdrv","Start",0x00010001,0x0
HKLM,"SYSTEM\ControlSet001\Services\ramdrv","Type",0x00010001,0x1
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Enum","0",0000000000,"ROOT\SAMPLE\0000"
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Enum","Count",0x00010001,0x1
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Enum","NextInstance",0x00010001,0x1
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","BreakOnEntry",0x00010001,0x0
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","DebugComp",0x00010001,0xffffffff
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","DebugLevel",0x00010001,0x0
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","DiskSize",0x00010001,0x400000
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","DriveLetter",0000000000,"R:
"
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","RootDirEntries",0x00010001,0x200
HKLM,"SYSTEM\ControlSet001\Services\ramdrv\Parameters","SectorsPerCluster",0x00010001,0x2
;
;ENDENTRIESADDEDby(sivakn-RAMDRVSUPPORT)
;
如上内容,在很多微软的文档中都有相似内容,但微软的文档中都有相同的错误,请以如上内容为准。
其中,
"DiskSize",0x00010001,0x400000这行用于设定RamDrive的尺寸,0x100000=1M,上限是16M。
"DriveLetter",0000000000,"R:
"这行用于设定RamDrive的盘符,当前设定是R盘。
E、将WindowsOPK CD或Windows PECD从CD-ROM驱动器中取出。
F、将Windows产品CD放在CD-ROM驱动器中。
G、导航到build_version。
例如,请键入:
cdc:
\build_x86
H、运行带有以下两个必需选项的Mkimg命令:
mkimg.cmdsource_directorydestination_directory[/option]
例如,请键入:
mkimg.cmde:
c:
\winpe_tmp/NOWF/WMI
在本例中,Mkimg使用驱动器E中Windows产品CD里的文件,在C:
\winpe_tmp目录中创建Windows PE映像。
参数/NOWF用于关闭防火墙,否则组播会有问题;参数/WMI用于添加对于WMI的支持。
1.5.3定制WindowsPE映像
此小节将描述在WindowsPE基础映像中添加或更新各种驱动,Tools和流程的方法。
具体步骤如下:
A、减少映像尺寸。
具体:
参照Files\SWinPE.txt文件中的内容,删除c:
\winpe_tmp\I386\下的相应文件。
此删除动作可以通过一个批处理文件来实现,此文件(参照Files\Reduce.bat)内容大体如下:
cd/dc:
\winpe_tmp\I386
for/f"usebackqdelims=="%%iin("SWinPE.txt")dodel/q/s%%i
B、更新ramdisk.sys文件(见1.5.1.2),具体:
将ramdisk.sys拷贝到c:
\winpe_tmp\I386\system32\drivers\,并覆盖原有文件。
C、添加RamDrive驱动(见1.5.1.3),具体:
将ramdrv.sys拷贝到c:
\winpe_tmp\I386\system32\drivers\
将ramdrv.inf拷贝到c:
\winpe_tmp\I386\inf\
D、添加网卡驱动,方法与添加RamDrive驱动相同。
如需添加多个网卡驱动,则依次操作即可。
具体:
将网卡驱动的.sys文件拷贝到c:
\winpe_tmp\I386\system32\drivers\
将网卡驱动的.inf拷贝到c:
\winpe_tmp\I386\inf\
E、添加硬盘驱动,硬盘驱动一般是一个目录,并且目录下必然有一个txtsetup.oem文件,你需要先检查一下[Defaults]下的设定与本机的设计配置是否相同。
因为现在硬体厂商提供的一个硬盘驱动目录往往会包含多个硬盘驱动,能支持若干个不同的设备,所以有可能你需要手动改一下[Defaults]设定。
然后:
将硬盘驱动目录整体拷贝到c:
\winpe_tmp\I386\system32\,含目录。
修改c:
\winpe_tmp\I386\system32\winpeoem.sif文件,在此文件末尾添加如下内容:
[OemDriverParams]
OemDriverRoot=""
OemDriverDirs=RAID
其中RAID即为硬盘驱动目录名,如要添加多个硬盘驱动目录,则以逗号隔开即可。
F、添加Tools和流程。
具体:
创建c:
\winpe_tmp\Programs\目录。
将所需添加的Tools和流程拷贝到c:
\winpe_tmp\Programs\目录,并且确保该目录下有Shell.cmd文件,此程序将作为整个流程的入口。
修改c:
\winpe_tmp\I386\system32\startnet.cmd文件,将此文件的内容改为如下所示:
regsvr32/snetcfgx.dll
factory-minint
netcfg-v-winpe
netstartdhcp
netstartnla
cd\Programs
Shell.cmd
此改动一则使得启动以后的系统加载工作最少化,二则自动调用自定义的流程。
至此,目前定制方面的步骤已经完全了。
1.5.4创建光盘文件
此小节负责将定制后的映像压缩至ISO文件格式,以便后续刻录光盘等。
具体内容:
在build_version目录下,运行带有以下最起码的选项的Oscdimg命令:
oscdimg-blocation-nsourcerootimage_file
例如,请键入:
oscdimg-bc:
\build_x86\-nc:
\winpe_tmpc:
\winpex86.iso
在本例中,Oscdimg使用C:
\Build_x86中的ElTorito引导扇区文件和C:
\Winpe_tmp中的自己定制的Windows PE映像来创建能够支持长文件名的C:
\Winpex86.iso。
其实,此步骤的重点将定制好的Windows PE映像制作成可启动光盘的映像文件。
所以此步骤完全可以用很多其他的软件或者工具来实现,而不必拘泥于oscdimg工具。
1.6WindowsPE映像的配置方法
1.6.1配置非InRam光盘启动方式
此方式非常简单,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 制作Windows PE的具体过程 制作 Windows PE 具体 过程