详解在Win2003安装光盘中集成SCSI驱动

         我们在服务器上安装Win2003时,有时会遇到硬盘驱动导致的故障。2003操作系统已经发布多年,对近年来服务器上使用的一些新型SATASCSI控制器并不能很好地支持。由于2003内置的驱动程序无法识别新型的SCSISATA控制器,因此安装2003时会出现安装向导找不到硬盘,无法继续安装。
解决这种问题的标准方法应该是在光盘启动时根据屏幕提示按下F6键,然后安装向导会提示我们插入包含硬盘控制器驱动程序的软盘,这样安装向导就可以从软盘中加载硬盘控制器的驱动,然后就可以顺理成章地识别硬盘了。
         由于软驱已经不再是计算机上的标准配置了,因此使用软盘加载驱动的方法在无软驱的服务器上会遇到麻烦,因此今天我们将为大家另外一种解决方案,在Win2003的安装光盘中直接集成SATASCSI控制器的驱动,这样我们在安装2003时就可以不需要软驱的配合,能直接识别出硬盘了。
        我们在Vmware Workstation上为大家搭建一个实验环境,我们在Vmware Workstation6.5上创建一个虚拟机,选择的SCSI控制器类型是Buslogic,如下图所示,这种SCSI控制器并不被Win2003支持。
 
在这个虚拟机上安装Win2003,如下图所示,安装时会出现找不到硬盘的提示,预料之中的结果。
 
先把Buslogic的驱动准备好,在Vmware的安装目录下可以找到一个windows.iso文件,用虚拟光驱加载这个镜像文件,如下图所示,在虚拟光驱的Program Files\VMware\VMware Tools\Drivers\SCSI目录下可以找到Buslogic控制器的驱动程序。
 
准备好SCSI控制器的驱动后,我们来看看如何把驱动集成到2003的安装光盘中。我们先把Win2003的安装文件从光盘复制到一个文件夹中,这样有利于我们修改光盘内容。集成驱动最关键的是要修改安装光盘中的I386目录下的txtsetup.sif文件,这个文件定义了文本安装模式下2003能够识别的存储设备以及相应的驱动程序,只要控制好如下图所示的这个文件,硬盘驱动问题就好解决了。最妙的是,这个文件并不在系统保护文件的范畴内,这意味着我们可以对这个文件任意修改而不用担心遭到操作系统的阻止。这个文件我们要修改下列几部分。
 
修改Txtsetup.sif中的[SCSI]
Txtsetup.sif中的[SCSI]段定义了Win2003支持的硬盘控制器,如下图所示,我们在[SCSI]段中增加了一项VMSCSI = "VMware SCSI Controller",这项的作用是告诉Win2003,有一个名为VMSCSI的硬盘控制器也是被Windows Server 2003所支持的,而且我们还对VMSCSI控制器进行了注释,这是一个VMWare的硬盘控制器。其实就是为Buslogic控制器取名为VMSCSI
 
VMSCSI其实就是Buslogic控制器,我们对Buslogic控制器的描述其实很灵活,可以随意起名,并没有特别严格的要求。我们把Buslogic控制器描述成VMSCSI是根据Buslogic驱动程序中的txtsetup.oem文件来进行的,txtsetup.oem文件的内容如下图所示。
 
   修改Txtsetup.sif文件中的[HardwareIdsDatabase]
Txtsetup.sif文件中的[HardwareIdsDatabase]用来描述被硬盘控制器的硬件ID,我们刚才修改了Txtsetup.sif文件的[SCSI]段,声明了VMSCSI这个SCSI控制器被Win2003所支持,但是,Win2003怎么知道一个硬盘控制器是不是VMSCSI呢?我们在[HardwareIdsDatabase]中写上VMSCSI控制器的硬件ID,这样就不会弄混淆了。这个硬件ID是硬件出厂时被写入的,不会更改,Windows只要查询一下硬件的ID,就可以知道这个硬件是不是Buslogic控制器。如下图所示,我们描述了VMSCSI的硬件ID
 
那我们怎么知道Buslogic的硬件ID呢?答案在Buslogic的驱动程序中,如下图所示,我们在驱动程序的txtsetup.oem文件中发现了Buslogic的硬件ID
 
 修改Txtsetup.sif文件的[scsi.load]
描述了Buslogic的硬件ID后,我们就要修改[scsi.load]这一段了,这段描述了Win2003应该利用那些文件来驱动Buslogic控制器。如下图所示,我们描述了Buslogic的驱动程序应该是vmscsi.sys,前面我们已经在Buslogic的驱动中看到了这个文件。那么,vmscsi.sys后面还有一个4,这个4代表什么呢?继续向下看!
 
4代表Windows目录下的一个路径,如下图所示,在txtsetup.sif[WinntDirectories]段中我们发现4代表着windows\system32\drivers目录。这个目录我们非常熟悉,windows的驱动程序基本都放在这个目录下。
 
 修改Txtsetup.sif文件中的[SourceDisksFiles]
最后要进入高潮部分了,我们要解释一下Buslogic的驱动程序vmscsi.sys到底从何而来。如下图所示还,我们在[SourceDisksFiles]中对此进行了定义,vmscsi.sys   = 1,,,,,,,4,0,0,乍一看让人莫名其妙,仔细看看其实还是可以分析的。1代表着vmscsi.sys的来源是Win2003安装光盘的I386文件夹,Why?向下看有答案。
 
如下图所示,在Txtsetup.sif[SourceDisksNames.x86]中定义了1的含义,原来1指的是安装光盘的I386文件夹。
 
接着再往下分析,vmscsi.sys   = 1,,,,,,,4,0,01之后的7个逗号代表了7个默认设置,在此我们不需要对此进行修改。4代表vmscsi.sys的目标路径,刚才我们已经提到了,是windows\system32\drivers目录。4之后的两个0代表无论是升级系统,还是全新安装的操作系统,都要把vmscsi.sys拷贝到windows\system32\drivers目录下。
修改了Txtsetup.sif文件后,如下图所示,我们用makecab命令把vmscsi.sys压缩为vmscsi.sy_,为什么要对vmscsi.sys进行压缩呢?因为Win2003默认在安装时会对文件进行解压缩操作。我们使用Ultraiso工具把vmscsi.sy_txtsetup.sif都集成到Win2003的安装光盘上,然后就可以试试效果了。
 
用集成了SCSI驱动的光盘启动虚拟机,如下图所示,我们看到集成的驱动已经发挥了作用,安装程序找到了硬盘!希望利用这篇文章,能够帮助那些被SCSI硬盘或SATA硬盘困扰的朋友,希望大家可以举一反三,早日定制出自己专用的Windows安装光盘。
posted @ 2009-11-02 21:22  与时俱进  阅读(1368)  评论(0编辑  收藏  举报
友情链接:同里老宅院民居客栈