瀏覽單個文章
ApexHsiao
Power Member
 
ApexHsiao的大頭照
 

加入日期: Jun 2004
您的住址: Taiwan
文章: 581
轉錄 http://home.pchome.com.tw/myhome/ser_tre/m2.htm

讓WINDOWS在安轉初始自動載入SATA驅動程式

以前在安裝WINDOWS的時候老是要借軟式磁碟機插軟碟,遇到軟式磁碟機軟碟壞了就麻煩了,一直都想把驅動做到光碟或者硬碟上並讓WINDOWS安裝程序自動載入,經過查資料和摸索,得出下面的方法:

安裝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"
__________________
______________________
-----------==================== No.6號機 ====================-----------
CPU:Intel Q6600(G0)             DDR2 PC6400:8GB (Transcend 2GB+UMAX 2GB)*2 (dual channel)
Mother Board:ASUS P5K-E/WIFI-AP       Graphic Card:GIGABYTE GV-NX86S256H Silent-Pipe3
Audio Card:Creative X-Fi XtremeMusic     Monitor:Dell 2709WFP
HDD:raid-0 (Seagate ST3120026AS & ST3120027AS) + ST3500320AS(500GB) +
       ST3320620AS(320GB) + ST32000542AS(2TB) + WD1001FALS(1TB)*2 + WD15EADS(1.5TB)
DVD-ROM:Pioneer DVR-A11FXB        Speaker:Altec Lansing MX5021


舊 2006-05-08, 01:00 PM #5
回應時引用此文章
ApexHsiao離線中