二.编辑“txtsetup.sif”文件
1. 修改[SourceDisksFiles]参数
打开“E:\dell\I386”文件夹,找到一个名为“txtsetup.sif” 的文件,这是Windows 2003在安装时加载驱动程序的信息文件,用写字板程序打开它。按“Ctrl+F”快捷键,打开查找对话框,以“[SourceDisksFiles]”为关键字进行查找。找到这个字段后,其下面已经存在一些内容
再以“[”为关键字查找到这个字段的末尾(注意:不是整个文件内容的末尾),添加以下内容:“lsi_sas.sys = 1,,,,,,3_,4,1,,,1,4 percsas.sys = 1,,,,,,3_,4,1,,,1,4”
lsi_sas.sys = 1,,,,,,3_,4,1,,,1,4 (dell-1950-raid)
percsas.sys = 1,,,,,,3_,4,1,,,1,4 ((dell-2950-raid))
2. lsi_sas.sys注释
这里的“lsi_sas.sys = 1,,,,,,3_,4,1,,,1,4”是描述驱动程序所在位置的代码。代码的格式为“filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename”,在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectories]”等字段中有详细的描述。
在实际操作时,绝对不可以照搬代码!特别是扩展名为sys的文件“lsi_sas.sys”,它是RAID驱动程序目录“D:\w2003RAID\$OEM$\$1\drivers\ sas_raid\r194052 ”中的驱动程序文件名,如果您的RAID驱动程序与本文所述的不同,则只需换成目录中相应的文件即可。而等号后面的代码,一般可以直接照抄使用。
3. 编辑“txtsetup.oem”文件
拷贝txtsetup.oem—[HardwareIds.scsi.MegaSR]中参数添加到txtsetup.oem--- [HardwareIdsDatabase]中,首先切换到前面打开的“txtsetup.oem”文件,以“[HardwareIds.”为关键字进行搜索,应该可以找到类似“[HardwareIds.SICS.MegaSR]”的字段
该字段下的代码如:id = "PCI\VEN_1000&DEV_0054&SUBSYS_1F041028", "lsi_sas"。
切换到刚才打开的“txtsetup.sif”文件窗口中,以“[HardwareIdsDatabase]”为关键字进行搜索。找到后,将“txtsetup.oem”文件中“[HardwareIds.scsi.MegaSR]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾。这里直接搜索[Map.Computer]
就是[HardwareIdsDatabase]末尾,不过,我们需要更改一下代码的格式,如将:
“id = "PCI\VEN_1000&DEV_0054&SUBSYS_1F041028", "lsi_sas"”
改为:“PCI\VEN_1000&DEV_0054&SUBSYS_1F041028 = " lsi_sas "”(其他代码修改方法相同),
更改后的代码如下:
"PCI\VEN_1000&DEV_0054&SUBSYS_1F041028" = "lsi_sas"
"PCI\VEN_1000&DEV_0054&SUBSYS_1F061028" = "lsi_sas"
"PCI\VEN_1000&DEV_0054&SUBSYS_1F071028" = "lsi_sas"
"PCI\VEN_1000&DEV_0054&SUBSYS_1F081028" = "lsi_sas"
"PCI\VEN_1000&DEV_0054&SUBSYS_1F091028" = "lsi_sas"
"PCI\VEN_1000&DEV_0058&SUBSYS_1F0E1028" = "lsi_sas"
"PCI\VEN_1000&DEV_0058&SUBSYS_1F0F1028" = "lsi_sas"
"PCI\VEN_1000&DEV_0058&SUBSYS_1F101028" = "lsi_sas"
"PCI\VEN_1000&DEV_0058&SUBSYS_021D1028" = "lsi_sas"
"PCI\VEN_1028&DEV_0015&SUBSYS_1F011028" = "percsas"
"PCI\VEN_1028&DEV_0015&SUBSYS_1F021028" = "percsas"
"PCI\VEN_1028&DEV_0015&SUBSYS_1F031028" = "percsas"
"PCI\VEN_1000&DEV_0060&SUBSYS_1F0A1028" = "percsas"
"PCI\VEN_1000&DEV_0060&SUBSYS_1F0B1028" = "percsas"
"PCI\VEN_1000&DEV_0060&SUBSYS_1F0C1028" = "percsas"
"PCI\VEN_1000&DEV_0060&SUBSYS_1F0D1028" = "percsas"
"PCI\VEN_1000&DEV_0060&SUBSYS_1F111028" = "percsas"
提示:不同RAID驱动程序的代码内容各不相同,应该根据具体情况灵活处理。
检查拷贝修改的内容是否与原有的内容重复,如果有,则把重复的一行删除。
4. 修改“[SCSI.load]”和“[SCSI]”
接着在“txtsetup.sif”文件查找“[SCSI.load]”和“[SCSI]”字段末尾添加如下内容:
[SCSI.load]
lsi_sas = lsi_sas.sys,4(等号前的字符根据驱动酌情更改,等号lsi_sas后代码一般照抄使用)
具体操作如下:
cpqarry2 = cpqarry2.sys,4
symmpi = symmpi.sys,4
perc2 = perc2.sys,4
hpn = hpn.sys,4
cbidf2k = cbidf2k.sys,4
dac2w2k = dac2w2k.sys,4
dellcerc = dellcerc.sys,4
hpt3xx = hpt3xx.sys,4
cpqcissm = cpqcissm.sys,4
hpcisss = hpcisss.sys,4
afcnt = afcnt.sys,4
lsi_sas = lsi_sas.sys,4
percsas = percsas.sys,4
[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
isapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = ohci1394.sys
[SCSI]
末尾添加lsi_sas = "Dell SAS 5x and SAS 6x Controller Driver (Windows Server 2003 32-bit)"
ql10wnt = "QLogic PCI SCSI Host Adapter"
ql1080 = "Qlogic QLA1080, 64 bit PCI LVD SCSI HBA"
ql1280 = "Qlogic QLA1280, 64 bit PCI LVD SCSI HBA"
ql12160 = "QLogic QLA12160, 64 bit PCI DUAL 160M SCSI HBA"
ql2100 = "QLogic QLA2000/QLA2100 PCI Fibre Channel Adapter"
ql2200 = "QLogic QLA2200 PCI Fibre Channel Adapter"
ql2300 = "QLogic QLA2300 PCI Fibre Channel Adapter"
sym_hi = "LSI Logic C896 PCI SCSI Host Adapter"
sym_u3 = "LSI Logic C1010 PCI SCSI Host Adapter"
symc810 = "LSI Logic C8100 PCI SCSI Host Adapter"
symc8xx = "LSI Logic C8xx PCI SCSI Host Adapter"
symmpi = "LSI Logic PCI Fibre Channel/LSI Logic PCI-X Ultra320 SCSI Host Adapter"
hpn = "Hewlett Packard NetRAID-4M RAID Controller"
perc2 = "Dell PERC 2/3 RAID Controller"
perc2gat = "Dell PERC 2/3 RAID Controller (Gatling)"
lsi_sas = "Dell SAS 5x and SAS 6x Controller Driver (Windows Server 2003 32-bit)"
percsas = "DELL PERC5 and PERC6/CERC6 RAID Controller Driver (Server 2003 32 bit)"
[BootBusExtenders]
pci = "PCI Bus Driver",files.pci,pci
acpi = "ACPI Plug & Play Bus Driver",files.acpi,acpi
isapnp = "ISA Plug & Play Bus Driver",files.isapnp,isapnp
acpiec = "ACPI Embedded Controller Driver",files.none,acpiec
ohci1394 = "IEEE 1394 Bus OHCI Compliant Port Driver",files.ohci1394,ohci1394
[注意]此信息是从驱动的txtsetup.oem文件(或.INF文件)[SCSI]字段中获取,如下图:
scsi = DELL_SAS_2K3
[scsi]
# This section lists the options available for a particular component.
#
# <id> is the unique string for the option
# <description> is a text string, presented to the user in a menu
# <key_name> gives the name of the key to be created for the component in
# HKEY_LOCAL_MACHINE\ControlSet001\Services
DELL_SAS_2K3 = "Dell SAS 5x and SAS 6x Controller Driver (Windows Server 2003 32-bit)",lsi_sas
[HardwareIds.scsi.DELL_SAS_2K3]
id = "PCI\VEN_1000&DEV_0054&SUBSYS_1F041028", "lsi_sas"
id = "PCI\VEN_1000&DEV_0054&SUBSYS_1F061028", "lsi_sas"
id = "PCI\VEN_1000&DEV_0054&SUBSYS_1F071028", "lsi_sas"
id = "PCI\VEN_1000&DEV_0054&SUBSYS_1F081028", "lsi_sas"
id = "PCI\VEN_1000&DEV_0054&SUBSYS_1F091028", "lsi_sas"
id = "PCI\VEN_1000&DEV_0058&SUBSYS_1F0E1028", "lsi_sas"
至此,我们就把自己的RAID驱动程序的相关信息添加到了Windows 2003安装信息文件“txtsetup.sif”中了!
上述添加自定义RAID信息内容的步骤看似很复杂,其实也就是同时打开Windows 2003安装文件目录中的“txtsetup.sif”文件和驱动程序目录中的“.inf”或“.oem”信息文件,然后将后者文件中相关字段下面的内容一一对应地移植到“txtsetup.sif”文件中。知道了方法,做起来就容易了!
三. 编辑“winnt.sif”文件,让系统以自动化安装
1. 解决三大步骤
现在,我们已经完成了三个最重要的步骤:
一.是获取了RAID驱动程序文件,
它们现在被保存在“E:\dell\$OEM$\$1\drivers\sas_raid\r194052”文件夹中;
二.是修改了Windows 2003安装时自动加载驱动程序的信息文件“txtsetup.sif”。
三.服务器硬件驱动(网卡,芯片).
2. 借助Setupmgr(安装管理器)生成winnt.sif
但现在有一个新的问题:Windows 2003在安装时如何知道它所需要的驱动程序文件在哪个目录下呢? 这个问题则需要通过修改“winnt.sif” 这个文件来解决。对于这个文件我们可以借助系统自带Setupmgr.exe工具,全自动安装软件──安装管理器Setupmgr.exe位于系统安装光盘的“\support\tools\deploy.cab”压缩包中,我们只需要进入“\support\tools”文件夹把“deploy.cab”中的文件解压出来即可。
点击 “Setupmgr.exe”会出现一个名为“Windows 安装管理器向导”的窗口,单击下一步,并选择“创建新的应答文件→Windows无人参予安装
选择Windows2003 enterprise l(请选择相应的版本)→全自动安装→从CD安装→我愿意接受许可协议(打勾)”,接下来才是“Windows 安装管理器”的正式界面,在左边我们可以看到已经展开的三大项设置分别是“常规设置”、“网络设置”和“高级设置”,并且会要求你输入姓名、单位、产品密钥、计算机名、管理员密码等等信息,如果不输入上述信息,则无法继续下去。输入正确后再为目标计算机选择显示设置、时区设置、网络组件、工作组或域、区域设置和语言、浏览器和shell设置、安装文件夹位置等选项。
当以上所有步骤完成后,会弹出一个对话框让你输入应答文件的保存位置和文件名(当然也可以默认为“unattend.txt”),点击确定后系统会自动生成应答文件和一个批处理文件“unattend.bat”。这个只是个辅助,因为我们集成了驱动,所以还要修改一些配置
3. 参考DELL引导盘装2003系统后生成一个unattend.txt文件改写winnt.sif
技巧:我们用DELL引导盘装好2003系统后,在C盘会生成一个unattend.txt文本文件,以这个为参考写个winnt.sif文件出来,具体winnt.sif参数说明书,在ISO2003安装文件下 \support\tools\deploy.cab”压缩包中,有个ref.chm文件,打开后点那个unattend.txt目录,很详细介绍到每个参数功能. unattend.txt涉及到硬件.安装.操作系统.网络.服务等等配置.
下面根据前面设置来举个winnt.sif例子:
[UserData]
FullName="viong" 全名
OrgName="viong" 组织名称
ComputerName="viong" 计算机名称
ProductID=" DG8FV-B9TKY-FRT9J-6CRCC-XPQ4G" win2003-key
Keyboard="zh"
[Unattended]
UnattendMode=FullUnattended 将会进行一次完全自动的无人值守安装
OemPreinstall=yes 安装系统的过程中从$OEM$/$1文件夹下安装额外的程序
ConfirmHardware=yes
OemFilesPath="C:\dell\$oem$"
OemPnPDriversPath="\drivers\scsi_non-raid\r117179;\drivers\chip_set\r122802;\drivers\chip_set\r122802\sp;\drivers\scsi_non-raid\r149479;\drivers\scsi_non-raid\r163986;\drivers\network\r168345;\drivers\hotfix\r176782;\drivers\sas_raid\r194052;\drivers\sas_non-raid\r194127;\drivers\sas_raid\r194151;\drivers\network\r195629;\drivers\network\r196228;\drivers\scsi_raid\r99970" 安装文件到哪里搜索比操作系统自带的驱动程序更新的版本.如果安装 程序能找到一个更好的版本,则会自动安装.
TargetPath=\windows 安装程序目录
OemSkipEula=yes 跳过按F8键同意许可协议
WaitForReboot=no 这个选项用来决定计算机是否在图形界面的安装进行完毕后等待15秒
[GUIUnattended]
OemSkipWelcome=1 如果上面的OemPreinstall选项你设置为No,那么这个选项你就要设置为0;而如果OemPreinstall选项设置为Yes,则这个选项就要设置为1.如果设置为0,安装程序就会知道你不想在图形界面的安装过程中显示欢迎屏幕.(注意;这和 “Windows欢迎”界面不同,在那里你可以设置你的用户帐户).
OemSkipRegional=1 跳过区域设置屏
AdminPassword=* Administrator帐户不设置任何密码是值为*,如果要设置密码得用这样的形式"密码".
EMSBlankPassword = Yes 这个选项用来告诉安装文件你的密码是否被加密,Yes表示密码被加密了,而No表示密码为被加密.如果你没有为
Administrator帐户设置密码,那么这个选项应该被设置为No.如果你选择了Yes,Setup Manager就会把密码加密保,存在winnt.sif文件中.
TimeZone=210 时区的设置,210是北京时区
[LicenseFilePrintData]
AutoUsers=9999 授权用户数量
AutoMode=PERSERVER
[Display] 显示屏幕分辨率和刷新频率
BitsPerPel=16
XResolution=800
YResolution=600
VRefresh=60
[Identification]
DomainAdmin=""
DomainAdminPassword=""
JoinDomain=
JoinWorkgroup=WorkGroup
[Networking]
InstallDefaultComponents=Yes
[NetProtocols]
MS_TCPIP=TcpipParams
[NetOptionalComponents]
SNMP=1
DNS=0
DHCPServer=0
WINS=0
[Components]
iis_common=Off
iisdbg=Off
iis_doc=Off
iis_ftp=Off
iis_htmla=Off
iis_inetmgr=Off
iis_nntp=Off
iis_nntp_docs=Off
iis_smtp=Off
iis_smtp_docs=Off
iis_www=Off
iis_www_docs=Off
indexsrv_system=Off
TSEnable=Off
cluster=Off
snmp_srv=0
[InternetServer]
PathFTPRoot="%systemdrive%\inetpub\ftproot"
PathWWWRoot="%systemdrive%\inetpub\wwwroot"
[TerminalServices]
ApplicationServer=0
AllowConnections = 1 开启终端服务
[SNMP]
Community_Name=""
Limit_Host=localhost
Service=Applications,Internet,End-to-End
Send_Authentication=No
Any_Host=No
Location=""
Accept_CommunityName=public:Read_Only
Traps=
Contact_Name=""
[data]
MsDosInitiated="1" 如果你在这里设置为0,则会通知安装程序,你是从光盘上安装操作系统的,如果你准备用软盘引导系统并从硬盘上安装,则在这里设置为1
floppyless="1"
AutoPartition="0" 如果你在这里设置为1,Windows的安装程序就会在任意一个有足够可用空间的硬盘分区上安装操作系统。如果你删除这一行或者把值设置为0,则安装程序会在安装过程中讯问你要把操作系统安装到哪个硬盘分区,并且如果该分区已经包含了一个操作系统,安装程序也会给你合理建议。
InstallDir="\WINNT"
winntupgrade="no"
win9xupgrade="no"
[NetAdapters]
Adapter0=Params.Adapter0
Adapter1=Params.Adapter1
[TcpipParams]
AdapterSections=TcpipParams.Adapter0,TcpipParams.Adapter1
[params.Adapter0]
NetcardAddress=0x002219c950db
[params.Adapter1]
NetcardAddress=0x002219c950dd
[TcpipParams.Adapter0]
SpecificTo=Adapter0
IPAddress=
SubnetMask=
DHCP=yes
DefaultGateway=
WINS=yes
winsServerList=
DNSServerSearchOrder=
[TcpipParams.Adapter1]
SpecificTo=Adapter1
IPAddress=
SubnetMask=
DHCP=yes
DefaultGateway=
WINS=yes
winsServerList=
DNSServerSearchOrder=
[MassStorageDrivers]
"DELL PERC5 and PERC6/CERC6 RAID Controller Driver (Server 2003 32 bit)"=OEM
4. 给出一个1950和2950通用winnt.sif做参考
[data]
AutoPartition="0"
MsDosInitiated="0"
UnattendedInstall="Yes"
[UserData]
FullName="YS"
OrgName="YS"
ComputerName=*
ProductID="jb79q-mg7hh-vp9jq-r78y4-3pfdy"
Keyboard="zh"
[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=Yes
TargetPath=\WINDOWS
WaitForReboot=no
OemPnPDriversPath="\drivers\scsi_non-raid\r117179;\drivers\chip_set\r122802;\drivers\chip_set\r122802\sp;\drivers\scsi_non-raid\r149479;\drivers\scsi_non-raid\r163986;\drivers\network\r168345;\drivers\hotfix\r176782;\drivers\sas_raid\r194052;\drivers\sas_non-raid\r194127;\drivers\sas_raid\r194151;\drivers\network\r195629;\drivers\network\r196228;\drivers\scsi_raid\r99970"
[GUIUnattended]
AdminPassword=*
EncryptedAdminPassword=no
OemSkipWelcome=1
OemSkipRegional=1
TimeZone=210
[LicenseFilePrintData]
AutoUsers=9999
AutoMode=PERSERVER
[Display]
BitsPerPel=16
XResolution=800
YResolution=600
VRefresh=60
[Identification]
JoinWorkgroup=WorkGroup
[Networking]
InstallDefaultComponents=Yes
[NetProtocols]
MS_TCPIP=TcpipParams
[NetOptionalComponents]
SNMP=1
DNS=0
DHCPServer=0
WINS=0
[Components]
iis_common=Off
iisdbg=Off
iis_doc=Off
iis_ftp=Off
iis_htmla=Off
iis_inetmgr=Off
iis_nntp=Off
iis_nntp_docs=Off
iis_smtp=Off
iis_smtp_docs=Off
iis_www=Off
iis_www_docs=Off
indexsrv_system=Off
TSEnable=Off
cluster=Off
snmp_srv=0
[InternetServer]
PathFTPRoot="%systemdrive%\inetpub\ftproot"
PathWWWRoot="%systemdrive%\inetpub\wwwroot"
[TerminalServices]
ApplicationServer=0
AllowConnections = 1
[SNMP]
Community_Name=""
Limit_Host=localhost
Service=Applications,Internet,End-to-End
Send_Authentication=No
Any_Host=No
Location=""
Accept_CommunityName=public:Read_Only
Traps=
Contact_Name=""
[NetAdapters]
Adapter0=Params.Adapter0
Adapter1=Params.Adapter1
[TcpipParams]
AdapterSections=TcpipParams.Adapter0,TcpipParams.Adapter1
[params.Adapter0]
NetcardAddress=0x002219592094
[params.Adapter1]
NetcardAddress=0x002219592096
[TcpipParams.Adapter0]
SpecificTo=Adapter0
IPAddress=
SubnetMask=
DHCP=yes
DefaultGateway=
WINS=yes
winsServerList=
DNSServerSearchOrder=
[TcpipParams.Adapter1]
SpecificTo=Adapter1
IPAddress=
SubnetMask=
DHCP=yes
DefaultGateway=
WINS=yes
winsServerList=
DNSServerSearchOrder=
四.集成系统最新补丁包
1.利用MBCA扫描系统漏洞并下载补丁
利用Microsoft Baseline Security Analyzer V2.1(MBSA)扫描系统漏洞,它能根据扫描结果得到最全最新补丁.
Microsoft Baseline Security Analyzer V2.1下载地址:
安装后点击Scan a computer
默认是本机,直接点击Start Scan
扫描结果出来后,点击Result details (图上蓝色标志)
接下来点击download下面下载标志
然后把补丁全部下载到E:\dell\hotfix目录下面。
2.利用/ integrate 开关集成补丁
接下来整合最新系统补丁到系统光盘上,可以使用 / integrate 开关或 Update.exe 实用工具,这里就利用/integrate来实现.
/integrate命令格式为---- >补丁名称 /integrate:系统盘目录
以windowsmedia6-kb925398-v2-x86-chs_003a779ff2e5d8968ccd00df1dfe5f1
332597c9e.exe这个补丁做一个整合例子,如下图
这样我们就把补丁集合I386下面svcpack文件夹下面,这个文件夹是自动生成,想了解这个原因,我们用WRAR打开I386下面svcpack.in_文件,如下图:
接下来我们该如何把所有补丁都一口气集成到目标路径,复制以下命令,后缀改为.bat格式。直接双击运行就ok
FOR /F usebackq %%i IN (`dir E:\dell\hotfix\*.exe /b`) DO start /wait E:\dell \hotfix\%%i /integrate: E:\dell\cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1\ /passive
依次来解释具体的含义
FOR.......DO——对一组文件中的每一个文件执行某个特定命令。
/F—— 表示处理对象是一组以回车作为分隔符的文件
usebackq——处理一对``里面的命令
%i——就是参数了
IN——包含在...之中的
dir *.exe /b——得到目录下全部exe的文件名,每行一个
start /wait是用于启动一条命令,并且等待其结束再执行后续的命令,如果不加,则会出现n个补丁试图同时集成的情况,会造成集成失败的。
/passive 安静模式下安装
没集成补丁之前I386目录情况:
集成补丁后I386目录情况
五.用Ultraiso封装操作系统
完成上面一序列操作,接下来利用Ultraiso来封装系统光盘,步骤比较简单.
利用Ultraiso打开cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1.iso
然后删除目录下文件,接下来把我们之前集成补丁/raid/硬件驱动所有文件拉到刚刚删除那个位置
完成后直接另存为..
我们想要的自动安装盘终于搞定了,然后直接刻录.
比较结果:多了三个文件夹update,svcpack,SP2QFE,svcpack.in_文件变成svcpack.inf,svcpack.inf文件增加安装补丁对应编号.