无忧启动论坛

标题: 从u盘启动win7/2008 R2的方法,更新:换机器免sysprep的方法 [打印本页]

作者: fujianabc    时间: 2010-4-18 11:18
标题: 从u盘启动win7/2008 R2的方法,更新:换机器免sysprep的方法
在我的nt 6.x快速安装器中已经包含了win7装到usb移动硬盘的功能,其中利用了usbbootwatcher监视usb启动相关的注册表项,让usb驱动在启动前就加载。
一直有人想把win7装到u盘,这两天这个帖子中的信息和测试给了启示,这里我来总结一下,并提供一些操作方法。

根据win7 embedded和hyper-v R2的文档及这个帖子中的测试,win7/2008 R2 usb启动其实只是由两个注册表项控制的:

HKLM\system\CurrentControlSet\Control\BootDriverFlags
HKLM\system\CurrentControlSet\Control\PnP\PollBootPartitionTimeout
把第一个值设成4就可以在启动开始阶段就加载usb驱动;
而第二个则控制内核等待启动分区PnP反应时间,usb启动设为15000(win7 embedded的值)或者30000(hyper-v r2中的值)

由此看来,usb启动普通win7非常的简单,微软完全已经设计好了。默认不能装到usb设备纯粹是微软策略上的考虑。

下面就来介绍一下u盘启动win7/2008 r2的方法(移动硬盘一样适用):

方法一 (vhd启动):
1、在硬盘上先装一个vhd启动的win7(只有企业版和旗舰版支持vhd启动)
2、启动win7后,用regedit把上面所说的两个注册表项改成4和10进制的30000
3、在u盘上建立激活主分区(启动扇区为nt 6模式),在另一个系统中把vhd文件复制到u盘上
4、用bcdboot和bcdedit在u盘上建立一个指向这个vhd文件的启动项即可(下面命令假设系统盘为c:,u盘/移动硬盘为u:,vhd为win7.vhd)。
  1. bcdboot c:\windows /s u: /l zh-CN
  2. bcdedit /store u:\boot\bcd /set {default} device vhd=[locate]\win7.vhd
  3. bcdedit /store u:\boot\bcd /set {default} osdevice vhd=[locate]\win7.vhd
复制代码


方法二 (直接装到u盘):
注意:以下方法由于要直接拷贝大量文件到u盘,速度可能非常的慢。在硬件扫描阶段(specialize阶段)也会非常慢。如非必要还是用方法一
1、在u盘上建立激活主分区
2、用nt 6.x快速安装器把win7/2008 r2装到u盘上,系统分区和启动分区都选u盘盘符,usb硬盘选项选“否”
3、重启之前请运行以下脚本,其中u:代表u盘盘符
usbreg.rar (399 Bytes, 下载次数: 3936)
  1. usbreg.cmd u:
复制代码
4、从u盘重启系统



[ 本帖最后由 fujianabc 于 2010-5-15 09:10 编辑 ]
作者: fujianabc    时间: 2010-4-18 11:18
注意点:

1、u盘容量至少8GB,推荐用16GB或者更大的u盘

2、如有可能,用SLC闪存的u盘。一是SLC的速度比普通MLC u盘小文件写入速度快很多,MLC u盘用起来甚至会卡。二是SLC的写入寿命比MLC长10倍,MLC直接跑系统可能用不了多久会达到写入寿命极限。

3、关于usb win7的换机器的可移动性,根据目前一些人的测试,usb启动win7只要cpu是同一牌子的就基本能通用。比如从nvidia芯片组的amd cpu机子换到amd芯片组的amd cpu机子都没问题。根据yueyezhan的测试,如果cpu品牌不同只要改一下注册表的iaStorV和msahci两项就能在不同机子间通用。所以在插到其他机子前,导入
这个注册表文件就可以了。 usb跨平台.rar (254 Bytes, 下载次数: 2593)

4、如果nt 6.x快速安装器安装win7/2008 R2到移动硬盘启动失败,也可以尝试这里1楼的方法。

[ 本帖最后由 fujianabc 于 2010-4-29 21:19 编辑 ]
作者: pseudo    时间: 2010-4-18 11:47
标题: 回复 #2 fujianabc 的帖子
把第一个值设成4就可以在启动开始阶段就加载usb驱动
这个好
作者: yueyezhan    时间: 2010-4-18 11:54
如果用u盘的话,把ewf装上不错,不过embedded的ewf在ctp版本的时候移植到windows7可以用,到了rc版本的时候就用不了了
作者: fujianabc    时间: 2010-4-18 12:40
原帖由 yueyezhan 于 2010-4-18 11:54 发表
如果用u盘的话,把ewf装上不错,不过embedded的ewf在ctp版本的时候移植到windows7可以用,到了rc版本的时候就用不了了

ewf等月底win7 embedded rtm后再看吧。
另外,fbwf应该也可以。
作者: renchmin    时间: 2010-4-18 13:51
学习一下,楼主发的帖子非常好。
作者: victor888    时间: 2010-4-20 17:36
很好,很好,正需要呢。
我要把WIN7装到移动硬盘。

另外,那个只要同厂家的CPU就通用,不是的CPU用SYSPREP的介绍最好。
作者: fujianabc    时间: 2010-4-20 18:31
原帖由 victor888 于 2010-4-20 17:36 发表

另外,那个只要同厂家的CPU就通用,不是的CPU用SYSPREP的介绍最好。

这个还不能保证一定是这样,就目前测试来看基本如此。
作者: yueyezhan    时间: 2010-4-21 13:42
下午有时间去拿个intel芯片的机器,重新装一个干净的系统,在amd和intel的芯片上都试一下
不过我安装在移动硬盘的embedded是可以跨平台正常引导的,这个我试过,前两天拿着在amd上启动完的移动硬盘插在一个intelcpu的dell笔记本上正常启动过
作者: yueyezhan    时间: 2010-4-21 13:45
在amd的从单核754到双核5000+,k10的双核245 三核435 四核630我都用同一个移动硬盘的windows7引导过,没有任何问题的
作者: yueyezhan    时间: 2010-4-21 19:29
下午试着在联想的g450上引导了两次,没有任何问题
作者: kongxubing    时间: 2010-4-21 19:37
学习一下,楼主发的帖子非常好
作者: fujianabc    时间: 2010-4-21 20:11
原帖由 yueyezhan 于 2010-4-21 19:29 发表
下午试着在联想的g450上引导了两次,没有任何问题

从amd机子移到intel的机子?
作者: yueyezhan    时间: 2010-4-21 20:42
原帖由 fujianabc 于 2010-4-21 20:11 发表

从amd机子移到intel的机子?


奇怪 ,刚才又换了一台安装vista的联想g430的机器,蓝屏了

加载到disk.sys的时候蓝屏,停机码是7b,下午在intelcpu的g450引导没问题

[ 本帖最后由 yueyezhan 于 2010-4-21 20:52 编辑 ]
作者: yueyezhan    时间: 2010-4-21 21:11
进bios设置为ide模式,可以进系统了,如果想让系统加载intel的ahci驱动,应该如何做?是否需要把amd的raid或者ahci启动关闭掉

找到并单击下面的注册表子项之一:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\IastorV
在右窗格中,右键单击“名称”列中的“Start”,然后单击“修改”。
在“数值数据”框中,键入 0,然后单击“确定”。


只是这样修改,还是会蓝屏,***,embedded就不会,不知道embedded是如果保证可以跨平台引导的


突然想到用来测试的系统是以前用usbbootwatcher来从usb引导的,重新灌了一个系统,像embedded那也修改注册表键值后来在不同的平台引导试试,记得用embedded那种修改注册表的方法引导进系统后,移动硬盘在系统内还是显示为usb设备的

[ 本帖最后由 yueyezhan 于 2010-4-22 03:19 编辑 ]
作者: yueyezhan    时间: 2010-4-22 03:48
呵呵,very good,原来像embedded那样修改了两个注册表键值后,windows7就可以在移动硬盘上跨平台启动了,刚在一台amd754cpu上引导完毕后,又在联想的t5800的intelcpu上引导起来了,呵呵,我现在重启后再去amd的机器引导,哈哈
作者: yueyezhan    时间: 2010-4-22 04:05
无线网卡的驱动自动就驱上了,顺手用kms激活了
作者: michaellions    时间: 2010-4-28 10:12
标题: 回复 #17 yueyezhan 的帖子
能介绍具体怎么改么?不会弄呀。
作者: gamegm    时间: 2010-4-28 12:34
win7 文件太大了
作者: a_wind    时间: 2010-4-29 15:50
我是用VHD实现的,在移动硬盘上,我的机器是华硕A42JR。在联想TP SL410上测试成功,但是需要重新激活,安装驱动。
但是在一台HP畅游人上启动就蓝屏:0x0000012f
刚刚在联想Y450上测试也是同样蓝屏在:0x0000012f

不知道什么原因,我估计就是驱动的问题

[ 本帖最后由 a_wind 于 2010-4-29 17:49 编辑 ]
作者: fujianabc    时间: 2010-4-29 20:25
根据15楼yueyezhan的方法,在二楼更新了换机器免sysprep的方法
作者: yueyezhan    时间: 2010-5-2 01:23
原帖由 a_wind 于 2010-4-29 15:50 发表
我是用VHD实现的,在移动硬盘上,我的机器是华硕A42JR。在联想TP SL410上测试成功,但是需要重新激活,安装驱动。
但是在一台HP畅游人上启动就蓝屏:0x0000012f
刚刚在联想Y450上测试也是同样蓝屏在:0x00000 ...


确定你准备引导的主板的南桥,也就是磁盘控制器驱动,,然后将对应的注册表键值的start修改为0,intel的南桥是iastorv,amd的南桥是amdsata amdraid是amdsbs 
作者: yueyezhan    时间: 2010-5-2 03:29
nv amd intel的,如果是直接用sata硬盘接到不同的主板南桥之前,bios打开ahci或者是raid,第一次进入系统后以管理员权限运行cmd
bcdedit /set {current} detecthal yes

---------------------------------------------以下保存为reg导入-----------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\amdsata]
"Start"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\amdsbs]
"Start"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStorV]
"Start"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci]
"Start"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\nvraid]
"Start"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\nvstor]
"Start"=dword:00000000


ps:
我在nv的南桥(nf4主板,bios开启ahci),amd sb700南桥(bios设置为raid)测试过,intel的南桥没有测,手头没有intel的台式机
作者: zhhsh    时间: 2010-5-2 11:50
既然可以免sysprep的话,那么如果我想换主板,那只需 想23楼的那样只需修改SRS驱动相关键值?
作者: yueyezhan    时间: 2010-5-2 12:44
原帖由 zhhsh 于 2010-5-2 11:50 发表
既然可以免sysprep的话,那么如果我想换主板,那只需 想23楼的那样只需修改SRS驱动相关键值?


我在nv的南桥和amd的南桥来回换是这样做的,如果你用usb启动的话,没有必要这样设置
作者: zhhsh    时间: 2010-5-2 13:22
标题: 回复 #25 yueyezhan 的帖子
我其实研究一下win7能不能够不用sysprep来实现通用还原。。。
作者: 0cat0    时间: 2010-5-2 22:19
今天折腾无果,用实机上用的WIN7VHD按上面的修改了注册表的全部地方,然后放VM里面测试,启动就7B蓝屏,明天准备用原U版生成的VHD测试。。。。。。

先顶起,免得帖子难找。。。。。。。。。。
作者: 0cat0    时间: 2010-5-3 09:15
很郁闷。。。。。。。。今天用原版生成的WIN7.VHD,生成后什么都没动直接放VM里面试,出现以下错误,不知道怎么解决:



还想问个问题,怎么样才能把下面这个菜单变中文的?菜单里面已经设置为zh-CN了,怎么还是英文的呢?是不是需要什么文件?

作者: fujianabc    时间: 2010-5-3 09:19
原帖由 0cat0 于 2010-5-3 09:15 发表
很郁闷。。。。。。。。今天用原版生成的WIN7.VHD,生成后什么都没动直接放VM里面试,出现以下错误,不知道怎么解决:
88556
88557

还想问个问题,怎么样才能把下面这个菜单变中文的?菜单里面已经设置为z ...

你是不是用chenall的软盘镜像引导的?
以前谈到过,chenall的软盘镜像只能引导正常的win7,不能引导刚从wim解开来,没有经过第一次启动硬件配置的win7

[ 本帖最后由 fujianabc 于 2010-5-3 09:20 编辑 ]
作者: 0cat0    时间: 2010-5-3 09:20
标题: 回复 #29 fujianabc 的帖子
不是,菜单是自己用以下命令加的,不知道有没有问题?

@ECHO OFF
@CD /D "%~DP0"
IF NOT EXIST "C:\BOOTMGR" @ATTRIB -R -A -S -H "%~DP0BOOTMGR"
IF NOT EXIST "C:\BOOTMGR" @COPY /Y /V "%~DP0BOOTMGR" "C:\" >NUL
IF EXIST @ATTRIB +R +A +S +H "C:\BOOTMGR"
IF NOT EXIST "C:\BOOT\" @MD "C:\BOOT\"
IF EXIST "C:\BOOT\" @ATTRIB +R +A +S +H "C:\BOOT"
IF EXIST "C:\BOOT\BCD" @COPY /Y /V "C:\BOOT\BCD" "C:\BOOT\BCD_BAK" >NUL
IF EXIST "C:\BOOT\BCD" @DEL /F /A /Q "\\?\C:\BOOT\BCD" >NUL
BOOTSECT.EXE /NT60 "C:" /FORCE /MBR
BCDEDIT /CREATESTORE "C:\BOOT\BCD"
BCDEDIT /STORE "C:\BOOT\BCD" /CREATE {BOOTMGR} /D "Windows Boot Manager"
BCDEDIT /STORE "C:\BOOT\BCD" /SET {BOOTMGR} LOCALE "zh-CN" >NUL
BCDEDIT /STORE "C:\BOOT\BCD" /SET {BOOTMGR} INHERIT {BOOTLOADERSETTINGS} >NUL
BCDEDIT /STORE "C:\BOOT\BCD" /CREATE {NTLDR} /D "Microsoft Windows XP Professional"
BCDEDIT /STORE "C:\BOOT\BCD" /SET {NTLDR} DEVICE PARTITION="C:"
BCDEDIT /STORE "C:\BOOT\BCD" /SET {NTLDR} PATH "\NTLDR"
BCDEDIT /STORE "C:\BOOT\BCD" /DISPLAYORDER {NTLDR} /ADDLAST
BCDEDIT /STORE "C:\BOOT\BCD" /DEFAULT {NTLDR}
BCDEDIT /STORE "C:\BOOT\BCD" /SET {BOOTMGR} TIMEOUT "9"

PAUSE

SET VID=
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /CREATE /D "%~DP0WIN7.VHD" /APPLICATION OSLOADER >"%TEMP%\VID.TXT"
FOR,/F,"TOKENS=2 DELIMS={",%%I,IN (%TEMP%\VID.TXT) DO (SET VIDA=%%I)
FOR,/F,"TOKENS=1 DELIMS=}",%%I,IN ("%VIDA%") DO (SET VID={%%I})
ECHO %VID%>"%TEMP%\VID.TXT"
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% DEVICE VHD="[%~D0]%~P0WIN7.VHD" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% PATH "\WINDOWS\SYSTEM32\WINLOAD.EXE" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% LOCALE "zh-CN" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% INHERIT {BOOTLOADERSETTINGS} >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% SYSTEMROOT "\WINDOWS" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% OSDEVICE VHD="[%~D0]%~P0WIN7.VHD" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% DETECTHAL ON >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /DISPLAYORDER %VID% /ADDLAST >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /TIMEOUT 9 >NUL
@DEL /F /A /Q "%TEMP%\VID.TXT" >NUL

PAUSE
作者: fujianabc    时间: 2010-5-3 09:27
看你在28楼的截图,解开wim后,是不是之前有过启动不成功,或者第一次配置(specialize阶段)出现失败?
这样的话,要重新解开wim文件,不能直接重启重来一次。
作者: 0cat0    时间: 2010-5-3 09:33
标题: 回复 #29 fujianabc 的帖子
刚刚去实机上面试了一下,用原来正常用的VHD,已经按上面的方法改了注册表和加入UsbBootWatcher了,还是出现7B蓝屏,于是换原版生成什么都没动过的VHD,但还是出现28#楼截图的错误,不知道怎么解决????
作者: 0cat0    时间: 2010-5-3 09:34
标题: 回复 #31 fujianabc 的帖子
这样呀,那我再试一下,因为刚才去实机试的时候没看硬盘空间,第一次空间不够,直接移动到别的盘重启就不行了,我再COPY去试一下。。。。先多谢fujianabc了


对了,忘记说了,我在截图是在VM里面截图的,VM里面试的时候是没有出错过的,全部都是第一次就出现的。。。

[ 本帖最后由 0cat0 于 2010-5-3 09:37 编辑 ]
作者: 0cat0    时间: 2010-5-3 09:43
郁闷了。。。。重新复制一次到实机上面去试,还是出现28#截图错误,想问一下引导VHD是不是除了BOOTMGR这个引导文件外还需要些其它的文件???

因为在安装有WIN7的机子上面一点问题都没有,直接就进去了,文件没动过,就是换台单系统XP的机子,然后用30#楼自己写的命令行加入引导及BOOTMGR文件,怎么也启动不了。。。。。。。。。。
作者: 0cat0    时间: 2010-5-3 09:53
原帖由 <i>fujianabc</i> 于 2010-5-3 09:19 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=1944080&ptid=162499" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
你是不是用chenall的软盘镜像引导的?<br />
以前谈到过,chenall的软盘镜像只能引导正常的win7,不能引导刚从wim解开来,没有经过第一次启动硬件配置的win7
<br />


找了一下没找到你说的“以前谈到过”的帖子,能不能给个连接,想看一下怎么解决的。
作者: fujianabc    时间: 2010-5-3 10:02
原帖由 0cat0 于 2010-5-3 09:53 发表



找了一下没找到你说的“以前谈到过”的帖子,能不能给个连接,想看一下怎么解决的。

这个帖子第二页
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=161511&extra=&page=2

另外,你只是vhd启动,并不进行usb启动,为什么装usbbootwatcher,而且还要改注册表?

还有,你28楼失败之后,不是说要重新copy一遍,而是要重新从wim中解压出源文件。

[ 本帖最后由 fujianabc 于 2010-5-3 10:04 编辑 ]
作者: 0cat0    时间: 2010-5-3 10:25
标题: 回复 #36 fujianabc 的帖子
其实我是想做一个通用的VHD,就是把VHD放到哪都可以启动的那种,也就是说,如果想直接放U盘上面,而且是无系统的环境也可以启动的那种,我想应该要加入usbbootwatcher和改注册表吧?


还有你给的帖子已经看过了,应该是说“必须要在硬盘的激活主分区上才行”这个问题,不过如果你有看我写的CMD应该可以看得出,bootmgr和bcd都是放在“硬盘的激活主分区上”的,还有,我说的重新COPY一次是从生成好VHD(直接生成,什么都没动过)的机子上面直接复制到实机上面的,应该不需要重新从WIM中生成一次吧?

我再试一下用sysprep看看行不行。。。。。就是VHD文件太大了,每试一次都得复制几G的文件,郁闷中。。。。。。。。。
作者: fujianabc    时间: 2010-5-3 10:38
标题: 回复 #37 0cat0 的帖子
usb启动的话,也只要按照我1楼和2楼的做法,改四处注册表即可。不用usbbootwatcher了。

最好重新从wim生成vhd,否则还会是28楼错误的。

另外,你用的硬盘很慢吗?我解压一次install.wim也就4-5分钟时间。
作者: 0cat0    时间: 2010-5-3 10:52
原帖由 fujianabc 于 2010-5-3 10:38 发表
usb启动的话,也只要按照我1楼和2楼的做法,改四处注册表即可。不用usbbootwatcher了。

最好重新从wim生成vhd,否则还会是28楼错误的。

另外,你用的硬盘很慢吗?我解压一次install.wim也就4-5分钟时间。



这样呀,等我试过SYSPREP的没问题,再试试看能不能免SYSPREP的吧,就是VHD太大了。。。。。

看一下我的截图吧:



WIN7_x86_32G
WIN7_x86_64G
这两个是直接生成后不动的

WIN7_OK这个是在本机上面用没问题的,换其它机和VM里面蓝屏的

WIN7这个是刚刚做了SYSPREP的,准备放别的机子上面去试的
对了我的SYSPREP.cmd能看看有没有问题吗?
@ECHO OFF
@START "" "%WINDIR%\SYSTEM32\SYSPREP\SYSPREP.EXE" /OOBE /GENERALIZE /SHUTDOWN
@EXIT

还有,我同通过网络复制的的,所以。。。。。。。。。


[ 本帖最后由 0cat0 于 2010-5-3 10:53 编辑 ]
作者: fujianabc    时间: 2010-5-3 10:56
原帖由 0cat0 于 2010-5-3 10:52 发表



这样呀,等我试过SYSPREP的没问题,再试试看能不能免SYSPREP的吧,就是VHD太大了。。。。。

看一下我的截图吧:

88561

WIN7_x86_32G
WIN7_x86_64G
这两个是直接生成后不动的

WIN7_OK这个是 ...

看vhd,没什么问题,sysprep命令也没什么问题。

局域网速度也不慢阿,你5点几GB数据,每秒10兆多,几分钟也就传完了。

如果是千兆网络,一两分钟就能传完1个vhd
作者: 0cat0    时间: 2010-5-3 11:09
原帖由 fujianabc 于 2010-5-3 10:56 发表

看vhd,没什么问题,sysprep命令也没什么问题。

局域网速度也不慢阿,你5点几GB数据,每秒10兆多,几分钟也就传完了。

如果是千兆网络,一两分钟就能传完1个vhd



这回真的郁闷了。。。。。。。。。。怎么连SYSPREP的也不行呀?

难道是我的菜单加的有问题?

能看看吗?

这是截图:



下面是生成BCD的CMD:

@ECHO OFF
@CD /D "%~DP0"
IF NOT EXIST "C:\BOOTMGR" @ATTRIB -R -A -S -H "%~DP0BOOTMGR"
IF NOT EXIST "C:\BOOTMGR" @COPY /Y /V "%~DP0BOOTMGR" "C:\" >NUL
IF EXIST @ATTRIB +R +A +S +H "C:\BOOTMGR"
IF NOT EXIST "C:\BOOT\" @MD "C:\BOOT\"
IF EXIST "C:\BOOT\" @ATTRIB +R +A +S +H "C:\BOOT"
IF EXIST "C:\BOOT\BCD" @COPY /Y /V "C:\BOOT\BCD" "C:\BOOT\BCD_BAK" >NUL
IF EXIST "C:\BOOT\BCD" @DEL /F /A /Q "\\?\C:\BOOT\BCD" >NUL
BOOTSECT.EXE /NT60 "C:" /FORCE /MBR
BCDEDIT /CREATESTORE "C:\BOOT\BCD"
BCDEDIT /STORE "C:\BOOT\BCD" /CREATE {BOOTMGR} /D "Windows Boot Manager"
BCDEDIT /STORE "C:\BOOT\BCD" /SET {BOOTMGR} LOCALE "zh-CN" >NUL
BCDEDIT /STORE "C:\BOOT\BCD" /SET {BOOTMGR} INHERIT {BOOTLOADERSETTINGS} >NUL
BCDEDIT /STORE "C:\BOOT\BCD" /CREATE {NTLDR} /D "Microsoft Windows XP Professional"
BCDEDIT /STORE "C:\BOOT\BCD" /SET {NTLDR} DEVICE PARTITION="C:"
BCDEDIT /STORE "C:\BOOT\BCD" /SET {NTLDR} PATH "\NTLDR"
BCDEDIT /STORE "C:\BOOT\BCD" /DISPLAYORDER {NTLDR} /ADDLAST
BCDEDIT /STORE "C:\BOOT\BCD" /DEFAULT {NTLDR}
BCDEDIT /STORE "C:\BOOT\BCD" /SET {BOOTMGR} TIMEOUT "9"
PAUSE
SET VID=
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /CREATE /D "%~DP0WIN7.VHD" /APPLICATION OSLOADER >"%TEMP%\VID.TXT"
FOR,/F,"TOKENS=2 DELIMS={",%%I,IN (%TEMP%\VID.TXT) DO (SET VIDA=%%I)
FOR,/F,"TOKENS=1 DELIMS=}",%%I,IN ("%VIDA%") DO (SET VID={%%I})
ECHO %VID%>"%TEMP%\VID.TXT"
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% DEVICE VHD="[%~D0]%~P0WIN7.VHD" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% PATH "\WINDOWS\SYSTEM32\WINLOAD.EXE" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% LOCALE "zh-CN" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% INHERIT {BOOTLOADERSETTINGS} >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% SYSTEMROOT "\WINDOWS" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% OSDEVICE VHD="[%~D0]%~P0WIN7.VHD" >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /SET %VID% DETECTHAL ON >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /DISPLAYORDER %VID% /ADDLAST >NUL
BCDEDIT.EXE /STORE "C:\BOOT\BCD" /TIMEOUT 9 >NUL
@DEL /F /A /Q "%TEMP%\VID.TXT" >NUL
PAUSE



在实机上面用出现的错误还是28#楼的截图,我的步骤如下:
1.用WIN7X86U版生成VHD,然后挂本机,直接进去
2.进去后改用administrator用户,然后运行SYSPREP,其它的什么都没动,直接关机
3.进本机正常的系统,复制SYSPREP后的VHD文件放到别的机子上面
4.用上面的CMD修改引导为NT6,并生成BCD文件和复制BOOTMGR到“激活的主分区”上面
5.重启动已经出现菜单,说明菜单显示部分应该没问题。。。。。
6.选择菜单中的VHD启动,这里出错了。。。。。。出错截图在28#楼。。。。。。。
作者: 0cat0    时间: 2010-5-3 16:59
很郁闷的发现。。。。。原来是那个 WIM2VHD  制作出来的VHD的问题,我自己手动在控制面板建立一个盘然后手动灌注到生成的盘里面,这样做出来的VHD,直接放VM下面就可以启动了。。。。。。。。。。。。。

再试试放别的机子看看效果怎么。。。。。。。
作者: fujianabc    时间: 2010-5-3 17:11
刚刚在u盘上的win7成功开启了fbwf,启动快多了。运行时也不卡了。
顺便评了一下分,u盘的磁盘评分到了5.1
作者: fujianabc    时间: 2010-5-3 19:24
原帖由 friend8179 于 2010-5-3 18:03 发表
有WIN7的FBWF组件么?以前下载的不知道到哪去了

大神一定有的,做一回伸手党

win7 embedded中的。
我随便在百度中搜了个fbwf for win7就有了,比如这个
http://www.megaupload.com/?d=24F0NH09
作者: yueyezhan    时间: 2010-5-4 00:40
原帖由 0cat0 于 2010-5-3 10:25 发表
其实我是想做一个通用的VHD,就是把VHD放到哪都可以启动的那种,也就是说,如果想直接放U盘上面,而且是无系统的环境也可以启动的那种,我想应该要加入usbbootwatcher和改注册表吧?


还有你给的帖子已经看 ...


你修改注册表的那两个键值可以从usb引导这个vhd后,只要这个vhd在某个芯片组的南桥已经启动过一次了,这块主板中没有的磁盘控制器的驱动在注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services下的start的值都会被设置为3,你如果想让这个vhd无论是放在usb上,或者是拷贝到某块硬盘上都可以引导的话,把services下系统内置的那些常见的南桥驱动的值再都改为start 0,就可以了;你用imagex /apply把install.wim离线安装后,随便挂在几大常见的南桥芯片组主板,甚至某些raid盘上都可以启动继续安装,因为在install.wim这个源安装包中,所有windows7内置的磁盘控制器的驱动在services下的start值都是0,启动一次后,不需要加载的驱动对应的值就被系统修改为3了
作者: 0cat0    时间: 2010-5-6 00:25
标题: 回复 #46 yueyezhan 的帖子
多谢,这回知道怎么回事了。。。。。。。。。。。。
作者: tdq868xin    时间: 2010-5-7 20:49
网上搜到一个在window7系统里修改VHD文件内系统注册表的方法,如下:
首先,将准备好的win7.vhd文件挂载到windows7下。例如:挂在到V盘。
在本机中运行regedit打开注册表编辑器,点击HKEY_LOCAL_MACHINE,然后点 文件, 加载配置单元,然后会打开资源管理器,浏览到 v:\Windows\System32\config\XXX    XXX是个无后缀名的文件,其实就是注册表数据库。打开之后,在项名称中填入名字,随便起个名字TEMP。就可以编辑了。
引自http://dkcccc.blog.51cto.com/1138935/283005
作者: cnlzx    时间: 2010-5-7 21:26
想做一个winpe来重装电脑
作者: pulticat    时间: 2010-5-7 23:34
另类的启动win7/2008 R2方法,

回帖感谢再慢慢研究
作者: yueyezhan    时间: 2010-5-8 02:47
原帖由 0cat0 于 2010-5-2 22:19 发表
今天折腾无果,用实机上用的WIN7VHD按上面的修改了注册表的全部地方,然后放VM里面测试,启动就7B蓝屏,明天准备用原U版生成的VHD测试。。。。。。

先顶起,免得帖子难找。。。。。。。。。。


我刚在vm上用imagex释放了一个没有封装的wim,如果vmware的虚拟磁盘是选择的lsi scsi的话,释放后先挂载注册表,把lsi的南桥驱动的键值修改下就可以了
作者: fujianabc    时间: 2010-5-8 09:46
原帖由 yueyezhan 于 2010-5-8 02:47 发表


我刚在vm上用imagex释放了一个没有封装的wim,如果vmware的虚拟磁盘是选择的lsi scsi的话,释放后先挂载注册表,把lsi的南桥驱动的键值修改下就可以了

lsi不是南桥,是scsi卡。

用scsi卡和raid卡的,不sysprep的话,就要手动把相关驱动设为0。而sysprep后,系统则会把一大堆驱动在第一次启动时设为start=0
作者: baosheng00    时间: 2010-5-9 00:15
XP,安装过,W7的还没有试过。
作者: q67512    时间: 2010-5-11 20:58
多谢楼主,学习了,以后买了大u盘试试
作者: green_cai    时间: 2010-5-15 08:48
这个得顶,有空要研究一下
作者: 极度凶残    时间: 2010-6-4 18:49
在硬盘上先装一个vhd启动的win7?怎么装法??
作者: wongmokin    时间: 2010-6-4 18:58
非常感谢楼主的宝贵经验, 很有参考价值, 希望有更多的测试报告,呵呵,我也心痒痒了.
作者: itdws    时间: 2010-6-5 15:15
收藏备用,如果是装在U盘上,对U盘的速度和容量可有要求了
作者: gamegm    时间: 2010-6-5 16:08
驱动 置 0 启动  结合 ewf   ,
嘿嘿 不知道 效果怎么样。
作者: fujianabc    时间: 2010-6-5 16:45
原帖由 gamegm 于 2010-6-5 16:08 发表
驱动 置 0 启动  结合 ewf   ,
嘿嘿 不知道 效果怎么样。

怎么能添加ewf?

我只试过fbwf
作者: gamegm    时间: 2010-6-5 17:48
结合 VHD启动 通用性更强

批处理 不知道 正不正确 不行的话 就自己改下

[ 本帖最后由 gamegm 于 2010-6-5 17:55 编辑 ]

ewf.rar

187.12 KB, 下载次数: 248, 下载积分: 无忧币 -2


作者: fujianabc    时间: 2010-6-5 20:27
原帖由 gamegm 于 2010-6-5 17:48 发表
结合 VHD启动 通用性更强

批处理 不知道 正不正确 不行的话 就自己改下

我有空再试一下了
作者: 江海渔生    时间: 2010-6-9 14:30
要好好学习呢,这资料有用
作者: optimist    时间: 2010-6-9 16:25
学习了!不过还要自我实践一下,多谢分享!
作者: gobye    时间: 2010-6-10 01:44
win7   作 U盘 看样子更适合 移动

  但是 老机子又 跑win7  不行  还真是挺矛盾啊
作者: 白手王    时间: 2010-6-10 05:11
看来高手很多呀。这个无忧够我学习好久的了
作者: dongfeng100    时间: 2010-6-10 07:23
终于可以发帖了,

进来学习一下!!
作者: qq272735560    时间: 2010-6-12 22:02
按LZ的方法,在移动硬盘中装上了WIN7。。可以正常通过移动硬盘起动,,,但启动到出现“正在启动WIN7”这几个字之后 要出现LOGO之前蓝屏,一闪就重启了,,怎么办?我感觉是USB没有信号过去,导致移动硬盘没有工作了,就好像关机断电后,硬盘会有一声响一样~
因为在出现“正在启动WIN7”之后也有这样一声响,然后才蓝的屏,,,,
我是用NT6直接把WIN7复到移动硬盘上的,移动硬盘我是用的台式机硬盘加一个硬盘盒,,想问fujianabc 有解决办法吗
蓝屏看不到的,一闪就重启了,


现在我换了个WIN7.GHO的文件,从百度下的,但它这个是一个超级精简的,可以安装成功,,GHO文件只有600M。我在我的电脑上左边USB接口插U盘,右边插USB移动硬盘,通过启动U盘中的PE,用GHOST直接把WIN7.GHO放入移动硬盘中,,在重启回到移动硬盘启动,,就可以了,为什么原来的不行?
我想换原版的,,要怎么做??


刚才又测式了,WIN7.GHO这个WIN7 也会响一声,,但没有蓝屏

[ 本帖最后由 qq272735560 于 2010-6-12 22:24 编辑 ]
作者: yueyezhan    时间: 2010-6-13 02:15
你先进pe或者你硬盘上正常的系统,然后离线挂载这个移动硬盘上的windows7的注册表,看一下对usb引导起作用的两个注册表的键值是否正确;
如果你本地硬盘的系统是windows7的话,用bcdedit /store离线编辑下usb上windows7的bcd,添加一个禁止重新引导的参数,这样可以得到蓝屏代码
bcdedit /store x:\boot\bcd /set {default} NOCRASHAUTOREBOOT yes
x 代表你usb上的活动分区,也就是bootmgr所在的分区的盘符
作者: lsp19880301    时间: 2010-6-13 14:08
f jol;io;uo90po
作者: weyes    时间: 2010-6-13 14:16
学习了 不错的帖子!
作者: qq272735560    时间: 2010-6-13 21:27
原帖由 yueyezhan 于 2010-6-13 02:15 发表
你先进pe或者你硬盘上正常的系统,然后离线挂载这个移动硬盘上的windows7的注册表,看一下对usb引导起作用的两个注册表的键值是否正确;
如果你本地硬盘的系统是windows7的话,用bcdedit /store离线编辑下usb上 ...


怎么个离线挂载法。。
或者要移动硬盘中的哪几个文件,我贴出来,你给我看看好、不?
头都要大了
作者: yueyezhan    时间: 2010-6-13 22:08
在本地系统打开注册表,鼠标定位到HKEY_LOCAL_MACHINE,然后在工具栏/文件的下拉菜单,选择 加载配置单元,在打开的选择框中定位到你usb硬盘的windows\system32\config\system 加载这个文件
作者: yueyezhan    时间: 2010-6-13 22:50
原帖由 qq272735560 于 2010-6-13 21:27 发表


怎么个离线挂载法。。
或者要移动硬盘中的哪几个文件,我贴出来,你给我看看好、不?
头都要大了


在你另一个帖子里看到蓝屏代码是7b,你用本地硬盘的系统启动后,把usb硬盘接上,然后在管理员权限下运行附件的bat文件
usbboot.zip (415 Bytes, 下载次数: 244)
作者: lenghai    时间: 2010-7-1 14:11
学习了.........
作者: budgerigar    时间: 2010-7-11 18:14
原帖由 <i>qq272735560</i> 于 2010-6-12 22:02 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=1973496&ptid=162499" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
按LZ的方法,在移动硬盘中装上了WIN7。。可以正常通过移动硬盘起动,,,但启动到出现“正在启动WIN7”这几个字之后 要出现LOGO之前蓝屏,一闪就重启了,,怎么办?我感觉是USB没有信号过去,导致移动硬盘没有工 ...
<br />

我的刚装也是这样,主要是因为在移动硬盘里先装的系统还没来得及加载USB驱动,所以解决的办法是先用本地硬盘来做一个VHD 的WINDOWS 7,进入系统后改变键值,再拷到移动硬盘里就可以了
作者: karlpolo    时间: 2010-7-16 16:45
我按照方法2去做了,前期用NT 6.x进行文件复制用了1.5小时,然后把U盘插在服务器上重启了,硬件扫描到23%用了3个多小时了。。。。。。我继续等,等到我睡觉。。。下次高低用方式一
ps:我的U盘写速度有点慢才12MB/s
作者: fujianabc    时间: 2010-7-16 17:23
原帖由 karlpolo 于 2010-7-16 16:45 发表
我按照方法2去做了,前期用NT 6.x进行文件复制用了1.5小时,然后把U盘插在服务器上重启了,硬件扫描到23%用了3个多小时了。。。。。。我继续等,等到我睡觉。。。下次高低用方式一
ps:我的U盘写速度有点慢才12MB/s

勇气可嘉,这u盘装完win7估计也快要报废了。

关键是u盘小文件写入超慢
作者: karlpolo    时间: 2010-7-16 21:58
。。。终于,硬件扫描结束了。。。重新启动了。。。拔了U盘,明天继续。。。10个小时啊。。。桌面还没看到呢。。。
作者: karlpolo    时间: 2010-7-28 16:02
被U盘折磨疯掉了,超级慢的。。。。只好换了个160G的移动硬盘,用方法一来做了。
建议在那三个命令前面再加一行命令:
C:\Program Files\Windows AIK\Tools\PETools\amd64\bootsect /nt60 ?:
这里的?是U盘盘符,这样才能保证方法一的第一个命令正确执行~~

[ 本帖最后由 karlpolo 于 2010-7-28 16:04 编辑 ]
作者: fujianabc    时间: 2010-7-28 19:50
楼上耐心也太好了,居然等了10个钟头。。。
u盘估计已经被你折磨坏了。

找一个SLC的u盘,时间还是可以忍受的,TLC或者垃圾的MLC估计直接就废了。
作者: karlpolo    时间: 2010-7-29 16:27
如果想让U盘上的VHD系统不用默认的C:,按照下面的方法就可以了
先执行命令
diskpart

  create vdisk file=C:\?.vhd maximum=16000 type=expandable

  select vdisk file=C:\?.vhd

  attach vdisk

  create partition primary

  assign letter=r

  format quick label=vhd

  exit

  注意:运行Diskpart需要管理员权限,下同。上面的?代表随便什么文件名,assign letter=r的r是这个VHD挂载以后在当前系统里面的盘符。

  接下来,用NT 6.X安装器灌装系统就可以了,可以自定义用vhd启动以后的系统盘符
  VHD文件制作完毕,可以运行如下命令把VHD文件离线,备用。

  diskpart

  select vdisk file=C:\?.vhd

  detach vdisk

  exit
剩下的就要按照楼主的方法一做了~~

[ 本帖最后由 karlpolo 于 2010-7-29 16:29 编辑 ]
作者: justin10    时间: 2010-7-30 11:27
哈哈这样就剩了很多空间啊!!
作者: karlpolo    时间: 2010-8-2 08:12
磁盘剩下的空间,在VHD系统内是可见的~~可以弄N个系统在移动硬盘上: )

[ 本帖最后由 karlpolo 于 2010-8-2 08:19 编辑 ]
作者: birdn    时间: 2010-8-4 19:46
我也想知道关于"在硬盘上先装一个vhd启动的win7"
具体该怎样操作才对...
哪位兄弟能给详细讲讲...感激不尽...
作者: 2010nh    时间: 2010-8-22 00:28
原帖由 birdn 于 2010-8-4 19:46 发表
我也想知道关于"在硬盘上先装一个vhd启动的win7"
具体该怎样操作才对...
哪位兄弟能给详细讲讲...感激不尽...

在网上很多这方面的资料,随便搜索一下就可以找到了。
作者: sharks    时间: 2010-8-25 18:59
谢谢楼主经验共享!我也去试试看!
作者: 2010红色指令    时间: 2010-10-5 03:58
哈哈,终于碰到你了,我在PE里见过你的名字,幸会啊
作者: 20107k7k    时间: 2010-10-12 00:35
学习一下,楼主发的帖子非常好。
作者: ql1307096    时间: 2010-10-12 09:48
在u盘上使用的话,一般都是移动使用,会在很多不同电脑上用,硬件驱动怎么解决?
作者: bootp    时间: 2010-10-14 04:36
这个非常实用,记号!
作者: walkercao    时间: 2010-10-21 09:17
多谢分享
暂时我移动硬盘的分区上还有些文件, 应该不影响安装的吧???
作者: 小施    时间: 2010-10-21 14:24
进来看帖子,仔细研究研究原理
作者: zifog00    时间: 2011-2-8 05:57
受益匪浅,第一次用安装工具安装成功之后,系统自动更新了很多东东,结果第二次又启动不了了。。。修改了注册表才搞定。。。谢谢。
作者: 2011KiD    时间: 2011-4-22 23:00
学习了,一直都很想把WIN7装到硬盘上面,这次终于可以了,感谢LZ!!
作者: djdkh    时间: 2011-4-23 16:03
学习学习
等到时候用的上
作者: 2012JoyAI    时间: 2012-5-18 21:50
请教一下fujianabc前辈:
……
方法二 (直接装到u盘):
注意:以下方法由于要直接拷贝大量文件到u盘,速度可能非常的慢。在硬件扫描阶段(specialize阶段)也会非常慢。如非必要还是用方法一
1、在u盘上建立激活主分区
2、用nt 6.x快速安装器把win7/2008 r2装到u盘上,系统分区和启动分区都选u盘盘符,usb硬盘选项选“否”
……
为什么方法二中usb硬盘选项选否?如果已经选“是”安装后,从USB移动硬盘启动时出现6B蓝屏,用“usbreg.cmd U:”之后还要做什么修改?谢谢。
作者: fujianabc    时间: 2012-5-18 23:17
原帖由 2012JoyAI 于 2012-5-18 21:50 发表
请教一下fujianabc前辈:
……
方法二 (直接装到u盘):
注意:以下方法由于要直接拷贝大量文件到u盘,速度可能非常的慢。在硬件扫描阶段(specialize阶段)也会非常慢。如非必要还是用方法一
1、在u盘上建 ...

格掉重做,选“否”
作者: 2012喝水落石出    时间: 2012-9-8 16:49
学习一下,楼主发的帖子非常好。
作者: 2012systemzhou    时间: 2012-12-1 21:39
非常感谢...................
作者: pengjun88    时间: 2013-12-9 20:02
我正需要这个 记号 记号




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