編者按:
SATA硬盤有不少優點,但安裝作業系統實在麻煩,不僅要抓住機會按“F6”鍵載入STAT的驅動程式,還要製作帶驅動程式的軟碟。要命的是如果新機器沒有配置軟盤機,那可就大眼瞪小眼了……來製作一張含SATA驅動程式的WinXP安裝光碟吧。你會發現:原來載入SATA硬盤驅動其實很簡單。
作者:余劉瑯
為了不再讓WinXP的安裝過程需要通過軟碟載入SATA驅動程式,很多人都夢想主板的SATA驅動程式集成到安裝光碟中,本文就來DIY一張集成SATA驅動程式的Windows XP安裝光碟!
Windows XP安裝目錄及文件準備
打開資源管理器,在一個擁有足夠磁片空間(空閒空間至少為700MB;如果將生成後的光碟鏡像也放在該分區,則應當保證有一張光碟的雙倍容量的空間,即1.4GB左右)的硬盤分區上創建一個文件夾,比如“D:\XPSATA”,用於保存Windows XP的全部安裝文件。
把一張完好的Windows XP安裝光碟放入光碟機,在資源管理器中將光碟中的文件全部選定,再複製到“D:\XPSATA”目錄中。
準備驅動程式文件
一般隨主板附送的驅動程式安裝光碟中都有SATA的驅動程式。打開光碟目錄,尋找名稱中含有“SATA”或“RAID”字符的文件夾;也可在主板製造商的網站或其他驅動程式下載站點(如:驅動之家“http://www.mydrivers.com”等)尋找與自己的主板晶片組相匹配的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]”為關鍵字進行搜尋(圖1)。找到這個字段後,其下面已經存在一些內容(圖2)。翻頁到這個字段的末尾(注意:不是整個文件內容的末尾),添加以下內容:“si3112.sys = 1,,,,,,3_,4,1”。
圖1
圖2
這裡的“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”文件中添加以下內容(如果已經存在部分內容,則應進行修改或添加,且保證每行的內容不要重復):
[Unattended]
OemPreinstall=Yes
OemPnPDriversPath="STATDRV"
上述代碼最後一句引號中的內容是指隨後生成光碟時,驅動程式相對於光碟根目錄所在的相對路徑。由於我們打算把保存驅動程式的“D:\STATDRV”文件夾放到新生成的安裝光碟的根目錄,因此不必包含任何子目錄路徑(圖3)。
圖3
將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_”(圖4)。
圖4
具體的驅動程式文件名和保存路徑請根據實際情況靈活更改。
重新生成安裝光碟
經過上述步驟,現在已經是萬事俱備,只待刻盤了!
準備任意一款支援製作可引導型光碟的工具程式,如經典的軟體“WinISO”、“ISOCommander”及國產軟體“UltraISO”等均可。生成可引導光碟的方法有很多種,為避免大家到處尋找那些生僻的工具軟體,這裡以UltraISO為例,分若干個步驟進行:
(1)製作原始安裝光碟鏡像
這一步的目的是方便從製作出來的光碟鏡像中提取引導文件。其實也有專門的直接提取光碟引導區的工具,但操作稍麻煩,因此在這裡多花費一兩分鐘還是很值得的。
將Windows XP的原始安裝光碟放入光碟機中,啟動UltraISO,按“F5”鍵,或者執行“工具”功能表中的“製作光碟鏡像文件”(圖5),根據提示指定一個鏡像文件的保存位置,隨後程式會自動開始讀取光碟並完成鏡像文件的製作。
圖5
(2)提取光碟鏡像中的引導資訊
在UltraISO主介面中,執行“啟動光碟”功能表中的“保存引導文件”命令(圖6),將引導資訊保存到硬盤上備用,比如保存為“D:\Boot.bin”。
圖6
(3)新建光碟鏡像
在UltraISO的“文件”功能表中執行“新建”命令;從資源管理器中,將前面我們已經準備好的“D:\XPSTAT”文件夾中的所有文件拖入UltraISO右上側的文件窗口中。
將“D:\STATDRV”目錄直接拖放到UltraISO右上側的文件窗口中,完成後在光碟的根目錄中應當可以看到“STATDRV”的文件夾。
提示:
拖放時一定不要包含XPSTAT目錄本身!也就是說,文件添加成功後,在光碟的根目錄下應當可以看到“I386”文件夾。
(4)載入引導資訊文件
執行“啟動光碟”功能表中的“載入引導文件”命令,找到上一步提取的光碟鏡像的引導文件,即“D:\Boot.bin”。現在,新建的光碟鏡像就具備與原版Windows XP安裝光碟相同的引導功能了。
(5)保存光碟鏡像
按“CTRL+S”或者執行“文件”→“保存”命令,指定一個保存光碟鏡像的路徑和文件名(如“F:\XPSTAT.ISO”等),確定後UltraISO就開始向指定路徑生成光碟鏡像文件了。
(6)刻錄安裝光碟
使用Nero或者其他任意一款支援光碟鏡像文件刻錄的工具軟體,將上述得到的光碟鏡像文件(這裡即F:\XPSTAT.ISO)刻錄到光碟中。現在,用這張安裝盤在支援SATA的硬體環境下全新安裝Windows XP,你就既不必按F6,也不需使用什麼軟碟,非常方便。
製作集成SATA驅動程式的Windows XP安裝光碟是一件比較複雜的工作,任何一個小小的失誤都可能導致無法正確地載入驅動程式。此外,不同主板附帶的SATA驅動程式的文件名稱、數量、資訊文件的內容各不相同,在集成時不能硬套,只有舉一反三才能成功。