回首頁

讓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"

此帖修改時間:2003 十月 16 16:11

EPOX 8RDA3+(BIOS 2003/8/27)
ATHLON XP 2500+ (BARTON)+CoolerMaster cp5-7j52f-01
KINGSTON 512M DDR400
YAMAHA 744
Seagate 120G SATA
Goldstar slot-in 48X CDROM、Shinwa DVDROM、Sony floppy drive
盈通 鐳龍R9800SE + EIZO T761
富士康天鼎150機箱(配電源)
9、使用此方法有一個缺陷——Windows安裝分區是自動選項的,我們不能在安裝程序中指定分區,不過可以在unattend.txt文件中新增[Data]段,並輸入以下資訊就可以在安裝程序中選項安裝分區。
[Data]
AutoPartition = 0
Unattendmode = Yes
MSDosInitiated = "0"
OemSkipEula=Yes

10、安裝:
把安裝光碟中所有的文件COPY到硬碟(比如:F盤的WINXP目錄下),把一開始新增的整個$OEM$目錄都放到I386的目錄下,並且unattend.txt也放到I386目錄下,在I386目錄下執行安裝指令為Winnt /u:unattend.txt /s:f:\winXP\i386,其中f:\winXP\i386為I386所在的絕對路徑。(註:有些網友反映光碟安裝出現很多問題,我試驗之後的確有他們所提的問題,為了不再「誤導」更多網友,故把光碟安裝方法取消,等出了解決辦法之後才貼上,望諒!)

自動安裝文件還有很多其他的作用,如自動填入序列號等,大家可以自己去查閱資料,祝大家都能方便的安裝WINDOWS,另上面如有不對的地方也請提出,謝謝!

此帖修改時間:2004 三月 4 10:16

EPOX 8RDA3+(BIOS 2003/8/27)
ATHLON XP 2500+ (BARTON)+CoolerMaster cp5-7j52f-01
KINGSTON 512M DDR400
YAMAHA 744
Seagate 120G SATA
Goldstar slot-in 48X CDROM、Shinwa DVDROM、Sony floppy drive
盈通 鐳龍R9800SE + EIZO T761
富士康天鼎150機箱(配電源)
設想通過啟動的時候針對不同的sata晶片進行手動選項。光碟做成DOS啟動,啟動時有個表單供選項,根據不同的選項,使用不同的自動安裝指令碼文件,從而使用不同的sata驅動。


目前支持SATA的主機板南橋晶片並不多,僅有Intel ICH5(R)、VIA VT8237以及SiS 964等少數幾款,其餘的Intel 845或VIA KT400主機板等都通過整合SATA控制晶片實現對SATA的支持。


其中使用Intel ICH5(R)的可以直接支持sata,安裝時可以不用載入驅動。

板載SATA控制晶片主要是由Silicon Image、VIA、PROMISE、HighPoint等晶片廠商推出的。

  ■Silicon Image SiI3112

  Silicon Image SiI3112是一款一般的SATA控制晶片,常整合在主機板上用於擴展主機板SATA功能,也可單獨用於PCI擴充卡。


此款晶片可同時支持兩個SATA設備,並可支持RAID容錯式獨立磁碟陣列 0與RAID容錯式獨立磁碟陣列 1。在同類產品中,此款晶片的資料傳輸速率與效能表現都相當不錯,相容性較好,可支持137GB以上的大硬碟。目前市場上採用此款晶片的SATA擴充卡佔有較大比例。

  ■PROMISE PDC20378

  PROMISE PDC20378可支持兩個SATA硬碟和一個並行ATA硬碟,並支持RAID容錯式獨立磁碟陣列 0、1和0+1功能,速度表現良好。


不過現在市場上採用此款晶片的SATA擴充卡還不豐富,除原廠推出的兩款型號為PROMISE SATA 150 TX2與PROMISE SATA 150 TX4的產品外,它更多情況下被用於主機板擴展SATA功能。

  ■VIA VT6420

  如果要論功能是否豐富,VIA推出的VT6420 SATA控制晶片無疑是佼佼者。

此款晶片不僅可支持2個SATA通道,而且還提供了一個並行ATA 133接頭,所以採用此款控制晶片的擴充卡不僅具有兩個SATA接頭,還具備一個並行ATA 133接頭。


它除了可支持RAID容錯式獨立磁碟陣列 0和RAID容錯式獨立磁碟陣列 1外,還具備RAID容錯式獨立磁碟陣列 0+1功能,用戶可使用兩個硬碟模擬實現RAID容錯式獨立磁碟陣列 5功能。

其資料傳輸理論帶寬同樣為150MB/s,實際效能表現尚可,其豐富的接頭能為用戶帶來更靈活的選項。

  ■橋接晶片Marvell 88i8030

  HighPoint也同樣推出了SATA擴充卡,但它卻採用了HPT372或HPT374控制晶片。

HPT372是HighPoint公司推出的一款兩通道ATA 133 RAID容錯式獨立磁碟陣列控制晶片;而HPT374則是一款四通道ATA 133 RAID容錯式獨立磁碟陣列控制晶片。有人可能會問—採用這兩款晶片的擴充卡如何實現SATA功能呢?事實上,橋接晶片Marvell 88i8030的使用才是此款SATA擴充卡的核心所在。


這顆晶片是一般的橋接晶片之一,能將並行ATA接頭轉變為SATA接頭使用