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