制作集成SATA驱动的xp安装盘

时间:2022-05-12 23:21:12


转自:http://hi.baidu.com/tchm001/blog/item/906957cf1323bd31f9dc6120.html


为了不再让WinXP的安装过程需要通过软盘加载SATA驱动程序,很多人都梦想主板的SATA驱动程序集成到安装光盘中,本文就来DIY一张集成SATA驱动程序的WindowsXP安装光盘。

Windows XP安装目录及文件准备:

打开资源管理器,在一个拥有足够磁盘空间的硬盘分区上创建一个文件夹。比如“D:\XPSATA”,用于保存Windows XP的全部安装文件。把一张完好的Windows XP安装光盘放入光驱,在资源管理器中将光盘中的文件全部选定,再复制到“D:\XPSATA”目录中。

准备驱动程序文件:

一般随主板附送的驱动程序安装光盘中都有SATA的驱动程序。打开光盘目录,查找名称中含有“SATA”“RAID”字符的文件夹。也可在主板制造商的网站或其它驱动程序下载站点搜索与自己的主板芯片组相匹配的SATA驱动程序。

在D盘中建立一个新的目录(如“STATDRV”)然后将找到的SATA驱动程序文件全部拷贝到这个目录(D:\SATADRV)。

详细步骤:

这里我们以Si3112的SATA驱动程序为例进行介绍。其它类型的SATA驱动程序的集成步骤几乎完全相同,所不同的仅仅是驱动程序文件名的不同而已。

在这个“D:\STATDRV”的文件夹中,一定会有一个扩展名为“.inf”或“.oem”的小文件,如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”)。用记事本程序打开它,随后要用!

编辑“txtsetup.sif”文件,打开“D:\XPSATA\I386”文件夹,找到一个名为“txtsetup.sif” 的文件。这是Windows XP在安装时加载驱动程序的信息文件,用记事本程序打开它。

按“Ctrl+F”快捷键,打开查找对话框,以“[SourceDisksFiles]”为关键字进行查找。找到这个字段后,其下面已经存在一些内容。

翻页到这个字段的末尾(注意:不是整个文件内容的末尾),添加以下内容:“si3112.sys = 1,,,,,,3_,4,1”。这里的“si3112.sys = 1,,,,,,3_,4,1”是描述驱动程序所在位置的代码。

代码的格式为:

“filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename”

在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectorIEs]”等字段中有详细的描述。

有兴趣的朋友可以深入研究其它目录的对应关系,这里仅简单介绍。

在实际操作时,绝对不可以照搬代码!特别是扩展名为SYS的文件“si3112.sys”,它是SATA驱动程序目录“D:\STATDRV”中的驱动程序文件名。

如果您的SATA驱动程序与本文所述的不同,则只需换成目录中相应的文件即可。

切换到前面打开的“txtsetup.oem”文件,以“[HardwareIds.”为关键字进行搜索,应该可以找到类似“[HardwareIds.SICS.Si3112]”的字段。

该字段下的代码如:

“id =PCI\VEN_1095&DEV_3112 &SUBSYS_31121095, Si3112”

切换到刚才打开的“txtsetup.sif”文件窗口中,以“[HardwareIdsDatabase]”

为关键字进行搜索。找到后,将“txtsetup.oem”文件中“[HardwareIds.SICS.Si3112_XP]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾。

不过,我们需要更改一下代码的格式,如将“id =PCI\VEN_1095&DEV _3112&SUBSYS_31121095, Si3112”

改为:

“PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = Si3112”

(其他代码修改方法相同),更改后的代码如下:

PCI\VEN_1095&DEV_3112&SUBSYS_31121095 = Si3112

PCI\VEN_1095&DEV_3112&SUBSYS_34238086 = Si3112

PCI\VEN_1095&DEV_3112&SUBSYS_311215D9 = Si3112

PCI\VEN_1095&DEV_3112&SUBSYS_B0021458 = Si3112

PCI\VEN_1095&DEV_3112&SUBSYS_01661028 = Si3112

PCI\VEN_1095&DEV_3112&SUBSYS_82141033 = Si3112

PCI\VEN_1095&DEV_3512&SUBSYS_35121095 = Si3112

PCI\VEN_1095&DEV_3512&SUBSYS_01661028 = Si3112

提示:不同SATA驱动程序的代码内容各不相同,应该根据具体情况灵活处理。

检查拷贝修改的内容是否与原有的内容重复,如果有,则把重复的一行删除。

接着在“txtsetup.sif”文件查找“[SCSI.load]”和“[SCSI]”字段

添加如下内容:

[SCSI.load]

si3112 = si3112.sys,4

[SCSI]

si3112 = Silicon Image SiI 3112 SATALink Controller

至此,我们就把自己的SATA驱动程序的相关信息添加到了Windows XP安装信息文件“txtsetup.sif”中了!

上述添加自定义SATA信息内容的步骤看似很复杂,其实也就是同时打开Windows XP安装文件目录中的“txtsetup.sif”

文件和驱动程序目录中的“.inf”或“.oem”信息文件,然后将后者文件中相关字段下面的内容一一对应地移植到“txtsetup.sif”文件中。

知道了方法,做起来就要容易些了!

修改“winnt.sif”文件内容

现在,我们已经完成了两个最重要的步骤:

一是获取了SATA驱动程序文件,它们现在被保存在“D:\STATDRV”文件夹中;

二是修改了Windows XP安装时自动加载驱动程序的信息文件“txtsetup.sif”。

但现在有一个新的问题:

Windows XP在安装时如何知道它所需要的驱动程序文件在哪个目录下呢?

这个问题则需要通过修改“winnt.sif” 这个文件来解决。

这个文件是Windows XP系统在安装时的附加信息文件,可以在其中指定非微软提供的第三方驱动程序的安装路径。

对于本例,在“D:\XPSTAT\I386”文件夹中用记事本创建一个文本文件,写好内容后,再将文件名改为“winnt.sif”即可。

在用记事本保存文件时,一定要输入完整的文件名,并且一定要用半角的双引号将文件名引起来,如“winnt.sif”,

否则实际上生成的实际上仍然是个文本文件(Winnt.sif.txt),这将导致安装过程中出错,STAT驱动程序无法自动加载!

在“winnt.sif”文件中添加以下内容

(如果已经存在部分内容,则应进行修改或添加,且保证每行的内容不要重复):

OemPreinstall=Yes

OemPnPDriversPath=STATDRV

上述代码最后一句引号中的内容是指随后生成光盘时,驱动程序相对于光盘根目录所在的相对路径。由于我们打算把保存驱动程序的“D:\STATDRV”文件夹放到新生成的安装光盘的根目录,因此不必包含任何子目录路径,这个步骤我在汇总里面已经介绍。

将SATA驱动压缩到安装文件中,使用支持CAB文件格式的工具(如WinRAR等),将驱动程序目录中扩展名为SYS的文件添加到WindXP安装目录的CAB文件中。

这里我们可以使用Windows XP本身附带的一个命令行工具“makecab.exe”,它位于“C:\WINDOWS\System32\”目录下。

由于“System32”是默认的搜索路径,因此使用时不需要程序所在的路径。

在开始菜单中打开“运行”对话框

输入如下命令:

“MAKECAB D:\STATDRV\SI3112.SYS D:\XP-STAT\i386\SI3112.SY_”

具体的驱动程序文件名和保存路径请根据实际情况灵活更改。