Board logo

标题: [转帖]Windows无人值守、集成安装IE6、驱动程序 [打印本页]

作者: yg2003    时间: 2003-8-23 15:15     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

Windows无人值守、集成安装IE6、驱动程序
作者:六翼天使转

把Service Pack 2集成到Windows 2000安装程序中,只是我们万里长征的第一步,我们还需要把以前手工进行操作的驱动程序的安装集成到Windows 2000的安装文件中,需要说明一点的是,这种驱动程序的集成方式是基于Windows的OEM版本的制作方式。
----------------==========================小知识==================-------------
OEM版本的Windows
Original Equipment Manufacturer,原始设备生产商的缩写。一些著名的品牌商品制造商,常常因为自己的厂房不能达到大批量生产的要求,又或者需要某些特定的零件,因此向其他厂商求助,这些伸出援手的厂商就被称为OEM。
对于Windows来说,由于像Dell、HP等PC厂商不能生产Windows 2000但是又需要大批量Windows,因此就和微软形成OEM关系,同时由于需要商品是大批量的,所以也会在一定程度上降低单价,并且为OEM 版本的Windows进行一定程度上的定制——比如添加驱动程序、应用程序等。
这也是我们可以自动安装以下驱动程序的源泉——制作类似于OEM版本的Windows。
----------------==================================================--------------
1. RAID、SCSI磁盘控制器驱动安装
对于Windows 2000/XP之类的基于NT内核的操作系统,即插即用硬件的安装可以安排在系统安装之后再进行(即系统安装到GUI模式阶段才开始安装);不过对于SCSI、RAID卡的驱动安装情况可能有所不同,如果你需要将操作系统安装在RAID或SCSI硬盘上,那么它们的驱动程序必须在安装系统之前就正确加载(它们的安装时机应是位于系统安装的TextMode阶段)。基于这样的原因,磁盘控制器之类的硬件和常见的即插即用硬件的驱动程序安装方式肯定是不一样的,我们应该区别对待。
安装此类驱动程序常见的模式是将硬件的驱动程序拷贝到软盘上,这样在系统开始安装的时候按下F6,然后系统会为你加载软盘中的驱动程序。这样的驱动程序软盘根目录下肯定有一个名为Txtsetup.oem的文件,它会告诉安装程序怎样安装SCSI、RAID卡的驱动程序,至于这个文件的详细资料我们不再详细加以介绍,如果你有兴趣的话,可以参考微软的驱动开发包中相关部分。
实例——在最初的我安装Windows 2000的时候,总是先将IWill SIDERAID 100的驱动程序放入软驱,然后再安装的初期及时按下F6来加载RAID卡的驱动程序,通过以下方式改造可以让我的RAID卡的驱动直接加载(就如同它已经内置了驱动程序一样)。

(1)把Windows 2000原版光盘上的所有文件拷贝到f:\win2k下,并在i386目录下建立一个$OEM$ 子目录(f:\win2k\i386\$OEM$);
(2) 在$OEM$目录下新建TEXTMODE子目录(f:\win2k\i386\$OEM$\TEXTMODE);
(3) 把RAID卡的Windows 2000驱动程序都拷贝到TEXTMODE目录下(RAID卡随盘驱动程序可能还包括Windows NT/XP的驱动程序,请拷贝相应的文件,Windows 2000驱动程序一般位于Win2000目录下),通常驱动程序包括以下几个文件:
Driver.sys
Driver.dll
Driver.inf
Driver.cat
Txtsetup.oem
我这里是:
Disk1
Hpt3xxNT.sys
Hpt3xxNT.inf
TXTSETUP.OEM
注意:
A.有的驱动程序可能并不包括.cat文件和.dll文件,但肯定要包含TxtSetup.oem、.inf和.sys文件;
B.所有在Txtsetup.oem文件中出现的文件都应该拷贝到textmode目录中;
C.这些文件还必须拷贝到应答文件中OemPnPDriversPath键指定的相关目录中,比如我们后文是f:\win2k\i386\$OEM$\$1\PnPdrvrs\RAID100
D.所有TextMode目录中的文件名还必须列举在应答文件的 [OEMBootFiles]段中。
(4) 用任何文本编辑器编辑Txtsetup.oem文件,删除任何和Windows 2000驱动无关的信息,并且把 [disks] 段中的目录相关信息改成指向当前目录,比如我这里是:
[Disks]
d1 = "HPT370 UDMA/ATA100 RAID Driver Diskette", \Disk1, \
d2 = "HPT370 UDMA/ATA100 RAID Driver Diskette", \Disk1, \Winnt
d3 = "HPT370 UDMA/ATA100 RAID Driver Diskette", \Disk1, \Win2k
修改成:
[Disks]
d1 = "HPT370 UDMA/ATA100 RAID Driver Diskette", Disk1, .
注意:
A.上边的“d1 = "HPT370 UDMA/ATA100 RAID Driver Diskette", Disk1, .”后边有一个表示当前路径的英文句号“.”;
B.由于我们修改了目录信息(只保留了一个d1),所以请将后文相关部分的d3也改成d1(标识Windows 2000驱动程序):
[Files.scsi.Hpt3xx2K]
driver = d1, HPT3xxNT.sys, Hpt3xxNT
inf = d1, hpt3xxNT.inf, Hpt3xxNT
(5) 用文本编辑器编辑unattend.txt并且加入以下段:
[MassStorageDrivers]
" Iwill SIDE RAID100 IDE RAID Controller for Win2000" = "OEM"
其中的“Iwill SIDE RAID100 IDE RAID Controller for Win2000”来自于Txtsetup.oem文件[scsi]段中标志Windows 2000控制器的文字。
(6)在应答文件中,创建 [OEMBootFiles]段,将TextMode目录下的所有文件列表填写进去,我这里是:
[OEMBootFiles]
Disk1
Hpt3xxNT.sys
Hpt3xxNT.inf
TXTSETUP.OEM
注意:
如果你的计算机上有多个存储控制卡,请只将启动设备的驱动程序加入应答文件的[MassStorageDrivers] 和[OEMBootFiles]段中,至于其它存储设备的驱动程序,我们可以按照后文“即插即用硬件驱动安装”中介绍的方法来安装。
(7)为了保证Windows安装程序自动去查找我们添加进去的第三方驱动程序,我们还需要在应答文件中[Unattended]中添加一行:
OemPreinstall=Yes
2. 即插即用硬件驱动安装
即插即用硬件驱动的安装我们不但可以安装Windows不能识别的硬件的驱动程序,并且可以升级Windows可以正确识别的硬件驱动,我们需要做的就是将硬件的驱动程序分目录放好,并且在应答文件中指定驱动程序存放的位置即可。
(1)目录结构的建立
本文需要安装、升级的驱动包括AU10、V3800和CMD DMA66,所以我们只需要建立三个目录AU10、V3800和CMD66即可,这些驱动程序的默认路径位于$OEM$\$1目录下,为了目录结构更加明了,我在$1下新建了一个PnPDrvrs目录来专门存放这三种驱动程序的三个目录;另外我们前边说过“RAID、SCSI磁盘控制器驱动安装”的驱动程序也需要拷贝到这个目录下,所以加上HPT370应该为四个目录,
2)为Windows安装程序指定驱动程序目录
应答文件的 [Unattended]段中应该包括如下选项:
[Unattended]
OemPreinstall=Yes
DriverSigningPolicy=Ignore
OemPnPDriversPath=" PnPDrvrs\Au10; PnPDrvrs\v3800; PnPDrvrs\cmd; PnPDrvrs\HPT370"
说明:
1.即插即用硬件的驱动可以保存分类保存在不同的目录中,每个目录都需要在应答文件的[unattend]段中指定路径(相对于$OEM$\$1的路径),路径之间以“;”分隔(我们这里需要安装V3800、CMD和AU10驱动,所以有在OemPnPDriversPath中指定PnPDrvrs\Au10、PnPDrvrs\v3800、PnPDrvrs\cmd等不同的路径,它们之间以分号分开);
2.为了防止没有通过微软的WHQL认证的驱动安装失败,需要指定DriverSigningPolicy=Ignore来忽略WHQL认证检查。
3.所有的驱动程序必须都是可以通过.inf来进行安装,对于那些必须运行Setup.exe才能进行安装的驱动不能采用此法安装。
四、自动安装应用程序
前面我们已经完成了Windows 2000系统和硬件驱动的安装,现在我们来完成那些常见的应用软件的自动安装和配置,这里简化一下就只为你安装IE 5.5 SP2、DirectX 8.1、Windows Media Player 7.1和ActivePerl等。
1.常用的两种安装方式
我们可以通过两种方式来使Windows安装程序为你自动安装应用程序,第一种方式是借助于Cmdlines.txt这个文件,第二种方式是通过在应答文件的[GuiRunOnce]段来完成。
(1)CMDLines.txt方式
Cmdlines.txt文件位于$OEM$目录下,文件格式如下:
[Commands]
“command 1”
“command 2”
“command 3”
说明:
A.“Command 1”、“Command 2”和“Command x”分别代表你需要Windows为你安装的程序,可以是可执行文件、批处理文件等等,一般位于$OEM$目录和其子目录中;需要注意的是所有的指令必须加上引号。
B.所有通过Windows Installer安装(直接执行.msi文件进行安装)的应用程序不能采用这种方式安装。
实例:我这里已经将IE 5.5 SP2、DirectX 8.1和Windows Media Player 7.1下载下来,分别保存在F:\win2k\I386\$OEM$下的IE5.5、WMP71和DirectX目录中,然后在$OEM$目录中新建三个批处理文件InstDX8.bat、InstIE5.bat和InstWMP7.bat,内容分别如下:
InstDX8.bat
@echo off
echo Installing DirectX 8.1a
echo.
echo Loading...
directx\dx81ntchs.exe /Q /R:N
InstIE5.bat
.\ie5.5\Ie5setup.exe /Q:A /C:"ie5wzd /S:""#e"" /Q /R:N"
InstWMP7.bat
@echo off
echo Installing Windows Media Player 7.1
echo.
echo Loading...
wmp71\mp71.exe /Q:A /R:N
说明:上述的批处理文件中的参数/Q表示无提示安装(自动安装当然需要无提示^_^),/R:N表示安装之后不重新启动,这样可以保证将所有的程序一次安装完毕。
现在CMDLines.txt中添加相应以下内容:
[Commands]
“.\InstDX8.bat”
“.\instWMP7.bat”
“.\instie5.bat”
注意:为了保证Windows安装程序会自动寻找执行CMDlines.txt,你同样需要在应答文件的[unattend]段中指定OemPreinstall = Yes。
(2)GuiRunOnce方式
这里我们以安装ActiveState公司有名的ActivePerl为例加以介绍。在应答文件中的[GUIRunOnce]段中添加以下内容:
rem Perl from http://www.activestate.com/
Start /wait msiexec /qb /i perl-5.6.0-ds.msi TARGETDIR="C:\" PERL_PATH="Yes"
--------------=================小技巧========================-------------
长文件名的问题
由于Windows安装的时候采用的是8.3文件格式,对长文件名不能很好的支持,怎么办呢?我们可以在$OEM$目录中的每个子目录中建立一个$$RENAME.TXT file,文件格式如下:
[section name]
short name 1 = “long name 1“
short name 2 = “long name 2“
--------------=================小技巧========================-------------
五、自动配置程序设置
驱动程序Windows 2000可以帮助你完成,应用程序的安装Windows 2000也可以代替你去实现,可是应用程序的配置呢?比如像我一样,心爱的下载软件FlashGet的代理服务器设置就是一个要花费比较长的时间来输入的,难道每次都来手工Type……
1.注册表导入法
对于只是保存在注册表中的最简单的应用程序配置,我们可以将这个配置保存为一个Reg文件,并放在$OEM$目录中,比如我的FlashGet的代理服务器配置——FGProxy.REG,然后在CMDLines.txt中添加一项:
[Commands]
" regedit /s FGProxy.reg "
说明:/s参数可以让Regedit在将FGProxy.reg添加到注册表中时不会提示我们。
2.使用Sysdiff自动配置应用程序
如果你对注册表没有熟悉到可以知道你需要的应用程序配置在注册表中的保存位置,SysDiff可以帮助你。Sysdiff是Windows NT中内置的一个小工具(Windows 2000用户只有从Windows 2000 Resource Kit中得到),主要用途就是用来查看安装应用程序前后注册表和硬盘上文件的变化,下边我们就以如何安装、配置FlashGet为例来加以介绍。
(1)安装一个全新的操作系统,然后执行以下指令得到系统的原始快照:
sysdiff /snap f:\sysdiff\snap.img
(2)安装Flashget。
(3)FlashGet安装、配置完毕后,再执行以下指令看系统有什么变化:
sysdiff /diff f:\sysdiff\snap.img f:\sysdiff\diff.img
(4)将应用程序集成在Windows安装目录中
sysdiff /inf /m f:\sysdiff\diff.img f:\win2k\i386
说明:/M参数用来将应用程序的快捷键添加到“开始”菜单中。
六、其它选项调整
到此为止我们的Windows 2000安装程序应该算是“武装到了牙齿“,可是你有没有想到更偷懒一些,让Windows帮你输入安装序列号、甚至帮你配置网络设置和IE代理相关?
1. 自动输入序列号
Windows 2000安装的时候需要你输入一个25位的注册码,我们也可以省却输入之苦的(请尊重Windows版权,用你自己的注册码注册)。
在应答文件中的[UserData]段中,新建一个ProductID键值,并且赋值为自己的Windows 2000注册码:
[UserData]
FullName = "cLinuxer"
OrgName = "Linux-China"
ComputerName = "1pig"
ProductID= "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
OK,现在Windows 2000安装程序会代替你输入注册码。
-----------================小技巧==================-----------------
Windows 2000免输注册码令类方法
其实我们可以编辑Windows 2000安装目录下的i386目录中的SETUPP.INI文件,将其中的Pid=52273000后边的三位改成270,以后你安装Windows 2000同样不需要输入注册码。
修改后SETUPP.INI文件内容如下:
[Pid]
ExtraData=7376666563697363646E0C297ACFA6
Pid=52273270
-----------=======================================------------------
2. 在安装的时候选择分区
也许有的朋友已经发现,通过上述定制的安装程序来安装Windows还有一个缺陷——Windows安装分区是自动选择的,我们不能在安装过程中指定分区!◎#¥%
在应答文件中新建[Data]段,并输入以下信息可以让你在安装过程中选择安装分区。
[Data]
AutoPartition = 0
Unattendmode = Yes
MSDosInitiated = "0"
OemSkipEula=Yes

七、硬盘安装 & 光盘安装
通过以上步骤,我们已经定制了高度自动化的Windows 2000安装程序,我们可以从硬盘直接安装或者刻到光盘上从光盘启动进行安装,不过需要注意的是硬盘和光盘安装的目录结构和操作方式还是有些区别的。
1. 硬盘安装
如果从硬盘上调用安装程序来安装Windows, $OEM$目录应该位于i386目录下,并且应答文件应该位于i386目录下,这里假设文件名为unattend.txt,然后执行以下指令进行安装:
DOS下:
Winnt /u:unattend.txt /s:f:\win2k\i386
Windows下:
Winnt32 /unattend:unattend.txt
2. 光盘安装
如果你要从光盘启动进行安装,首先需要把$OEM$目录放在光盘的根目录下(和i386是同级目录),而不是位于i386目录下,同时在i386目录下新建一个名为WinNT.sif的文本$OEM$目录结构
$OEM$
$OEM$目录根据你安装方式的不同放置位置有所不同——光盘安装位于光盘的根目录下,硬盘安装位于i386目录下。如果你在应答文件中设置了OEMFILESPATH键值,你也可以将$OEM$放在Windows安装程序可以访问的任何地方。
$OEM$\textmode
$OEM$\textmode子目录包含有SCSI、RAID卡的驱动程序或者HALS(硬件抽象层驱动),该目录下需要至少一个Txtsetup.oem、一个inf和一个sys文件,而且这些文件必须在应答文件的 [OEMBootFiles]段中列出。
$OEM$\$$
$OEM$\$$子目录等同于%systemroot%或者%windir%指定的路径(一般是c:\Winnt——这里假定Windows 2000安装在C盘),比如$OEM$\$$\System32下的所有文件都会被拷贝到%windir%\System32目录下。
$OEM$\$1
$OEM$\$1等同于%systemdrive%环境变量指定的路径。举个例子来说,加入Windows 2000安装在C盘,则$OEM$\$1等同于D。
$OEM$\$1\pnpdrvrs
你也可以通过在$OEM$\$1\pnpdrvrs子目录下为Windows 2000指定即插即用驱动程序,该文件夹中的所有内容都会被拷贝到%systemdrive%\pnpdrvrs下,这个路径可以通过应答文件中的OemPnPDriversPath键值来指定。
$OEM$\$1\Sysprep
$OEM$\$1\Sysprep目录是一个可选项,只有当你使用Sysprep方式安装才需要,详细情况请参照相关资料,由于与本文内容无关,这里不再赘述。
$OEM$\drive_letter
在TextMode安装阶段$OEM$\drive_letter目录下的所有文件会被拷贝到相应的驱动器上。比如$OEM$\D下的所有文件/文件夹会被拷贝到D:盘上,$OEM$\E\Misc下的所有内容将被拷贝到E:盘根目录下的Misc子目录。
文件,文件内容等同于应答文件Unattend.txt。


作者: 贾行家    时间: 2003-8-23 18:19     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

虽然有点老,可是支持!!
作者: pachino    时间: 2003-8-23 20:23     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

见识一下
作者: twomax    时间: 2003-8-26 05:31     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

太好了,收穫不少,我也要來試看看
作者: je64    时间: 2003-9-2 21:45     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

真是读君一篇文,胜读十处书啊!
作者: 任我行    时间: 2003-9-2 21:47     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

不错,收入精华。
作者: colinbaby    时间: 2003-9-2 22:29     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

好东东,受益良多
作者: YANGLOU    时间: 2003-9-3 05:46     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

高手
作者: hotdll    时间: 2003-9-17 02:15     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

好东西。顶一百次也不够
作者: hotdll    时间: 2003-9-20 18:52     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

根据现在我的实践结果来看.
这个转帖有多处严重错误.按照此方法做的WIN2000根本不可能全自动集成安装IE6.0 DX等,
并且会提示EXPLORER错误.
至于CMDLINES.TXT文件则直接 不会运行.因为转帖的时候我想是转了N次了.
里面的文件语法都错了.
至于别的我不多说了.大家试试就知道了.
我已经重装2000不下20次了
作者: 愚刚    时间: 2003-9-20 19:20     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

这样OS我从来不敢用!
作者: ASKA    时间: 2003-9-20 19:49     标题: [转帖]Windows无人值守、集成安装IE6、驱动程序

好东西  




欢迎光临 EZB 论坛 (http://ultraiso.net/ezbbbs/) Powered by Discuz! 6.1.0