|
[原创]自动集成安装2000PRO版实例!
[这个贴子最后由(狼)在 2003/09/21 10:09am 第 2 次编辑]
自动集成安装2000实例
---Hotdll
今天以单张2000PRO版本的自动集成安装为例子详细介绍自动集成安装的方法和技巧。三合一的方法和这个差不多。自己举一反三就OK了。
一、任务:
1:打SP4
2:集成SP4到目前所有的hotfixes
3:集成IE6.0SP1和最新的补丁
4:集成DX8.1B最新版本
5:集成WMP9.0和最新补丁
6:集成压缩软件winrar
7:个性化OEM标志
8:任务要求,在安装的时候除了自定义分区外,安装过程到出现桌面不需要人工干预。
二、制作过程
A :在硬盘新建文件夹win2000,然后新件文件夹root拷贝2000引导文件bootw2k.abf到win2000目录下复制2000的PRO版本安装盘所有文件到root目录下,去掉所有文件的隐藏和只读属性,然后在root目录下新建$oem$,依次在$oem$下新建如下目录:
├─win2000
└─root
├─$oem$
│ ├─$$
│ │ └─system32
│ └─$1
│ └─install
│ ├─Applicati
│ ├─Hotfixes
│ └─UPDATES
│ ├─direc
│ └─IE6SP
├─BOOTDISK
├─DISCOVER
├─i386
├─SETUPTXT
├─SUPPORT
└─VALUEADD
$oem$目录包含文件如下
$oem$\
$oem$\CMDLines.txt
$oem$\InstDX8.bat
$oem$\INSTHFS.bat
$oem$\INSTIE6.bat
$oem$\$$\
$oem$\$$\system32\
$oem$\$$\system32\OEMINFO.INI
$oem$\$$\system32\OEMLOGO.BMP
$oem$\$1\
$oem$\$1\install
$oem$\$1\install\applications.cmd
$oem$\$1\install\Applications\
$oem$\$1\install\Applications\winrar.exe
$oem$\$1\install\Applications\MPSETUP.EXE
$oem$\$1\install\Applications\KB819639.exe
$oem$\$1\install\Hotfixes\
$oem$\$1\install\Hotfixes\KB822831.exe
$oem$\$1\install\Hotfixes\KB823559.exe
$oem$\$1\install\Hotfixes\KB824105.exe
$oem$\$1\install\Hotfixes\KB824146.exe
$oem$\$1\install\Hotfixes\q814078.EXE
$oem$\$1\install\Hotfixes\Q823718.exe
$oem$\$1\install\UPDATES\
$oem$\$1\install\UPDATES\directx\
$oem$\$1\install\UPDATES\directx\
$oem$\$1\install\UPDATES\IE6SP1\
$oem$\$1\install\UPDATES\IE6SP1\IE6.0SP1的全部升级文件
$oem$\$1\install\UPDATES\IE6SP1\q330994.exe
$oem$\$1\install\UPDATES\IE6SP1\q822925.exe
安排目录规则,在注册组件的安装的程序和在重新启动后安装的程序要分开,一些软件和该软件的补丁最好放在一个包里面.这里就是以后不自动安装也容易记忆,在这里不的不提到两个文件winnt.sif和CMDLines.txt,winnt.sif是光盘启动后默认的应答文件,而CMDLines.txt则是默认的oem集成安装默认文件。CMDLines.txt文件里的程序在系统完成复制和注册组件的时候运行安装。而winnt.sif文件里的[GuiRunOnce]段是在系统完成安装正式进入桌面前安装。根据这两个文件的特点,我们可以将上面的文件分类:一需要注册安装并要求系统重新启动才能让系统正常运行或稳定运行的程序或补丁。,二无须系统重新启动就能正常运行的程序或补丁。
B:下载最SP4集成到2000安装程序里。具体过程参见精华区帖子。
C:制作winnt.sif文件-----Windows 2000安装光盘中附有无人值守安装配置工具,具体位置位于\SUPPORT\TOOLS目录下的DEPLOY.CAB文件中,用WinZIP解开它释放到任何一个临时目录,再执行SetupMGR.exe就可以定制应答文件了。
下面是安装图例:在自定义好分辨率后一路回车到设置时区。
http://my.6to23.com/mylemon/hotdll/index.files/image002.gif
http://my.6to23.com/mylemon/hotdll/index.files/image004.gif
http://my.6to23.com/mylemon/hotdll/index.files/image006.gif
http://my.6to23.com/mylemon/hotdll/index.files/image008.gif
http://my.6to23.com/mylemon/hotdll/index.files/image010.gif
http://my.6to23.com/mylemon/hotdll/index.files/image012.gif
http://my.6to23.com/mylemon/hotdll/index.files/image014.gif
http://my.6to23.com/mylemon/hotdll/index.files/image016.gif
http://my.6to23.com/mylemon/hotdll/index.files/image018.gif
http://my.6to23.com/mylemon/hotdll/index.files/image020.gif
http://my.6to23.com/mylemon/hotdll/index.files/image022.gif
http://my.6to23.com/mylemon/hotdll/index.files/image024.gif
http://my.6to23.com/mylemon/hotdll/index.files/image026.gif
http://my.6to23.com/mylemon/hotdll/index.files/image028.gif
http://my.6to23.com/mylemon/hotdll/index.files/image030.gif
到此已经生成了wint.SIF文件了。另外两个文件winnt.bat 和winnt.udf可以删除不要。下面我们要用记事本或别的工具编辑winnt.sif让它更适合安装需要。需要我们手工编辑的文件并不多。只有三段:
[Data]
AutoPartition=1 将1改成0
MsDosInitiated="0"
UnattendedInstall="Yes"
[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=No 将NO改成YES
增加TargetPath=\WINNT
Repartition=No
和手工添加
[GuiRunOnce]
%systemdrive%\install\applications.cmd
段,这个段的作用前面已经有介绍。
以上的修改是为了实现自动应答和手工分区。然后保存就OK了。[GuiRunOnce]段是在win启动后快进入桌面的时候运行的。将在下面介绍
该是介绍CMDLines.txt文件的时候了。这个文件需要放在$oem$目录下。用记事本新建立一个文本文件CMDLines.txt,然后编写
[Commands]
"cmd /c start /min cmd /c .\INSTDX8.bat"
"cmd /c start /min cmd /c .\INSTIE6.bat"
"cmd /c start /min cmd /c .\INSTHFS.bat"
http://my.6to23.com/mylemon/hotdll/index.files/image032.gif
CMDLines.txt文件的格式是"cmd /c start /min cmd /c .\xxx.bat"
要带双引号,这个很重要。很多帖子这个命令都是错误的。
这个里面的xxx.bat里的文件名字最好不要超过7位,最好符合8.3格式。在这里文件里的BAT文件将在机器注册组件和保存设置之间运行。
因为DX8.1和IE6.0还有很多HOTFIXES都是需要注册和修改系统文件的。所以要在这里安装,所以我文件里有三个BAT命令行文件。
下面介绍我的这三个BAT文件内容
InstDX8.bat
ECHO.
ECHO Installing DirectX 8.1B......
ECHO Please wait...
start /wait %systemdrive%\install\UPDATES\directx\DX81NTCHS.EXE /Q:A /C:"dxsetup.exe /install /silent" /R:N
ECHO.
EXIT
INSTHFS.bat
cls
@echo off
ECHO.
ECHO 安装SP4后的系统安全补丁,请等待。。。。
ECHO Installing KB822831...
start /wait %systemdrive%\install\Hotfixes\KB822831.exe /Q /M /Z
ECHO.
ECHO Installing KB824105...
start /wait %systemdrive%\install\Hotfixes\KB824105.exe /Q /M /Z
ECHO.
ECHO Installing KB823559...
start /wait %systemdrive%\install\Hotfixes\KB823559.exe /Q /M /Z
ECHO.
ECHO Installing KB824146...
start /wait %systemdrive%\install\Hotfixes\KB824146.exe /Q /M /Z
ECHO.
ECHO Installing Q814078...
start /wait %systemdrive%\install\Hotfixes\q814078.exe /Q:A /R:N
ECHO.
ECHO Installing Q823718.EXE...
start /wait %systemdrive%\install\Hotfixes\Q823718.EXE /Q /C:"dahotfix /Q /N /Z"
ECHO.
EXIT
instie6.bat
ECHO Installing IE6.0SP1...
ECHO 根据你的机器配置不同需要几分钟到几十分钟。。。。
ECHO 硬盘灯闪烁时请不要关闭计算机
start /wait %systemdrive%\install\UPDATES\IE6SP1\IE6SETUP.EXE /Q /R:N
exit
因为在某些主板上IE6.0安装非常慢。这里显示了IE安装界面。某些不愿意安装的朋友可以再这里取消,要是无界面显示命令为IE6SETUP.EXE /Q :A /R:N
InstDX8.bat、INSTHFS.bat、instie6.bat放在$oem$目录下面和CMDLines.txt、$$、$1并列。
到目前为止我们已经解决了IE6.0SP1和DX8.1B以及HOTFIXES安装文件和系统同时安装的冲突。因为系统保存文件后会重新启动。重新启动后系统开始执行IE6.0SP1和DX以及HOTFITXE文件的更新,然后接下来会执行 winnt.sif文件的[GuiRunOnce]段,
[GuiRunOnce]
%systemdrive%\install\applications.cmd
所以我们要建立applications.cmd文件
在这个文件里我们要安装的是不需要重新启动的文件。比如MP9.0 WINRAR等。看下面我的applications.cmd文件
在win2000\root\$oem$\$1\install目录下新建文本文件保存为applications.cmd。
applications.cmd
ECHO.
ECHO Installing WinRAR 3.15
ECHO Please wait...
start /wait %systemdrive%\install\Applications\winrar.exe /s
ECHO.
ECHO Installing Windows Media Player 9
ECHO Please wait...
start /wait %systemdrive%\install\Applications\MPSETUP.EXE /Q:A /R:N
ECHO.
ECHO Installing kb819639...
start /wait %systemdrive%\install\Applications\KB819639.exe /Q:A /R:N
ECHO.
ECHO Installing Q822925...
start /wait %systemdrive%\install\UPDATES\IE6SP1\q822925.exe /Q:A /R:N
ECHO.
ECHO Installing Q330994...
start /wait %systemdrive%\install\UPDATES\IE6SP1\q330994.exe /Q:A /R:N
ECHO.
ECHO 删除安装过程中的临时文件...
ECHO.
RD /S /Q %systemdrive%\install
ECHO.
Exit
在这些过程中用到不少DOS命令。如果你不熟悉这些DOS命令请不要问我。可以去DOS之家或DOS联盟去学习。
最后重复一下winnt.sif文件和CMDLines.txt文件存放路径,winnt.sif文件要放在根目录也就是和i386目录并列,而CMDLines.txt文件则要放在$oem$文件夹下面和$$、$1并列。
到此所有工作都已经做完毕。然后检查下。生成ISO文件。用CDRW烧录后去机器上测试。不建议用虚拟PC测试。不知道为什么集成安装的时候虚拟PC经常报告错误但是在真实机器上也许根本就没哪个错误。
三、总结。
本文详细叙述了制作过程和集成安装技巧,但是我想很多朋友看了也许还是一头雾水,其实说起来多真按照我上面的要求做起来是相当的简单的。总的说来思路是这样的:
1、 先创建好光盘OEM目录,然后将我们收集整理的需要集成安装的文件整理归类,需要安装后重新启动或有些必须重新启动才能继续安装的程序归一类,不需要重新启动就可以安装的另归一类,(其实可以完全用CMDLines.txt一个文件就完成所有程序的安装)然后将他们归类整理放到$1,你可以在$1下面建立任意目录,但是路径必须和批处理的路径对应。
2、 创建自动应答文件winnt.sif并修改使其适合你的要求。如果你在winnt.sif的[GuiRunOnce]有批处理的话,那么要建立相应的批处理文件。;例如我的例子[GuiRunOnce]
3、 %systemdrive%\install\applications.cmd
里建立了applications.cmd这个文件。
4、 创建CMDLines.txt并在里面输入你要运行的批处理程序名。
5、 根据你的CMDLines.txt里的批处理文件名新建立批处理文件,内容是执行你归类整理的路径与程序名。
6、 无界面自动安装程序模式的扩展命令需要你阅读大量的帖子收集。我上面用到的一些命令也是我在很多网站上收集整理出来的,感谢那些给我帮助的朋友门。请不要随便的问我要命令,因为我也不知道。
最后,提供系统常用变量意义。不明白的去DOS联盟学吧。
%systemdrive% 系统盘根目录一般是C:\
$OEM$\$1 \$1 子文件夹映射到 %systemdrive%,一般是c:\
"%systemroot% WINDOWS安装根目录一般是c:\winnt
%windir% 等同于%systemroot% 系统安装根目录一般是C:\winnt
$OEM$\$$ $$子目录等同于%systemroot%或者%windir%指定的路径
(一般是c:\Winnt——这里假定Windows2000安装在C盘),
比如$OEM$\$$\System32下的所有文件都会被拷贝
到%windir%\System32目录下。
%cdrom% 光区盘符:
%ramdrive% 虚拟磁盘
hotdll(独步黄昏)
2003.09.21-00:41
版权所有,转载请完整转帖并注明出处。谢谢合作。
|
|