bowwow
|
分享:
▲
▼
下面是引用 wong19960928 於 2010-07-17 19:21 發表的 : 想办法让你的随身碟被xp判定为硬盘,接着就可以了 感謝wong199609282大大的提供如果沒錯我好像有更改要安裝xp的路徑了以下是我照別的大大做的,不知道有沒有錯,而我是直接下載做好的6個檔去還原燒入光碟的,轉貼:( 基本需求 - 一個可以開機的系統來執行以下工作(廢話 = =)
- 一個USB隨身硬碟,或是隨身碟
- 一個正版差屁光碟(我還沒試過SP3,不過應該也可以,原文是測試到SP1)
- Ultraiso (或是其他可以編輯ISO的工具,ex:Nero)
- 微軟的CAB SDK
- 一個支援ISO的燒錄軟體,原文推薦burnatonce我個人沒用過,我個人則是推薦Imgburn
正片開始~: 大意: 我們將會把一些XP光碟中的檔案複製出來,然後做一些修改之後重新燒一張出來,然後就可以直接用這張光碟安裝到USB裝置了~ 下面是幾個重點請先讀一下吧 1) 你的電腦支援從USB開機嗎? 通常不要太舊的主機板都可以,不確定的話在BIOS開機選項裡面看看有沒有USB裝置選項
2) 確認USB裝置的"開機類型" 直接連結此USB裝置到電腦不要經過Hub然後關機,關機之後把所有的硬碟暫時拔掉,然後放入你的原版差屁光碟,進到讓妳選安裝硬碟那一步如果可以看到你的USB裝置的話就沒問題了。如果看不到並看到一個"Windows找不到任何磁碟"的錯誤的話,沒關係通常不是大問題,你只需要"恰當的"重新格式化你的裝置。下載這個HP的工具(題外話,HP好像漸漸沒有High Price的印象了..),然後用這個工具格式化你的硬碟/隨身碟,我和原文作者一樣,都是選擇NTFS,沒有出現過問題,之後此磁碟就可以用了 3) 將原版光碟轉成ISO檔案 簡單的一步,檔開UltraISO,找到"從光碟製作ISO",然後點下去就好了。
4) 把需要修改的檔案複製出來 檔轉換ISO完成之後,關閉並重新開啟UltraISO,然後打開你剛剛製作的ISO檔案(檔案=>開啟舊檔),然後在左邊選擇I386資料夾,之後選擇以下檔案(按住Ctrl選擇多個檔案)
- TXTSETUP.SIF
- DOSNET.INF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
直接拖出來到隨便一個資料夾
5) 解開 IN_ 檔案 用Cab SDK (從命令列中)來解開其中的.IN_檔案,每個都有"一個" .inf 檔案。如果你不確定如何使用Cab SDK的話, 舉個例子,在命令列中打"cabarc x USBSTOR.IN_" 其實直接用WinRAR就可以解開來了,最後應該可以得到這幾個檔案
- usb.inf
- usbport.inf
- usbstor.inf
然後就可以把.IN_那幾個幹掉了
6) 修改檔案 這是最主要的一步,我會儘量仔細解釋每一步。 用記事本來打開以下檔案。 6-A) TXTSETUP.SIF 這個是XP光碟安裝的時候初始化會載入的檔案,我們要在這個檔案中改變XP啟動時對USB裝置的設定,預設是把他們當作普通USB輸入裝置,我們要把它改變成"能夠使用"的磁碟機 第一步,把以下行從 [InputDevicesSupport.Load] 移動到[BootBusExtenders.Load] 就像以下 (ps. 記的善用Ctrl+F)
[BootBusExtenders.Load] pci = pci.sys acpi = acpi.sys isapnp = isapnp.sys acpiec = acpiec.sys ohci1394 = ohci1394.sys usbehci = usbehci.sys usbohci = usbohci.sys usbuhci = usbuhci.sys usbhub = usbhub.sys usbstor = usbstor.sys [InputDevicesSupport.Load]
usbehci = usbehci.sys usbohci = usbohci.sys usbuhci = usbuhci.sys usbhub = usbhub.sys usbccgp = usbccgp.sys hidusb = hidusb.sys serial = serial.sys serenum = serenum.sys
usbstor = usbstor.sys ...再往下,對 [BootBusExtenders] 和[InputDevicesSupport]也是一樣
[BootBusExtenders] pci = "PCI-Bustreiber",files.pci,pci acpi = "ACPI Plug & Play-Bustreiber",files.acpi,acpi isapnp = "ISA Plug & Play-Bustreiber",files.isapnp,isapnp acpiec = "Integrierter ACPI-Controllertreiber",files.none,acpiec ohci1394 = "IEEE-1394-Bus-OHCI-konformer Anschlusstreiber",files.ohci1394,ohci1394 usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci usbohci = "Open Hostcontroller",files.usbohci,usbohci usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor [InputDevicesSupport]
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci usbohci = "Open Hostcontroller",files.usbohci,usbohci usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub hidusb = "HID-Parser",files.hidusb,hidusb serial = "Treiber f�r seriellen Anschluss",files.none,serial serenum = "Enumerator f�r seriellen Anschluss",files.none,serenum
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor
usbccgp = "USB Generic Parent Driver",files.usbccgp,usbccgp 再來,我們也需要在註冊表區加入一些值,在[HiveInfs.Fresh]區中插入以下的值section:
[HiveInfs.Fresh] AddReg = hivedef.inf,AddReg AddReg = hivesys.inf,AddReg AddReg = hivesft.inf,AddReg AddReg = hivecls.inf,AddReg AddReg = hiveusd.inf,AddReg AddReg = dmreg.inf,DM.AddReg AddReg = usbboot.inf,usbservices
然後也在[SourceDisksFiles]新增一行
[SourceDisksFiles] usbboot.inf = 1,,,,,,_x,3,,3 bootvid.dll = 1,,,,,,3_,2,0,0,,1,2 kdcom.dll = 1,,,,,,3_,2,0,0,,1,2
終於,儲存然後關閉TXTSETUP.SIF,已經做完該對他做的事了xd
6-B) DOSNET.INF
再來,打開DOSNET.INF 然後在[Files]區加上一行,向下面這樣: [Files] d1,usbboot.inf d1,_default.pif d1,12520437.cpx d1,12520850.cpx ....
6-C) usb.inf
對[StandardHub.AddService]與[CommonClassParent.AddService] 區做以下改變:
[StandardHub.AddService] DisplayName = %StandardHub.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 0 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\usbhub.sys LoadOrderGroup = Boot Bus Extender [CommonClassParent.AddService] DisplayName = %GenericParent.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 0 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\usbccgp.sys LoadOrderGroup = Boot Bus Extender
6-D) usbport.inf
對[EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] 以及[ROOTHUB.AddService]區段做以下改變: [EHCI.AddService] DisplayName = %EHCIMP.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 0 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\usbehci.sys LoadOrderGroup = Boot Bus Extender [OHCI.AddService] DisplayName = %OHCIMP.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 0 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\usbohci.sys LoadOrderGroup = Boot Bus Extender [UHCI.AddService] DisplayName = %UHCIMP.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 0 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\usbuhci.sys LoadOrderGroup = Boot Bus Extender [ROOTHUB.AddService] DisplayName = %ROOTHUB.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 0 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\usbhub.sys LoadOrderGroup = Boot Bus Extender
6-E) usbstor.inf
在[USBSTOR.AddService]區做以下改變: [USBSTOR.AddService] DisplayName = %USBSTOR.SvcDesc% ServiceType = 1 StartType = 0 Tag = 3 ErrorControl = 1 ServiceBinary = %12%\USBSTOR.SYS LoadOrderGroup = Boot Bus Extender
6-F) 新增一個檔案: USBBOOT.INF
新增一個檔案並命名為USBBOOT.INF然後在裡面加入以下內容: [usbservices] HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","DisplayName",0x00000000,"USB Mass Storage Driver" HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Group",0x00000000,"System Reserved" HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ImagePath",0x00020000,"system32\DRIVERS\USBSTOR.SYS" HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Start",0x00010001,0 HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Type",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","DisplayName",0x00000000,"USB 2.0 Enhanced Host Controller Miniport Driver" HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ErrorControl",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Group",0x00000000,"System Reserved" HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ImagePath",0x00020000,"system32\DRIVERS\usbehci.sys" HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Start",0x00010001,0 HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Type",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","DisplayName",0x00000000,"USB2 Enabled Hub" HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ErrorControl",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Group",0x00000000,"System Reserved" HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ImagePath",0x00020000,"system32\DRIVERS\usbhub.sys" HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Start",0x00010001,0 HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Type",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","DisplayName",0x00000000,"Microsoft USB Universal Host Controller Miniport Driver" HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ErrorControl",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Group",0x00000000,"System Reserved" HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ImagePath",0x00020000,"system32\DRIVERS\usbuhci.sys" HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Start",0x00010001,0 HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Type",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","DisplayName",0x00000000,"Microsoft USB Open Host Controller Miniport Driver" HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ErrorControl",0x00010001,1 HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Group",0x00000000,"System Reserved" HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ImagePath",0x00020000,"system32\DRIVERS\usbohci.sys" HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Start",0x00010001,0 HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Type",0x00010001,1
7) 重新將inf檔案包裝成原來的IN_ 格式
打開命令列視窗,並移動到你放那些檔案的資料夾(cd指令)然後用以下指令來包裝這些檔案: cabarc指令為,先用cd指令到cabarc所儲存的資料夾,然後把要打包的inf檔案放到一起,之後就照下面的。(ps. 需要的cabarc在微軟網站下載的cabsdk解壓縮後BIN資料夾內) cabarc n USB.IN_ usb.inf cabarc n USBPORT.IN_ usbport.inf cabarc n USBSTOR.IN_ usbstor.inf 恭喜~所有需要的改變都做完了~
8) 把修改過後的檔案放回ISO中
用UltraISO打開原版光碟的映像檔,到I386資料夾把以下幾個檔案刪除之後存檔:
- DOSNET.INF
- TXTSETUP.SIF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
確定有存檔之後,重新打開此ISO檔案然後在I386資要夾中把修改過的以下幾個檔案拖進去:
- USBBOOT.INF
- DOSNET.INF
- TXTSETUP.SIF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
儲存,然後就結束了. 9) 將ISO燒成光碟
隨你高興決定想用哪一款燒錄軟體,我用的是免費又簡單的Imgburn
10) 從光碟安裝XP
拔掉"任何"硬碟(所以XP可以把開機訊息寫錯硬碟) ,同時把你要安裝上的USB裝置直接連到電腦,不要經過任何Hub。
基本上應該會很順利的安裝,除了以下的 有可能會在安裝過程中出現: 安裝USB驅動程式的時候可能會出現"沒有經過認證",這很正常(廢話,自己修改過了最好還有認證)只要確定幾次就行了 在系統完成安裝的時候,系統可能會警告虛擬記憶體不存在,那個可以不用鳥她。沒有那個孩是可以用,那個只會讓妳的隨身碟早點壞掉 = = 當一切都可以用之後,關機並連接你所有裝置之後重新開機。)
不知道有沒有做錯的地方,因為我是直接下載的,一樣不行安裝,希望wong199609282大大能指點一下,謝謝
|
|
x0
[2 樓]
From:台灣中華電信 | Posted:2010-07-18 15:44 |
|
|
|