实现Windows XP Live On USB Device

摘至《无忧启动论坛》

从usb硬盘启动标准版的windows,是为了实现
1、能升级windows系统
2、玩DirectX游戏
3、正常运行绝大部分windows下的软件
用usb 2.0的移动硬盘,可以在上面正常运行xp系统了。
微软号称xp无法从ubs设备启动,比如它的网站说明:
Q: Can a USB storage device be the primary (and only) means of storage?
No. USB-based mass storage devices cannot be the primary hard disk storage solution on a regular system ...
还有它新闻组的信息:
Windows cannot boot from an USB drive. If your computer supports
booting from such device, you can load a boot loader to the USB device
which starts Windows XP from the HDD.  
但现在我们准备来破解这个限制。不过首先需要确认,你的电脑是否支持usb硬盘启动,下面提供一个方法:
卸下所有硬盘,接上usb硬盘,然后用windows安装盘来启动,进入安装界面的时候,看能否查找到硬盘存在。能检测到,说明这个usb硬盘是可启动的。目前绝大部分新机器的bios都支持,所以对我们来说基本不是问题。

第一种方法:

制作USB XP安装光盘.
使用范围: 使用USB移动硬盘的兄弟.
缺点:只能在一台机器上使用.

需要准备:
1、一个能用的windows系统
2、一个usb2.0硬盘
3、一张原版windows xp安装盘
4、winiso软件(或者类似的,实现.iso文件编辑功能的软件)
5、微软提供的CAB SDK软件,下载地址
http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/Cabsdk.exe

6、cd刻录软件(我们一般用nero)

下面开始:
一、从windows安装盘的i386目录下copy出
TXTSETUP.SIF
DOSNET.INF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
其中.in_文件,可以用刚才提到的CAB SDK软件解压(其实rar也行)。使用方法,进入dos状态,然后用这个格式:
cabarc x USBSTOR.IN_
每个都如此处理,得到
usb.inf
usbport.inf
usbstor.inf
刚才的.in_文件没用了,删掉吧。
二、修改TXTSETUP.SIF文件。
把[InputDevicesSupport.Load]中的以下项目移动到[BootBusExtenders.Load]。
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys
修改之后,[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]下会有
usbccgp = usbccgp.sys
hidusb = hidusb.sys
serial = serial.sys
serenum = serenum.sys
接下来把[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
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor
移动到[BootBusExtenders]下。
操作很简单,不多说了。
然后把[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]也添加一行,变成
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文件。
三、修改DOSNET.INF文件,在[Files]中添加一行,像这样:
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx  
……
四、修改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
五、修改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
六、修改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
七、新建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

八、压缩.inf文件,格式如下:
cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf  
cabarc n USBSTOR.IN_ usbstor.inf
九、在原版安装盘的iso文件中,删除i386目录下的
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_  
放入
USBBOOT.INF  
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
十、好了,把这个修改过的.iso文件刻盘吧。一切顺利的话,这个版本的windows安装后就可以在usb硬盘上启动了。




已经完成修改的镜像:

FTP://down:down@lintel.joyren.cn/USB-XP.iso








第二种方法,

直接使用Windows XP Embedded 的USB BOOT组件实现.

适用范围:USB移动硬盘,U盘,XD卡+读卡器等等
缺点:几乎适用USB启动的机器,但暂时会导致USB盘数据丢失.

因为有问题,暂时不发了.


第三种方法:

使用现有的XP系统制作.

适用范围:USB移动硬盘
缺点:还是只能在一台机器上启动.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值