以前在安裝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 = "PCIVEN_1095&DEV_3112&SUBSYS_61121095", "Si3112r"
id = "PCIVEN_1095&DEV_3112&SUBSYS_34228086", "Si3112r"
id = "PCIVEN_1095&DEV_3112&SUBSYS_809D1043", "Si3112r"
id = "PCIVEN_1095&DEV_3512&SUBSYS_65121095", "Si3112r"
id = "PCIVEN_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文件在安裝光碟的SUPPORTTOOLS目錄下的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認證檢查。還要指明驅動儲存的目錄路徑,此為
riversSI3112。如下:
[Unattended]
OemPreinstall=Yes
DriverSigningPolicy=Ignore
OemPnPDriversPath="DriversSI3112"
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:winXPi386,其中f:winXPi386為I386所在的絕對路徑。(注:有些網友反映光碟安裝出現很多問題,我試驗之後的確有他們所提的問題,為了不再「誤導」更多網友,故把光碟安裝方法取消,等出了解決辦法之後才貼上,望諒!)
自動安裝文件還有很多其他的作用,如自動填入序列號等,大家可以自己去查閱資料,祝大家都能方便的安裝WINDOWS,另上面如有不對的地方也請提出