无忧启动论坛

标题: 实现Windows XP Live On USB Device [打印本页]

作者: lintel    时间: 2008-4-28 23:47
标题: 实现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移动硬盘
缺点:还是只能在一台机器上启动.




没多少人关心,不续了.







lintel

整理于
2008.4.27
lintel77@qq.com

[ 本帖最后由 lintel 于 2008-4-30 11:46 PM 编辑 ]
作者: xuxuezeng    时间: 2008-4-28 23:54
楼主强,看来楼主要出成品版了,学习学习!
作者: 263109    时间: 2008-4-28 23:58
好东西,好好学习!
作者: benny3848hk    时间: 2008-4-29 02:42
下载地址下不了,请修正.........
作者: swbzzj    时间: 2008-4-29 06:34
楼主好样的!但愿能下载!
作者: longwater    时间: 2008-4-29 07:50
佩服,
制作USB XP安装光盘.
使用范围: 使用USB移动硬盘的兄弟.
缺点:只能在一台机器上使用.
有点期待
作者: dfghj    时间: 2008-4-29 10:33
期待更好,支持搂住。
作者: 5512521    时间: 2008-4-29 10:43
迫切需要,地址下载不了,能给个能下的地址吗?
作者: happywinner    时间: 2008-4-29 11:44
等待最终结果。
作者: yongxiang1    时间: 2008-4-29 11:59
期待U盘启动的XP中...
作者: abigapple8    时间: 2008-4-30 09:31
怎样才能在很多机器上使用呢?参考下虚拟机技术,还有ghost的驱动技术不知道能不能解决
例如进入PE,在pe中运行VM虚拟机,在虚拟机上装xp不知道能不能解决移植的问题
还有就是因为usb相对硬盘速度有些低
怎样才能把一些东西放在内存中来提高速度呢
期待高人
作者: cmsz    时间: 2008-4-30 10:17
期待第三种方法...
作者: rzsggg    时间: 2008-4-30 11:12
我在几个月前就对楼主说的第一个方法进行整理过,原帖出自一位德国人,上面需要修改的文件我已经打包了,可惜下载数寥寥。现借贵贴提升一下气,望各位下载的朋友在我发的贴上回个贴,我的帖沉的好快。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=123567
作者: lintel    时间: 2008-4-30 23:46
没多少人关心,不续了.
作者: wadai2005    时间: 2008-4-30 23:56
楼主不要急!慢工出细活,期待楼主的精品
作者: citydream    时间: 2008-5-1 01:04
老大要是把第二个搞出来,我肯定名气比winxpsp3还要响。
作者: outwind    时间: 2008-5-2 23:26
继续学习,下载地址有问题,无法下载,望更新,十分感谢老大无私奉献和分享:)
作者: xrzhang    时间: 2008-5-4 17:06
顶一下,就等这个东西,期待中。。。。
作者: lvzhhai    时间: 2008-5-14 10:49
楼主,能不能再接着研究第2种方法,将其完善.或第一种,搞成可在任意机器上使用的.
此贴不应沉.
作者: d09os3    时间: 2008-5-14 11:04
只能在一部机器上运行的话,实用意义就大打折扣了。USB启动到XP的最大受众群体应该是出差人士。
作者: xl5325    时间: 2008-5-19 23:25
关键就是需要在不同机器上都能使用,那样才有实际意义!
作者: psccj    时间: 2008-5-20 08:10
期待第二种方法,比较实用。
作者: pureivan    时间: 2008-5-21 13:07
偶很关心啊,楼主继续啊。
作者: mt_king    时间: 2008-5-26 21:28
希望能看见能在各种机器上运行的成品。
作者: xgoodboy    时间: 2008-6-3 09:42
麻烦楼主提供修改过的文件
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
放入
USBBOOT.INF
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
免得下整个光盘了

[ 本帖最后由 xgoodboy 于 2008-6-3 09:44 AM 编辑 ]
作者: zoumi    时间: 2008-6-3 11:21
我也曾经按此法做成ISO镜像,烧制光盘,启动Laptop,但是不能成功,估计是因为没有卸下Laptop的本地硬盘的原因。
不过,楼主可否将您做好的ISO镜像文件放到fs2you.com网站上,便于大家下载(您的lintel.joyren.cn基本访问不了)。谢谢!
作者: fpx_123    时间: 2008-7-8 20:27
wo 很关心这个啊 高人啊
作者: ╭●o●╮    时间: 2008-9-4 16:50
楼主那个ftp下载不行了
作者: longwater    时间: 2008-11-2 10:03
希望见到通用的,辛苦了
作者: ipqmp666666    时间: 2008-11-2 14:05
移动的XP岂不美哉,曾经把XPE安装到U盘,启动蓝屏,如果能出来真是太多了,一个U盘而不知道怎么用呢
作者: ssfnje    时间: 2008-11-23 18:35
标题: 实现Windows XP Live On USB Device
谢谢楼主!!!我改过了。算是成功。不过启动是要插上硬盘才会启动。不插上硬盘的话只能进放安全模式。其它模式一进就自动重启。。请问是什么原因?
作者: ssfnje    时间: 2008-11-23 20:17
我修改过。成功了。就是开机速慢了点。而且要插个硬盘上去才能启动。没有插硬盘的话只能进入安全模式。其他模式一进就自动重启。还得努力改进改进!
作者: ufyamn    时间: 2008-11-25 21:06
严重关注第二种方法。
作者: 秋梦无痕    时间: 2008-11-26 08:07
最最值的期待的当然是可以在任意机器上启动,便又不丢失数据的系统
如果能用就最好了
作者: hszhougb    时间: 2008-11-26 09:56
够大的!!!!!!!!!!!
作者: msdc168    时间: 2008-11-26 20:12
原帖由 yongxiang1 于 2008-4-29 11:59 发表
期待U盘启动的XP中...

我早就可以用U盘直接启动XP,VISTA,这有什么新鲜的啊,楼主大概说的是用USB移动硬盘启动XP而不是U盘。
作者: ljsdjg    时间: 2008-12-9 10:29
我顶你,争取早日变成成熟的技术,真正一个u盘在手,各个机器都能用自己的xp。
作者: 浅浅的爱    时间: 2008-12-10 22:00
我有个疑问  为什们你们都想在U盘中启动系统呢~~~有什么用??
作者: xrzhang    时间: 2008-12-15 17:14
一直想在U盘上运行XP,这样的HTPC就不会吵。试了几次没有成功,就放弃了。

希望LZ继续!

支持!
作者: xrzhang    时间: 2008-12-15 17:16
一直想在U盘上运行XP,这样的HTPC就不会吵。试了几次没有成功,就放弃了。

希望LZ继续!

支持!
作者: fliger    时间: 2009-2-5 14:52
高手,以后有机会做一个,防毒的新方法,我们只要把写保护口关掉,那病毒就写不进去了,
作者: 翔宇天空    时间: 2009-3-31 09:17
我试了,安装的第一次启动没有问题,就是再次重起进入不了系统,我没有拔下硬盘来安装。不知是什么原因,尝试中。
作者: ms8868    时间: 2009-10-7 10:56
楼主,怎么联系你啊,给个常用的联系方式把
作者: yfljd    时间: 2010-3-16 14:28
如果只能在一台机器上使用.那就木油意义了!
作者: ycw701123    时间: 2010-3-16 18:28
装好后必须要有内置硬盘,否则从移动硬盘启动会自动重启,不知哪位能解决?
作者: 游手好闲    时间: 2010-12-19 16:39
j晚了!·j晚了!·j晚了!·
作者: 2011kuangchai    时间: 2011-4-10 20:34
楼主好样的!但愿能下载!
作者: ddnflier    时间: 2022-4-7 15:38
有用,鉴定完毕,谢谢楼主
作者: yzmoran    时间: 2024-7-12 18:52
考古[doge]




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3