在XP安装盘中集成SATA驱动的方法

时间:2021-09-23 00:03:38
1.用EasyBoot做集成串行驱动的安装光盘
使用串行硬盘安装windows 2k/xp时都要插入串行驱动磁盘,你可以通过以下方法来自动加载它:
通过修改启动软盘组中的txtsetup.sif来实现!
在txtsetup.sif中的文件加载列表中增加你的串行硬盘驱动,至少应当有*.sys和*.inf这样它在安装时将自动加载它,您将无需插入磁盘。
但应将上面的*.sys和*.inf拷入启动软盘组中和i386中!!!

软盘组是用easyboot作启动光盘作自动安装时所必须的
其实i386中也有一个txtsetup.inf!
你改了启动软盘组中的txtsetup.inf,也就是让它用光盘启动安装时能自动加载它!

在TXTSETUP。SIF中的[SourceDisksFiles]段中加入:
如:VIASRAID。SYS = 2,,,,,,2_,4,1
  VIASRAID.INF = 2,,,,,,_x,20,0,0
若还需其它文件,也在这里加入即可实现了!
请记住要把这些文件拷入启动软盘组和I386中,否则会出错的!!
在txtsetup.sif中有3个[SourceDisksFiles]段,.sys和.inf文件加在第一个中就可以了。

不知这种方法能否做成INTEL、VIA、SIS的通用SATA驱动,否则这样做成的盘只能自己用,通用性不好。

2.修改windows的一些文件,可以把SCSI硬盘或RAID盘的驱动程序制作到Windows的安装光盘里去。
这样Windows安装程序就会自动安装SCSI硬盘或RAID盘的驱动。

具体做法如下。这个过程比较复杂,请您耐心看完。

Windows XP:

注:假设我们添加 Promise Technologies FastTrak 100TX2 IDE RAID 的驱动程序。

1. 在另一台可以使用的机器上,把Windows安装光盘的内容拷贝到硬盘的一个目录,例如

Flat_Dir。

2. 在Flat_Dir/i386/System32 目录里建一个新目录来放SCSI硬盘或RAID盘的驱动程序。如

果您要安装 Promise Technologies FastTrak 100TX2 IDE RAID 的驱动,您可以建一个名

为FT100TX2的目录。

3. 把SCSI硬盘或RAID盘的驱动程序(包括 .inf, .sys, .cat, .dll等文件)拷贝到这个新

目录(Flat_Dir/i386/System32/FT100TX2)中。请确认这个驱动程序里有 Txtsetup.oem

这个文件。

4. 在记事本或其他文本编辑器里打开 Txtsetup.oem 这个文件。确定 [Disks] 和

[Defaults] 部分设置正确。

- [Disks] 部分:

d4 = "Promise FastTrak Family Driver Diskette", /fasttrak, /

- [Defaults] 部分:

scsi = FastTrakTX2_xp

- [SCSI] 部分:

FastTrakTX2_xp = "Windows XP Promise FastTrak100 TX/LP (tm) Series

Controller", FastTrak

5. 在记事本或其他文本编辑器里打开 Flat_Dir/i386/System32 目录中的 Winpeoem.sif 文

件。

6. 在 [OemDriverParams] 部分, 指定正确的目录名。

比如:

OemDriverRoot=""

OemDriverDirs= FT100TX2

7. 保存该文件。

8. 用类似 Oscdimg.exe 的工具重建 ISO 镜像文件:

oscdimg -betfsboot.com -n -h c:/Flat_Dir/ c:/winpe.iso

-betfsboot.com:可启动盘
-n:long file name support
-h:包含所有隐藏文件

9. 用这个ISO文件刻录光盘。

Windows NT, Windows 2000 或 Windows Server 2003:

1. 在另一台可以使用的机器上,把Windows安装光盘的内容拷贝到硬盘的一个目录,例如

Flat_Dir。

2. 在Flat_Dir/i386 目录里建一个新目录$OEM$。

注:如果已经存在就不用了。

3. 在Flat_Dir/i386/$OEM$ 目录里建一个新目录TEXTMODE。

注:请不要用其他名字。

4. 把SCSI硬盘或RAID盘的驱动程序(包括 .inf, .sys, .cat, .dll等文件)拷贝到这个新

目录(Flat_Dir/i386/$OEM$/TEXTMODE)中。请确认这个驱动程序里有 Txtsetup.oem 这个

文件。

5. 在记事本或其他文本编辑器里打开 Txtsetup.oem 这个文件。确定 [Disks] 和

[Defaults] 部分设置正确。

- [Disks] 部分:

如果您是用winnt.exe文件在FAT或FAT32的系统分区上安装或从光盘安装:

d4 = "Promise FastTrak Family Driver Diskette", /fasttrak, .

如果您是用winnt32.exe文件在NTFS的系统分区上安装或是安装Windows Server 2003:

d4 = "Promise FastTrak Family Driver Diskette", /fasttrak, /

6. 在记事本或其他文本编辑器里打开 unattend.txt 文件。

7. 添加 [MassStorageDrivers] 部分。

[MassStorageDrivers]

"Promise Technologies FastTrak 100TX2 IDE RAID" = "OEM"

8. 添加 [OEMBootFiles] 部分。把textmode目录中的驱动程序文件名列出来(包括 .inf,

.sys, and .cat)。

例如:

[OEMBootFiles]

Driver.Sys

Driver.INF

Driver.CAT

Txtsetup.oem

9. 在 [Unattended] 部分, 确定下面的命令行存在:

OemPreinstall=Yes

10. 保存该文件。

11. 用类似 Oscdimg.exe 的工具重建 ISO 镜像文件:

oscdimg -betfsboot.com -n -h c:/Flat_Dir/ c:/winpe.iso

-betfsboot.com:no-emulation 可启动
-n:long file name support
-h:包含所有隐藏文件

12. 用这个ISO文件刻录光盘。

如果您想查看更详细的信息,可以查看下面这些文章:

注:由于中文版的文章还没有翻译完成,这些文章都是英文版的。请谅解。

288344 HOWTO: Unattended Installation of Third Party Mass Storage Drivers in
http://support.microsoft.com/?id=288344

319214 HOWTO: Add Unsupported or Updated Third-Party Mass Storage Drivers to a
http://support.microsoft.com/?id=319214

816299 HOW TO: Create an Unattended Installation of Third-Party Mass Storage
http://support.microsoft.com/?id=816299

安装Windows 2000/XP之类的基于NT内核的操作系统在RAID或SCSI或SATA硬盘上,它们的驱动程序必须在安装系统之前就正确加载。安装此类驱动程序常见的模式是将硬件的驱动程序拷贝到软盘上,在系统开始安装的时候按下F6,然后系统会为你加载软盘中的驱动程序。这样的驱动程序软盘根目录下肯定有一个名为Txtsetup.oem的文件,它会告诉安装程序怎样安装SCSI、RAID卡的驱动程序。那么只要我们使用WINDOWS的自动安装模式,并通过Txtsetup.oem就可以实现让驱动直接加载(就如同它已经内置了驱动程序一样)。以EP-8RDA3+的SATA芯片SI3112为例,其他的可以依瓢画葫芦。
1、新建一个目录,命名为$OEM$。在此目录下建立两个目录,TEXTMODE和$1。
2、把SI3112的驱动文件都拷到TEXTMODE的目录下:
Si3112r.inf
Si3112r.mpd
Si3112r.sys
SIISUPP.vxd
SIWinAcc.sys
TxtSetup.oem
驱动文件至少应包括包含TxtSetup.oem、.inf和.sys文件。也就是在TxtSetup.oem里出现的文件都是必须的。
3、用任何文本编辑器编辑Txtsetup.oem文件,删除任何和Windows XP驱动无关的信息,保存。我的文件修改后如下:
[Disks]
disk1 = "Silicon Image SiI 3x12 SATARaid Driver Installation Disk",/Si3112r.sys,/

[Defaults]
SCSI = Si3112r

[SCSI] ; HwComponent section
Si3112r_XP = "Silicon Image SiI 3x12 SATARaid Controller for Windows XP"

[Files.SCSI.Si3112r_XP]
driver = disk1,si3112r.sys, Si3112r
driver = disk1,SiWinAcc.sys, SiFilter
inf = disk1,Si3112r.inf
;;catalog = disk1, Si3112r.cat


[HardwareIds.SCSI.Si3112r_XP]
id = "PCI/VEN_1095&DEV_3112&SUBSYS_61121095", "Si3112r"
id = "PCI/VEN_1095&DEV_3112&SUBSYS_34228086", "Si3112r"
id = "PCI/VEN_1095&DEV_3112&SUBSYS_809D1043", "Si3112r"
id = "PCI/VEN_1095&DEV_3512&SUBSYS_65121095", "Si3112r"
id = "PCI/VEN_1095&DEV_3512&SUBSYS_34228086", "Si3112r"


[Config.Si3112r_XP]
value = ProblemDevices, "", REG_SZ, ""
value = ProblemDevices, "Maxtor 4D060H3 DAK05GK0", REG_SZ, "MaxMode = UDMA-5"
value = ProblemDevices, "ST320012AS", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST330013AS", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST340017AS", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST360015AS", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST380023AS", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST3120023AS", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST340014ASL", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST360014ASL", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST380011ASL", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST3120022ASL", REG_SZ, "Mod15Write"
value = ProblemDevices, "ST3160021ASL", REG_SZ, "Mod15Write"

4、在$1的目录下建立Drivers目录,在Drivers目录下再建立SI3112目录,此两个目录名称可随意,但是必须与下面的unattend.txt文件里提到的相应路径一致。把TEXTMODE下的所有文件都拷到SI3112目录下。
5、建立文件名为unattend.txt的文本文件,这个文件是WINDOWS自动安装的脚本文件,可自己手动写入参数,也可通过setupmgr.exe产生,setupmgr.exe文件在安装光盘的SUPPORT/TOOLS目录下的DEPLOY.CAB压缩包里。
6、在unattend.txt中,创建 [OEMBootFiles]段,把TextMode目录下的所有文件列表填写进去,如我的:
[OEMBootFiles]
Si3112r.inf
Si3112r.mpd
Si3112r.sys
SIISUPP.vxd
SIWinAcc.sys
TxtSetup.oem
7、建立[MassStorageDrivers]段,如:
[MassStorageDrivers]
"Silicon Image SiI 3x12 SATARaid Controller for Windows XP"="OEM"
其中"Silicon Image SiI 3x12 SATARaid Controller for Windows XP"来自于Txtsetup.oem文件[scsi]段中标志Windows XP控制器的文字。
8、建立[Unattended],在[Unattended]中添加OemPreinstall=Yes,是为了保证Windows安装程序自动去查找我们添加进去的第三方驱动程序。为了防止没有通过微软的WHQL认证的驱动安装失败,需要指定DriverSigningPolicy=Ignore来忽略WHQL认证检查。还要指明驱动保存的目录路径,此为:Drivers/SI3112。如下:
[Unattended]
OemPreinstall=Yes
DriverSigningPolicy=Ignore
OemPnPDriversPath="Drivers/SI3112"
9、使用此方法有一个缺陷——Windows安装分区是自动选择的,我们不能在安装过程中指定分区,不过可以在unattend.txt文件中新建[Data]段,并输入以下信息就可以在安装过程中选择安装分区。
[Data]
AutoPartition = 0
Unattendmode = Yes
MSDosInitiated = "0"
OemSkipEula=Yes
10、现在分两种情况,硬盘安装和光盘安装:
(1)硬盘安装,也就是在DOS下安装,那么把一开始创建的整个$OEM$目录都放到I386的目录下,并且unattend.txt也放到I386目录下,安装命令为Winnt /u:unattend.txt /s:f:/winXP/i386,其中f:/winXP/i386为I386所在的绝对路径。
(2)光盘安装,那要把整个$OEM$目录放到光盘的根目录,也就是跟I386目录同级。把unattend.txt复制一份并命名为Winnt.sif,两个文件一起放到I386目录下。