资源描述
如何制作WinPE的基础知识并附所有代码(六)
制作WinPE启动光盘教程
需要使用的软件:EASYBOOT,WINHEX,ULTRAISO
现在网络上流传的WINPE基本以ISO(IS_)和IMG(IM_)为主。如何将最精简的PE和功能最全的PE集成在一起成了大家共有的想法。使用EasyBoot很容易做到这一点。EasyBoot由于界面漂亮,修改容易,成了光盘制作者的最爱。所以,本着为广大网友自己集成方便的目的,将如何集成多个PE的方法简单说明一下:首先安装好上面3个软件,在硬盘上建立一目录,如D:\BOOT,再建二级子目录EZBOOT,把EASYBOOT需要的几个文件EZBOOT.DAT,LOADER.BIN,CDMENU.EZB(样例文件)拷贝到EZBOOT目录。
1:首先了解PE光盘的启动过程
以老毛桃XPPE的BOOTCD_070310.ISO文件为例,这个ISO文件是个可引导的光盘文件,用ULTRAISO打开这个ISO文件,保存引导文件到D:\BOOT\EZBOOT\XP.BIF,把光盘中所有文件提取到D:\BOOT
从上面的目录结构可以看出PE光盘的引导过程,首先启动引导文件XP.BIF,再找到WXPE目录下SETUPLDR.BIN,然后读取WINNT.XPE,加载WINPE.IS_,最后读取WXPE\NTDETECT.COM启动PE,
即:XP.BIF->SETUPLDR.BIN->WINNT.XPE->WINPE.IS_->NTDETECT.COM
(注:easyboot从版本5.08开始,加入了BCDW命令。从EASYBOOT的安装目录中拷贝BCDW.BIN到上面D:\BOOT\EZBOOT,在菜单中原来使用RUN XP.BIF ,用BCDW \WXPE\SETUPLDR.BIN命令代替,这里注意写上光盘绝对路径。这样XP.BIF文件就可删除了)
2:如何集成老毛桃的第二个PE
因为都是老毛桃的PE,启动文件是相同的,所以我们要把它改名。
以集成老毛桃的BOOTCD_070305.ISO为例,用ULTRAISO打开并保存引导文件为XP305.BIF放到D:\BOOT\EZBOOT,把WXPE\SETUPLDR.BIN提取改名为SETUPLDR.305放到D:\BOOT\WXPE。这里XP305.BIF引导后要找的文件是SETUPLDR.BIN,所以要修改XP305.BIF文件,用WINHEX打开,把所有SETUPLDR.BIN替换为SETUPLDR.305,保存。
同样WINNT.XPE名字相同,提取后改名为WINNT.305拷贝到D:\BOOT,用WINHEX打开SETUPLDR.305,把所有WINNT.XPE替换为WINNT.305,保存。
同样WINPE.IS_名字相同,提取后改名为WINPE305.IS_,拷贝到D:\BOOT,用记事本打开WINNT.305,把里面的WINPE.IS_替换为WINPE305.IS_。
3:如何修改外置程序目录名
多个PE,使用同一个外置程序不太可能,特别是XPPE和2003PE同时在一个光盘的情况。上面BOOTCD_070305.ISO为例,提取外置程序改名为外置程序305,拷贝到D:\BOOT,把WINPE305.IS_改名WINPE305.CAB(或.RAR),用WINRAR打开得到一个WINPE.ISO文件,用ULTRAISO打开,提取\WXPE\SYSTEM32\PECMD.INI,用记事本打开,把里面所有的“\外置程序”替换为“\外置程序305”,保存再替换到WINPE.ISO文件中。再把这个WINPE.ISO压缩为WINPE305.IS_拷贝替换到D:\BOOT。同时修改\外置程序305目录下的WINPE.INI文件内容,把所有“外置程序”替换为“外置程序305”。
4:光盘内WINNT.XPE分别为IS_(ISO)与IM_(IM_)启动文件的不同
之处
IM_(IM_) 内容是:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\WXPE\System32\"
OsLoadOptions = "/minint /fastdetect /rdpath=WinPE.IM_"
IS_(ISO)内容是:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=WinPE.IS_"
注意系统目录及文件名不要错(以RAMDISK方式为例)。
5:用EASYBOOT集成
要注意选上“优化光盘文件”、“DOS”、“Joliet”,其中最后一个表示支持长文件(目录)名。
另外向大家介绍一个快速启动技巧:
1、用WinRAR将WinPE.IM_或WinPE.IS_解压缩得到WinPE.IMG和WinPE.ISO,取代ISO镜像里面的IM_或者IS_文件;
2、用记事本修改WINNT.SIF和WINNT.XPE,将WinPE.IM_或WinPE.IS_改为WinPE.IMG和WinPE.ISO;
3、替换setup/setup.bat里面的WinPE.IM_和WinPE.IS_为WinPE.IMG和WinPE.ISO。
这样,虽然WinPE体积增加了(估计一张CD放下没有问题),但是启动时节约了解压CBA文件的时间,启动速度明显增加。
再提供一个制作方法,超简单
以GRLDR作光盘引导、配置文件MENU.LST(可内置)的多合一PE的制作方法:
需要文件:grldr( grldr.rar (100.38 KB))和mkisofs( mkisofs.rar (129.19 KB))文件
先建立一个目录如D:\PENIN1,把grldr放入这个目录,配置好MENU.LST(如果想不看到这个MENU.LST文件先导入grldr)。在这个目录下再建一个子目录,如D:\PENIN1\BOOT,把所有镜像文件放入这个BOOT目录。在D:根目录放置mkisofs.exe及运行批处理MKISO.CMD,批处理内容如下:
mkisofs -R -J -b grldr -no-emul-boot -hide boot.catalog -hide-joliet boot.catalog -boot-load-size 4 -o NPE.iso PENIN1
这样就生成了根目录下只有一个文件及一个目录的可启动光盘。
加载任意位置的WIM文件
本方案只需将原 WINPE.INI 改名为OP.INI,再用下面的WINPE.INI文件即可。自已的WIM镜象可为任意名称,可放在任意位置。但镜象内要有"外置程序\WINPE.INI"文件 ,否则不能正常工作。
//新的WINPE.INI文件内容开始
ENVI $TARGET_ROOT=
BROW $请选择要加载的 WIM 镜象文件(所选的WIM镜象内要有"外置程序\WINPE.INI"文件)(按取消键则加载默认的OP.WIM):
IFEX $TARGET_ROOT=,Call MountOPWIM!Call MountWIM
_SUB MountWIM
MOUN ,B:
MOUN %TARGET_ROOT%,B:,1
LOAD B:\外置程序\WINPE.INI
_END
_SUB MountOPWIM
MOUN ,B:
LOAD %CurDrv%\MINIPE\OP.INI
_END
//新的WINPE.INI文件内容结束
另一方案,比如D:E:F:同时有“外置程序”文件夹时可选择加载其中之一。
1.将SYSTEM32目录中的文件PECMD.INI第31行
FIND $MinMode=Yes,LINK %Desktop%\加载外部配置,PECMD.EXE,LOAD \MiniPE\WinPE.INI,Shell32.dll,26!TEXT|LOAD \MiniPE\WinPE.INI
改为:
FIND $MinMode=Yes,!TEXT|LINK %Programs%\启动\加载外部配置,%WS%\PESTART.CMD,,%WS%\Shell32.dll,26
LINK %Desktop%\修改外部配置,%WS%\PESTART.CMD,,%WS%\Shell32.dll,26
2.在SYSTEM32目录中增加了两个文件PESTART.CMD和PESTART.INI (见附件 PE.rar (6.9 KB))
3.将外部配置WINPE.INI修改后移动到OP.WIM的目录"外置程序"的内部
修改部分如下:
a.去掉2行命令:
MOUN %CurDrv%\MINIPE\OP.WIM,B:,1
LINK %Desktop%\卸载外部配置,PECMD.EXE,LOAD B:\UnloadOP.INI,Shell32.dll,26
b.改掉一行(记不起来了)
IFEX %Programs%\启动\加载外部配置.LNK,FILE %Programs%\启动\加载外部配置.*
修改WinPE系统路径的步骤
1.将WinPE.IS_ 从BootCD.ISO中提取出来,使用WinRAR将它解压缩,你将会得到一个WinPE.ISO。使用UltraISO打开这个WinPE.ISO,直接将里面的WXPE文件夹名字修改掉,比如PEXP。保存WinPE.ISO。
2.使用Makecab将WinPE.ISO压缩成WinPE.IS_。
3.将WinPE.IS_重新放回BootCD.ISO。
4.修改BootCD.ISO中的WXPE文件夹为PEXP。并将里面的SETUPLDR.BIN提取出来,使用UltraEdit将SETUPLDR.BIN打开,将里面所有的WXPE全部修改成PEXP。再将修改后的SETUPLDR.BIN放到修改后的PEXP文件夹中覆盖掉原来的同名文件。
5.将BootCD.ISO根目录的WINNT.XPE提取出来并用记事本打开,修改里面的WXPE为PEXP。再将修改后的WINNT.XPE覆盖掉 BootCD.ISO中原来的同名文件。
6.使用UltraISO提取BootCD.ISO的引导扇区文件,比如命名为Boot.BIF,使用UltraEdit将里面的WXPE修改成PEXP(这里需要注意大小写)。再使用UltraISO将这个Boot.BIF通过“加载引导文件”的方法重新写入BootCD.ISO的引导。
这样的BootCD.ISO的系统文件夹的修改工作就全部完成了。
WINNT.SIF详解
[Data]
AutoPartition=0
;安装程序会在安装过程中讯问你要把操作系统安装到哪个硬盘分区,并且如果该分区已经包含了一个操作系统,安装程序也会给你合理建议.
;在这里设置为0,则安装程序会在安装过程中讯问你要把操作系统安装到哪个硬盘分区,并且如果该分区已经包含了一个操作系统,安装程序也会给你合理建议.
MsDosInitiated="0"
;通知安装程序,你是从光盘上安装操作系统的
;如果你在这里设置为0,则会通知安装程序,你是从光盘上安装操作系统的.
UnattendedInstall="Yes"
;安装程序会进行一次无人值守安装
AutomaticUpdates=yes
;安装程序在完成安装后跳过帮助保你你的PC页面(SP2中的新功能)
[UserData]
ProductID=DG8FV-B9TKY-FRT9J-6CRCC-XPQ4G
;这个选项告诉了安装程序在安装过程中使用的序列号.
FullName="Adminstrator"
;这个选项用来指定你的名字,这将会显示在系统属性的”注册给“项目下.
OrgName="Microsoft"
;这个选项可以用来设置你的组织名称,这个也会显示在系统属性的“注册给”项目下.
ComputerName=*
;在这个选项中你可以指定计算机的名称,这个名称会用在系统和网络中,而且该名称也会在系统属性的计算机名选项卡下.
[Shell]
CustomDefaultThemeFile="%WinDir%\Resources\Themes\LE4_Blue.theme"
;这个选项用以指定默认情况下Windows 使用的主题,所指定的可以是系统自带的其他主题,或者是第三方的主题.通过指定这个选项,Windows XP在你第一次登陆的时候就可以使用你喜欢的主题了.
[Unattended]
UnattendMode=FullUnattended
;完全自动的无人值守安装,在安装过程中遇到的所有问题都将由在winnt.sif文件中预设的答案来回答,在安装过程中你将不能改变任何预设值.
FileSystem=*
;文件系统格式,为空为用户选择就可以在开始安装选择分区时让你选择是否格式化以及格式化后的系统文件格式.
OemSkipEula=Yes
;在这里设置为Yes 将会跳过EULA 屏幕,因为你已经在创建应答文件的时候读过用户许可协议了.在这里设置为No则意味着你需要在安装过程中按F8键同意许可协议.
OemPreinstall=Yes
;安装系统的过程中从$OEM$/$1文件夹下安装额外的程序,而预先把相应的安装文件复制到系统盘中
TargetPath=\WINDOWS
;这个选项告诉了安装程序要把Windows安装到哪个目录中.
UnattendSwitch="Yes"
;跳过Windows欢迎界面,跳过创建网络连接以及创建用户帐户页面.
WaitForReboot="No"
;安装进行完毕后禁止等待
OemPnPDriversPath = ""
;安装文件到哪里搜索比操作系统自带的驱动程序更新的版本.如果安装程序能找到一个更好的版本,则会自动安装.
DriverSigningPolicy=Ignore
;强制安装程序安装没有经过WHQL认证的驱动程序.该选项要和OemPnPDriversPath选项联合使用
NonDriverSigningPolicy=Ignore
[GuiUnattended]
AdminPassword=*
;Administrator帐户没有设置任何密码.
EncryptedAdminPassword=NO
;这个选项用来告诉安装文件你的密码是否被加密,Yes表示密码被加密了,而No表示密码为被加密.如果你没有为Administrator帐户设置密码,那么这个选项应该被设置为No.如果你选择了Yes,Setup Manager就会把密码加密保存在winnt.sif文件中.
OEMSkipRegional=1
;跳过区域设置屏
TimeZone=210
;安装程序时区的设置
OemSkipWelcome=1
;如果上面的OemPreinstall选项你设置为No,那么这个选项你就要设置为0;而如果OemPreinstall选项设置为Yes,则这个选项就要设置为1.如果设置为0,安装程序就会知道你不想在图形界面的安装过程中显示欢迎屏幕.(注意;这和 “Windows欢迎”界面不同,在那里你可以设置你的用户帐户).
[Display]
Xresolution=1024
;这个选项指定了屏幕的默认横向分辨率.
Yresolution=768
;这个选项指定了屏幕的默认纵向分辨率.
[TapiLocation]
CountryCode=86
;这个选项用来设置国家代码.
Dialing=Tone
;指定你的电话线路类型.
[RegionalSettings]
LanguageGroup=9,10
;安装的语言组类型,中国简体中文为10,繁体中文为9
[FavoritesEx]
Title1="XXXXXX.url"
URL1="XXXXXXXXXXXXXXXXXXXXXXX"
;收藏夹网址,可以Title2为好记和名称,URL2为网址.按顺序123这样的继续添加.
[Branding]
BrandIEUsingUnattended=Yes
;给浏览器输入特定的[FavoritesEx],[Proxy],and[URL]
[URL]
Home_Page=XXXXXXXXXXXXXXXXXXXXXXX
;主页地址
[Proxy]
Proxy_Enable=0
;具体是否使用了代理服务器,0表示不使用代理服务器.
Use_Same_Proxy=1
;具体是否使用一个代理服务器的所有服务,不使用代理服务器的所有服务.
[Identification]
JoinWorkgroup=WORKGROUP
;这个选项用以指定将要加入的工作组.如果你没有使用网络,就可以把这个选项保持默认设置.
[Networking]
InstallDefaultComponents=No
;这个选项用以告诉安装程序你是否安装默认的网络组件.如果你设置了Yes那么默认的网络组件就会被安装;如果你设置了No就可以自定义要安装的协议、服务还有客户端.配置该选项的最佳方法是通过Setup Manager(setupmgr.exe).
[NetAdapters]
Adapter1=params.Adapter1
;网络组件选择为params.Adapter1
[params.Adapter1]
INFID=*
;IP分配/建议不使用(可以指定192.168.101.1,192.168.0.1)
[NetClients]
MS_MSClient=params.MS_MSClient
;安装Microsoft网络客户端,允许计算机访问Microsoft网络上资源
[NetServices]
MS_SERVER=params.MS_SERVER
;安装Microsoft网络文件和打印机共享,允许其它计算机用Microsoft网络访问你计算机上的资源.
[NetProtocols]
MS_TCPIP=params.MS_TCPIP
;安装Internet协议 TCP/IP协议,默认的广域网络协议,它提供在不同相互连接的网络上的通讯.
[params.MS_TCPIP]
DNS=No
UseDomainNameDevolution=No
EnableLMHosts=Yes
AdapterSections=params.MS_TCPIP.Adapter1
;TCP/IP协议使用手动设置
[params.MS_TCPIP.Adapter1]
SpecificTo=Adapter1
DHCP=No
IPAddress=192.168.0.1
SubnetMask=255.255.255.0
WINS=No
NetBIOSOptions=0
;TCP/IP协议使用自定义IP,其它默认设置.主要是IP设置及子网掩码设置
[Components]
msmsgs=off
;这个选项可以让安装程序不安装Windows Messenger 4.6.
msnexplr=Off
;这个选项可以让安装程序不安装MSN Explorer 7.
;其它的一些 Windows 组件如下:
AccessOpt
;辅助功能向导
Appsrv_console
;应用程序控制台
Aspnet
;ASP.NET软件开发平台
BitsServerExtensionsISAPI
;在客户端计算机上 BITS 的 ISAPI
BitsServerExtensionsManager
;BITS 管理器组件(需要iis_inetmgr)
Calc
;计算器
CertSrv
;证书服务的证书颁发机构组件
CertSrv_Client
;证书服务的 Web 客户端组件
CertSrv_Server
;证书服的服务器组件
CharMap
;启用在文档中插入符号和文字
Chat
;聊天客户端
Clipbook
;剪贴板查看器
Cluster
;群集服务
Complusnetwork
;启用网络 COM+ 访问
DeskPaper
;桌面墙纸
Dialer
;电话拨号程序
DTCnetwork
;MS DTC 网络访问
Fax
;传真组件
fp_extensions
;Front Pager 扩展
fp_vdir_deploy
;Visual Interdev RAD 远程部署
freecell
;空当接龙游戏
Hearts
;红心大战游戏
Hypertrm
;超级终端
IEAccess
;为 Internet Explorer 安装可见的入口点(快捷方式)
IEHardenAdmin
;为管理员加强 IE 安全性
IEHardenUser
;为用户加强 IE 安全性
Iis_asp
;IIS ASP
Iis_Common
;Internet Information Server (IIS) 所需文件的通用设置
Iis_Ftp
;FTP 服务
Iis_Inetmgr
;基于 Microsoft 管理控制台的 IIS 管理工具
iis_internetdataconnector
;Internet 数据连结器
iis_nntp
;网络新闻传输协议 (NNTP) 服务器
iis_serversideincludes
;服务器端包含文件
iis_smtp
;SMTP 服务器
iis_webdav
;WebDAV 发布
iis_www
;WWW 服务
indexsrv_system
;索引服务,需要 iis_common、iis_inetmgr、iis_WWW 和 COM
Inetprint
;Internet 打印
LicenseServer
;禁用终端服务授权
media_clips
;声音事例
Media_Utopia
;幻想空间配音方案
minesweeper
;扫雷游戏
mousepoint
;鼠标指针
Msmq_ADIntegrated
;将 Microsoft Message Queuing (MSMQ) 集成到 Active Directory 中
Msmq_Core
;MSMQ 核心组件
Msmq_HTTPSupport
;启用 MSMQ 来使用 HTTP
Msmq_LocalStorage
;允许在本地保存消息
Msmq_MQDSService
;提供 Active Directory 和站点识别功能
Msmq_RoutingSupport
;提供 MSMQ 路由
Msmq_TriggerService
;将消息到达与 COM 对象关联
msnexplr
;安装 MSN Explorer
MsWordPad
;写字板
NetCis
;Microsoft COM internet 服务,需要 iis_common、iis_inetmgr、iis_www 和 COM
NetOc
;其他可选的网络组件,需要 [NetOptionalComponents] 部分
ObjectPkg
;对象包装程序
OEAccess
;Outlook Express 的入口点
Paint
;Microsoft 画图
pinball
;弹球游戏
Pop3Admin
;Pop3 管理的Web 用户界面
Pop3Service
;POP3 服务
Pop3Srv
;POP3 根组件
rec
;录音机
reminst
;远程安装服务(RIS)
RootAutoUpdate
;OCM 更新根证书
RStorage
;远程存储服务启用磁带库的使用作为 NTFS 卷的扩展
sakit_web
;远程管理工具(以前的服务管理工具包)
solitaire
;纸牌游戏
Spider
;蜘蛛纸牌游戏
Templates
;文档模板
TerminalServe
;仅在服务器上安装终端服务
TsWebClient
;为终端服务安装 ActiveX 组件,需要 IIS
vol
;音量控制
WbemCrrl
;Windows Management Instrumentation (WMI) 事件搜集组件
WbemFwrd
;Windows Management Instrumentation (WMI) 事件传送组件
WbemMSI
;Windows Management Instrumentation (WMI) Windows Installer提供商
WMAccess
;Windows Messenger 的入口点
WMPOCM
;Windows Media Player的入口点
Wms
;Windows Media 技术组件
Wms_Admin_asp
;Windows Media 技术服务器管理工具 Web 组件
wms_admin_mmc
;Windows Media Microsoft Management Console (MMC) 管理单元
wms_isapi
;Windows Media 服务器多路广播和广告
Wms_Server
;Windows Media 技术服务器,需要 Wms_Admin
zonegames
;安装 Microsoft Game Zone Internet 游戏
[GuiRunOnce]
; 列出当第一次登录计算机时您想启动的程序
TXTSETUP.SIF详解
Txtsetup.sif 是一个安装信息文件(sif),主要用于 Windows 的文本安装模式(就如其名)。而且,它还可能会被其它的一些东西使用,例如,Windows PE 启动时也会用到它(Windows PE 用到了文本安装模式的末尾和 GUI 安装模式的开始部分)。文本模式完成后,这个文件就没什么用了;它不会被复制到 Windows 安装文件中(GUI 安装模式用到的安装文件)。因为 Windows 不会用到它,所以,像是系统文件保护(SFC) 这样的功能就不会影响到它。它也没有数字签名,因此你可以随意修改它而不会出现问题。
可以利用 txtsetup.sif 向安装文件中添加第三方驱动,修改安装Windows 的最小系统需求,添加或删除注册表预设,以及更多。
制作自己的安装光盘,这个文件就必须仔细研究一下,有用的地方不少。txtsetup.sif是制作安装光盘中极为重要的一个文件,里面记录了安装文件所在位置以及安装时文件拷贝的目标文件夹,实际作用其实就是把指定的文件按要求拷贝到预设好的位置上最可能用到的是以下几段:
[SourceDisksNames.x86]——用代码表示源文件的位置
[WinntDirectories]——用代码表示文件拷贝的目标文件夹,其根目录为 %WinDir%,即安装指定的Windows文件夹
[SourceDisksFiles]——根据前面设定的代码表示文件拷贝的具体细节
下面3段为集成 SATA、SCSI 等驱动时所用:
[HardwareIdsDatabase] —— 硬件标识
[SCSI.Load] —— SCSI驱动加载
[SCSI] —— SCSI设备说明
[HiveInfs.Fresh] —— 全新安装时根据指定的 inf 文件中的字段添加注册表信息
[HiveInfs.Upgrade] —— 升级安装时根据指定的 inf 文件中的字段添加注册表信息
若想把 txtsetup.sif 中的某行移除掉,那么应该在此行前添加一个分号(;)或是把这行整个的删掉,通常,把 txtsetup.sif 中的某行删掉之后,那么还需要把 dosnet.inf 中的对应行删掉。如果想添加一行,那就比较复杂了,下面是 txtsetup.sif 的某个示例行:
locsecw.chm = 1,,,,,,,21,0,0,defrag.chm
locsecw.chm 是 Windows 安装文件中的某个文件。
1 代表着它是个初始(RTM)XP 文件,通常你会看到 1 或 100,1 的定义来自于[SourceDisksNames.x86],表示源文件为原版本且在光盘上i386文件夹,100表示源文件为SP补丁中较新版本的文件,100 代表它是个SPx 文件(SP1,SP2..SPx);
21 代表着它的复制目的地,其相对于 %windir% 文件夹,在这里,21 是让安装程序把 locsecw.chm 复制到 %windir%help。具体哪些值代表哪些目录可以在 [WinntDirectories] 中找到。一般情况下,[WinntDirectories] 中定义的目录都是相对于 %windir% 文件夹的子目录,这就意味着你把文件添加到 txtsetup.sif 中,那么它就会被复制到 %windir% 文件夹中(可能在其子文件夹中)。
第一个0为升级代码位,含义为:(升级时)
0-总拷贝文件
1-安装文件夹中有该文件才拷贝
2-安装文件夹中有该文件时不拷贝;
3-不拷贝文件
第二个0为新安装代码位,含义同上(全新安装时)另外据说此代码若不为0,其前面需多加2个逗号
defrag.chm表示将目标文件改名为此,因此,这一行表明,不管是升级还是全新安装都将源文件locsecw.chm拷贝到%WinDir%\help文件夹下并改名为defrag.chm,就如在示例中所看到的一样,可以在行的末尾重命名要复制的文件。Microsoft 用它来区分 Windows XP Home 和 Pro 版。Home 的文件带有P, Pro 的文件带有 W。W 可能是代表着工作站(WorkStation) 的意思,P 可能是代表着个人版(Personal) 的意思,Windows XP Home 最初就叫做 Whistler Personal。
示例;
cmconW.chm = 1,,,,,,,21,0,0,cmconcepts.chm - xp pro txtsetup.sif
cmconP.chm = 1,,,,,,,21,0,0,cmconcepts.chm - xp home txtsetup.sif
就如所见的一样,XP Home 和 XP Pro 的文件并不相同,但是最后复制到系统中的文件名称都一样。同时请注意,txtsetup.sif 支持长文件名。
现在来看看另一行:
autofmt.exe = 1,,,,,,_x,2,0,0,,1,2
“_x”代表着这个安装盘上的这个文件没有经过压缩,如果没有这个,那么安装程序会认为这个文件已被压缩过了。这个对于保证安全性和可靠性很重要。每个 XP 文件都被列在了“layout.inf”中,包括这个文件的大小(按字节计算),很明显,一个文件的压缩前和压缩后的大小是不会相同的。如果“txtsetup.sif”告诉安装程序“某个文件未被压缩”,那么安装程序就会在“layout.inf”中查找它的文件大小以确保这个文件未经修改或是损坏。如果文件大小与“layout.inf”中记录的不同,那么 XP 安装程序就会报错并停止安装。这个能够保证安装程序的安全性,以确定文件是否被修改过。它还能验证文件是否已被损坏,如果文件已被损坏,那么稍后安装时就可能会出现问题。如果以“_x”为关键字在“txtsetup.sif”进行搜索,那么就能找到所有未经压缩的 Windows 安装文件。
有个很重要的事情就是,txtsetup.sif 并没有告诉安装程序应当从哪里获取安装文件。它唯一的功能就是把按照正确的文件名把文件复制到正确的目录中。
举例说明:
比如说,把 tweakui 集成到 Windows 安装文件中,但是不想使用无人值守的方式。那么利用 txtsetup.sif 可以很轻松地做到这点。
第一步:下载 Tweak UI:下载后,用 WinRAR 把 tweakui.exe 提取出来,或是先安装这个程序再把windows\system32 中的tweakui.exe 复制出来;
第二步:把 tweakui.exe 复制到 XP 安装文件所在的文件夹中,把 XP 安装盘上的文件复制到硬盘上,然后把 tweakui.exe 放到 i386 文件夹中;
第三步:修改 txtsetup.sif 和 dosnet.inf,把以下行添加到 dosnet.inf 中:
d1,tweakui.exe
把以下行添加到txtsetup.sif 中:
tweakui.exe = 1,,,,,,,2,0,0
现在运行安装程序,dosnet.inf 会把 tweakui.exe 复制到 C:\$WIN_NT$.~LSi386 中,接着重启之后,就会进入文本安装模式了,而 txtsetup.sif 会把 C:\$WIN_NT$.~LSi386 中的 tweakui.exe 复制到 C:\Windows\System32 中,当整个安装进程完成之后,若要运行 tweakui.exe,那么只需转到 “开始”>”运行”>输入:tweakui,点击确定就行了。那为什么不在新添加的行中使用“_x”呢?这是因为 tweakui.exe 不是 XP 的初始安装文件,XP 不需要检查它(因为它未在 layout.inf 中进行定义).
[B]利用“Txtsetup.sif”和“xpinstall”集成安装打补丁[/B]
将补丁以及xpinstall等相关文件准备好,放在同一文件夹下,并配置好“xpinstall.xml”(用xpinstall来安装补丁比较美观)。用WinRAR将这些文件做成自解压压缩文件“xp_patch.exe”,并在自解压选项的模式中指定解包到临时文件夹和全部隐藏,以及指定“xpinstall”为解压后运行的程序,用“makecab”压缩该文件,并把文件拷贝到i386文件夹中
在 [SourceDisksFiles] 中添加:
xp_patch.exe = 1,,,,,,,1,0,0
在“winnt.sif”中的 [GuiRunOnce] 添加:
Command0="%WinDir%\xp_patch.exe"
从硬盘安装时,安装程序会先利用“dosnet.inf”中的定义把文件复制到“C:\$WIN_NT$.~LS”中。然后,安装程序才会利用 Txtsetup.sif 把这个文件夹中的文件复制到对应的文件夹中。因为只能利用“txtsetup.sif”把文件复制到“%windir%”文件夹下,所以它的用途有限,主要是用它来添加注册表预设和驱动。
[B]用“txtsetup.sif”来添加自定义的注册表条目[/B]
每次文本安装模式即将结束时,安装程序就会利用“txtsetup.sif”中的某些定义来创建注册表(文件复制结束时)。如果是全新安装的话,安装程序就会按照“tx
展开阅读全文