史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 系統 & 硬體安裝及故障判斷技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-04-08, 05:35 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 教學 - 製作整合SATA驅動程式的Windows XP安裝光碟(共2種方法)1為燒刻法,2位硬碟安裝法

製作整合SATA驅動程式的Windows XP安裝光碟(共2種方法)1為燒刻法,2位硬碟安裝法

第2種方法是不刻光碟,用硬碟安裝法,在2樓帖出來!第2種方法相對比較簡單!這2個方法都是網上提供的,大家不必要在沒有軟式磁碟機,又要用SATA硬碟的情況下,不情願的用番茄版XP了
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」。


http://bbs.crsky.com/1128632304/Fid_6/6_111796_6dbd8e501e4885d.jpg

http://bbs.crsky.com/1128632304/Fid_6/6_111796_f0f023085a36bb5.jpg

這裡的「si3112.sys = 1,,,,,,3_,4,1」是描述驅動程式所在位置的程式碼。程式碼的格式為「filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename」,在「txtsetup.sif」文件中的「[SourceDisksNames]」和「[WinntDirectories]」等字段中有詳細的描述。有興趣的朋友可以深入研究其它目錄的對應關係,這裡僅簡單介紹。


http://bbs.crsky.com/1128632304/Fid_...fc8a7bde96.jpg
在實際操作時,絕對不可以照搬程式碼!特別是副檔名為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"

Easy提示
不同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」即可。

Easy提示
在用記事本儲存文件時,一定要輸入完整的檔案名,並且一定要用半形的雙引號將檔案名引起來,如「"winnt.sif"」,否則實際上產生的實際上仍然是個文本文件(Winnt.sif.txt),這將導致安裝程序中出現錯誤,STAT驅動程式無法自動載入!

在「winnt.sif」文件中增加以下內容(如果已經存在部分內容,則應進行修改或增加,且保證每行的內容不要重複):
[Unattended]
OemPreinstall=Yes
OemPnPDriversPath="STATDRV"

上述程式碼最後一句引號中的內容是指隨後產生光碟時,驅動程式相對於光碟根目錄所在的相對路徑。由於我們打算把儲存驅動程式的「D:\STATDRV」資料夾放到新產生的安裝光碟的根目錄,因此不必包含任何子目錄路徑(圖3)。


http://bbs.crsky.com/1128632304/Fid_6/6_111796_ef0ad0b50fbc08c.jpg將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)。

http://bbs.crsky.com/1128632304/Fid_6/6_111796_3920fc0a9f71946.jpg


重新產生安裝光碟
經過上述步驟,現在已經是萬事俱備,只待燒刻了!

準備任意一款支持製作可啟始型光碟的工具程序,如傳統的軟體「WinISO」、「ISOCommander」及大陸軟體「UltraISO」等均可。產生可啟始光碟的方法有很多種,為避免大家到處尋找那些生僻的工具軟體,這裡以UltraISO為例,分若干個步驟進行:

(1)製作原始安裝光碟映射
這一步的目的是方便從製作出來的光碟映射中抽取啟始文件。其實也有專門的直接抽取光碟啟始區的工具,但操作稍麻煩,因此在這裡多花費一兩分鍾還是很值得的。

將Windows XP的原始安裝光碟放入光碟中,啟動UltraISO,按「F5」鍵,或者執行「工具」表單中的「製作光碟映射文件」(圖5),根據提示指定一個映射文件的儲存位置,隨後程序會自動開始讀取光碟並完成映射文件的製作。
盤映射中的啟始檔案
在UltraISO主介面中,執行「啟動光碟」表單中的「儲存啟始文件」指令(圖6),將啟始檔案儲存到硬碟上備用,比如儲存為「D:\Boot.bin」。
(3)新增光碟映射
在UltraISO的「文件」表單中執行「新增」指令;從檔案總管中,將前面我們已經準備好的「D:\XPSTAT」資料夾中的所有文件拖入UltraISO右上側的文件視窗中。

將「D:\STATDRV」目錄直接拖放到UltraISO右上側的文件視窗中,完成後在光碟的根目錄中應當可以看到「STATDRV」的資料夾。

Easy提示
拖放時一定不要包含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驅動程式的檔案名稱、數量、訊息文件的內容各不相同,在整合時不能硬套,只有舉一反三才能成功。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
舊 2006-04-08, 05:36 PM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

以前在安裝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,另上面如有不對的地方也請提出
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
舊 2006-09-26, 11:18 AM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

SATA硬碟安裝XP找不到驅動的解決方法

最近看到很多網友發貼求助:SATA硬碟在安裝WinXP時,已按F6安裝軟碟中的第三方SATA硬碟驅動並找到硬碟,但在複製文件過程中仍提示找不到viasraid.sys、viasraid.inf、viasraid.cat這三個文件,按ESC跳過後,當複製完文件重啟系統便出現錯誤,以致不能繼續安裝系統。

  筆者經過嘗試已解決此問題,步驟如下:

  1、安裝開始時,按提示按下F6,正確安裝軟碟中的第三方SATA硬碟驅動,選擇安裝系統的分區。

  2、在複製文件中提示找不到viasraid.sys、viasraid.inf、viasraid.cat這三個文件時,按ESC跳過。

  3、複製完文件重啟時插入軟碟啟動碟,從軟式磁碟機啟動,然後插入有SATA硬碟驅動程式的軟碟,找到軟碟上的viasraid.sys、viasraid.inf、

  viasraid.cat這三個文件(一般是在WinXP目錄中)複製到C:\windows\system32\drivers目錄下(這裡假定系統安裝在C區),取出軟碟重啟即可完成系統的安裝。

  註:以上方法在「華碩K8V-X主板,MAXTOR 80G SATA 硬碟」上通過。
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
向 psac 送花的會員:
black-coffee (2013-03-02)
感謝您發表一篇好文章
舊 2006-09-26, 11:22 AM   #4 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

製作整合SATA驅動程式的Windows XP安裝光碟(共2種方法)1為刻盤法,2位硬碟安裝法
第2種方法是不刻光碟,用硬碟安裝法,在2樓帖出來!第2種方法相對比較簡單!這2個方法都是網上提供的,大家不必要在沒有軟式磁碟機,又要用SATA硬碟的情況下,不情願的用番茄版XP了
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」。

http://bbs.crsky.com/1128632305/Fid_6/6_111796_6dbd8e501e4885d.jpg


http://bbs.crsky.com/1128632305/Fid_6/6_111796_f0f023085a36bb5.jpg

這裡的「si3112.sys = 1,,,,,,3_,4,1」是描述驅動程式所在位置的代碼。代碼的格式為「filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename」,在「txtsetup.sif」文件中的「[SourceDisksNames]」和「[WinntDirectories]」等字段中有詳細的描述。有興趣的朋友可以深入研究其它目錄的對應關係,這裡僅簡單介紹。

http://bbs.crsky.com/1128632305/Fid_6/6_111796_ec6fafc8a7bde96.jpg

在實際操作時,絕對不可以照搬代碼!特別是延伸名為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"
Easy提示
不同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」即可。
Easy提示
在用記事本儲存文件時,一定要輸入完整的文件名,並且一定要用半角的雙引號將文件名引起來,如「"winnt.sif"」,否則實際上產生的實際上仍然是個文本文件(Winnt.sif.txt),這將導致安裝過程中出錯,STAT驅動程式無法自動載入!
在「winnt.sif」文件中新增以下內容(如果已經存在部分內容,則應進行修改或新增,且保證每行的內容不要重複):
[Unattended]
OemPreinstall=Yes
OemPnPDriversPath="STATDRV"
上述代碼最後一句引號中的內容是指隨後產生光碟時,驅動程式相對於光碟根目錄所在的相對路徑。由於我們打算把儲存驅動程式的「D:\STATDRV」資料夾放到新產生的安裝光碟的根目錄,因此不必包含任何子目錄路徑(圖3)。

http://bbs.crsky.com/1128632305/Fid_6/6_111796_ef0ad0b50fbc08c.jpg

將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)。

http://bbs.crsky.com/1128632305/Fid_6/6_111796_3920fc0a9f71946.jpg

重新產生安裝光碟
經過上述步驟,現在已經是萬事俱備,只待刻盤了!
準備任意一款支持製作可啟始型光碟的工具程式,如經典的軟件「WinISO」、「ISOCommander」及大陸國產軟件「UltraISO」等均可。產生可啟始光碟的方法有很多種,為避免大家到處尋找那些生僻的工具軟件,這裡以UltraISO為例,分若干個步驟進行:
(1)製作原始安裝光碟鏡像
這一步的目的是方便從製作出來的光碟鏡像中提取啟始文件。其實也有專門的直接提取光碟啟始區的工具,但操作稍麻煩,因此在這裡多花費一兩分鐘還是很值得的。
將Windows XP的原始安裝光碟放入光碟中,啟動UltraISO,按「F5」鍵,或者執行「工具」表菜單中的「製作光碟鏡像文件」(圖5),根據提示指定一個鏡像文件的儲存位置,隨後程式會自動開始讀取光碟並完成鏡像文件的製作。
盤鏡像中的啟始訊息
在UltraISO主界面中,執行「啟動光碟」表菜單中的「儲存啟始文件」命令(圖6),將啟始訊息儲存到硬碟上備用,比如儲存為「D:\Boot.bin」。
(3)新增光碟鏡像
在UltraISO的「文件」表菜單中執行「新增」命令;從視窗檔案總管中,將前面我們已經準備好的「D:\XPSTAT」資料夾中的所有文件拖入UltraISO右上側的文件視窗中。
將「D:\STATDRV」目錄直接拖放到UltraISO右上側的文件視窗中,完成後在光碟的根目錄中應當可以看到「STATDRV」的資料夾。
Easy提示
拖放時一定不要包含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驅動程式的文件名稱、數量、訊息文件的內容各不相同,在整合時不能硬套,只有舉一反三才能成功。

以前在安裝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,另上面如有不對的地方也請提出,謝謝!
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
向 psac 送花的會員:
1102 (2007-06-02)
感謝您發表一篇好文章
舊 2006-09-30, 05:55 PM   #5 (permalink)
長老會員
榮譽勳章
UID - 42666
在線等級: 級別:33 | 在線時長:1227小時 | 升級還需:65小時級別:33 | 在線時長:1227小時 | 升級還需:65小時級別:33 | 在線時長:1227小時 | 升級還需:65小時級別:33 | 在線時長:1227小時 | 升級還需:65小時級別:33 | 在線時長:1227小時 | 升級還需:65小時級別:33 | 在線時長:1227小時 | 升級還需:65小時級別:33 | 在線時長:1227小時 | 升級還需:65小時級別:33 | 在線時長:1227小時 | 升級還需:65小時
註冊日期: 2003-02-25
住址: 台北縣
文章: 1164
現金: 10080 金幣
資產: 26936 金幣
預設

有些繁雜但是大體都還有些能了解,但不是完全了解,拷貝存檔,備用
__________________

TCP options string: 020405a001010402
MSS: 1440
MTU: 1480
TCP Window: 46080 (multiple of MSS)
RWIN Scaling: 0
Unscaled RWIN : 46080
Reccomended RWINs: 63360, 126720, 253440, 506880
BDP limit (200ms): 1843kbps (230KBytes/s)
BDP limit (500ms): 737kbps (92KBytes/s)

poss 目前離線  
送花文章: 671, 收花文章: 415 篇, 收花: 4011 次
向 poss 送花的會員:
bowen0205 (2008-09-11)
感謝您發表一篇好文章
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 12:26 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2020, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1