无忧启动论坛

标题: [求助]关于win7的vhd启动问题 [打印本页]

作者: zhhsh    时间: 2010-6-29 22:31
标题: [求助]关于win7的vhd启动问题
我想知道bcdboot的工作原理,看看它到底做了哪些操作

以下操作在PE1.x完成
1.我用特殊工具建立了一个固定大小的vhd,并用vdk 挂载为虚拟盘,把虚拟盘格式化为NTFS
2.用imagex /apply部署install.wim 到虚拟盘上。所选的映像为windows 7 旗舰版

一个windows 7的VHD在PE1.x下自此做完

==================================================
我想用bcdboot 虚拟盘:\windows /s 引导分区:  来完成引导处理,但未成功

随后我用chenall 的NT通用启动盘来引导VHD:
第一次:出现0x7B,自动重启
第二次:成功引导,不过出现这个:



怎样解决?

[ 本帖最后由 zhhsh 于 2010-7-1 15:11 编辑 ]
作者: yueyezhan    时间: 2010-6-30 00:59
在pe的1.x版本下,正式版的windows7(版本号是7600的rtm)的bcdboot命令不能运行,要用7000的bcdboot
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=143569&highlight=

bcdboot_v7000.zip (68.48 KB, 下载次数: 164)

如果你用这个bcdboot还不能引导的话,或许你生成vhd和windows7的diskpart建立的vhd有不同的地方
这个bcdboot大概的做的就是把bcdedit的工作给自动化了,它会从windows\boot\pcat目录下复制bootmgr到活动分区,复制pcat下的有bootmgr.exe.mui语言文件的各国语言的目录和memtest.exe到活动分区的boot目录,然后自动生成boot目录下的bcd,在生成bcd的过程中还会加入windows7特有的winre(以前的vista版本默认是没有winre)的启动项,winre的目录在%systemdrive%\recovery目录下面的一个16进制数字串(这个数字串就是bcd中recoverysequence条目对应的{id})命名的目录下,有boot.sdi和winre.wim两个文件,windows7提供了一个命令 reagentc 来配置winre,再详细的就不清楚了

[ 本帖最后由 yueyezhan 于 2010-6-30 01:24 编辑 ]
作者: zhhsh    时间: 2010-6-30 08:27
标题: 回复 #2 yueyezhan 的帖子
生成vhd和windows7的diskpart建立的vhd没有不同,只是挂载方式不同
作者: zhhsh    时间: 2010-6-30 08:38
我在PE3.0附加VHD,然后用  bcdboot 虚拟盘:\windows /s 引导分区:
成功了,为什么要附加VHD才行?非得bcdboot要访问bfsvc?

bcdboot是否动了win7内核?
作者: yueyezhan    时间: 2010-6-30 09:26
在生成bcd的过程中要从windows目录拷贝启动所需文件,在建立bcd的recoverysequence条目的时候,要把system32下的recovery目录下的winre.wim移动到分区下建立的recovery目录,还要从system32下把boot.sdi复制到winre.wim的同一个目录下,无论活动分区是不是和windows目录在不在一个分区,你用bcdboot命令的时候,它都要对windows目录进行读写操作,就要求挂载vhd指定windows目录;如果你取得windows\boot的权限,把这个boot下的pcat删除掉,bcdboot就会提示你无法建立启动文件

bcd要写到注册表,系统启动的时候也是要和硬盘id绑定的,但是不清楚是不是在bcdboot运行完就绑定了硬盘id

[ 本帖最后由 yueyezhan 于 2010-6-30 09:31 编辑 ]
作者: fujianabc    时间: 2010-6-30 10:03
原帖由 zhhsh 于 2010-6-30 08:38 发表
我在PE3.0附加VHD,然后用  bcdboot 虚拟盘:\windows /s 引导分区:
成功了,为什么要附加VHD才行?非得bcdboot要访问bfsvc?

bcdboot是否动了win7内核?

在win7/pe 3.0下用bcdboot,如果系统源在挂载的vhd上,bcdboot会自动把bcd中的device和osdevice两项设成vhd=[c:]\win7.vhd(假设win7.vhd在c:盘)的。

但在xp/vista内核下,用各种方法挂载的vhd,bcdboot是不能意识到源是否是vhd文件上,所以device和osdevice只会成为partition=e:之类的项。在xp/vista下(pe 1.x/2.x),bcdboot后,还要手动用bcdedit把device和osdevice路径设成vhd
作者: fujianabc    时间: 2010-6-30 10:04
至于chenall的软盘,以前说过,这个只能引导安装完成的nt 6.x,不能引导第一次启动时的nt 6.x,因为第一次启动时对bcd文件位置比较严格。
作者: zhhsh    时间: 2010-6-30 12:03
原帖由 fujianabc 于 2010-6-30 10:04 发表
至于chenall的软盘,以前说过,这个只能引导安装完成的nt 6.x,不能引导第一次启动时的nt 6.x,因为第一次启动时对bcd文件位置比较严格。



是否因为bcd 要储存有关磁盘的内容以致第一次0x7B?
作者: fujianabc    时间: 2010-6-30 12:06
原帖由 zhhsh 于 2010-6-30 12:03 发表



是否因为bcd 要储存有关磁盘的内容以致第一次0x7B?

应该不会0x7b吧,直接用chenall的软盘第一次启动就是出现一楼的截图。第一次启动时要求bcd必须位于激活主分区上,不能在其他分区或设备上
作者: zhhsh    时间: 2010-6-30 12:27
原帖由 fujianabc 于 2010-6-30 12:06 发表

应该不会0x7b吧,直接用chenall的软盘第一次启动就是出现一楼的截图。第一次启动时要求bcd必须位于激活主分区上,不能在其他分区或设备上


第一次这样:



第二次用chenall 的引导盘:


之后这样:

作者: zhhsh    时间: 2010-6-30 12:37
bcdboot 会不会添加磁盘信息到BCD上?
作者: yueyezhan    时间: 2010-6-30 13:54
用imagex安装后,如果第一次启动出错的话,第二次再引导就会是第三张图片的样子

nt6的启动和硬盘id有关联的,你的硬盘id(mbr签名),就是用diskpart的uniqueid disk命令看到的数字串是和注册表的HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\0\DiskController\0\DiskPeripheral\0右侧的Identifier的值的第二段关联的
作者: fujianabc    时间: 2010-6-30 15:17
原帖由 zhhsh 于 2010-6-30 12:37 发表
bcdboot 会不会添加磁盘信息到BCD上?

会的,建议不要用chenall的软盘了。

看我6楼的回复应该就能解决问题了。

另外,你的vhd文件上是怎么建立新分区的?
作者: zhhsh    时间: 2010-6-30 15:19
谢谢各位帮忙,我试试
作者: zhhsh    时间: 2010-6-30 15:24
原帖由 fujianabc 于 2010-6-30 15:17 发表

会的,建议不要用chenall的软盘了。

看我6楼的回复应该就能解决问题了。

另外,你的vhd文件上是怎么建立新分区的?


我给你一个创建带有分区的VHD工具玩玩,但它只能创建固定大小的VHD

命令如下:
  1. VHD.cmd VHD路径 VHD大小(例如25G、100M)
复制代码
里面的vdk用来挂载的

这个是用bootland上的HDDIMAGE修改而成的

[ 本帖最后由 zhhsh 于 2010-6-30 15:26 编辑 ]

VHD.rar

215.26 KB, 下载次数: 61, 下载积分: 无忧币 -2


作者: hooer    时间: 2010-6-30 16:26
标题: 加vhd到bcd菜单
注意bcd的路径。



for /f "delims={,} tokens=2" %%a in ('bcdedit /store i:\boot\bcd /create  /d "Windows 7 VHD" -application osloader') do set guid=%%a

bcdedit /store i:\boot\bcd /set {%guid%} device vhd="[G:]\WIN7\system.vhd"
bcdedit /store i:\boot\bcd /set {%guid%} path \windows\system32\winload.exe
bcdedit /store i:\boot\bcd /set {%guid%} locale zh-CN
bcdedit /store i:\boot\bcd /set {%guid%} inherit {bootloadersettings}
bcdedit /store i:\boot\bcd /set {%guid%} osdevice vhd="[G:]\WIN7\system.vhd"
bcdedit /store i:\boot\bcd /set {%guid%} systemroot \windows
bcdedit /store i:\boot\bcd /set {%guid%} nx optin
bcdedit /store i:\boot\bcd /set {%guid%} detecthal yes

bcdedit /store i:\boot\bcd /displayorder {%guid%} /addlast

bcdedit /store i:\boot\bcd /timeout 5
作者: hooer    时间: 2010-6-30 16:31
标题: 虚拟盘不必加引导
在硬盘上加引导,必须用bootmgr加载vhd文件。
作者: zhhsh    时间: 2010-6-30 16:50
bcdedit 在PE1.x运行bcdedit /store i:\boot\bcd /set {%guid%} osdevice vhd="[G:]\WIN7\system.vhd"出错
说什么不支持参数
作者: hooer    时间: 2010-6-30 17:06
标题: 回复 #18 zhhsh 的帖子
我的没问题。
我用的pe是TangoPE.iso(天使)

你把一下内容复制到一个文本文件里,改后缀为cmd文件。注意bcd文件位置还有你的vhd文件位置。记得路径下要有bcdedit.exe文件。
for /f "delims={,} tokens=2" %%a in ('bcdedit /store i:\boot\bcd /create  /d "Windows 7 VHD" -application osloader') do set guid=%%a

bcdedit /store i:\boot\bcd /set {%guid%} device vhd="[G:]\WIN7\system.vhd"
bcdedit /store i:\boot\bcd /set {%guid%} path \windows\system32\winload.exe
bcdedit /store i:\boot\bcd /set {%guid%} locale zh-CN
bcdedit /store i:\boot\bcd /set {%guid%} inherit {bootloadersettings}
bcdedit /store i:\boot\bcd /set {%guid%} osdevice vhd="[G:]\WIN7\system.vhd"
bcdedit /store i:\boot\bcd /set {%guid%} systemroot \windows
bcdedit /store i:\boot\bcd /set {%guid%} nx optin
bcdedit /store i:\boot\bcd /set {%guid%} detecthal yes

bcdedit /store i:\boot\bcd /displayorder {%guid%} /addlast

bcdedit /store i:\boot\bcd /timeout 5
作者: hooer    时间: 2010-6-30 17:10
标题: 创建vhd文件
可以用DiskGenius创建vmware虚拟磁盘
然后用StarWind Converter再转成vhd文件。
这样就可以创建动态vhd文件了。
作者: fujianabc    时间: 2010-6-30 17:47
原帖由 zhhsh 于 2010-6-30 16:50 发表
bcdedit 在PE1.x运行bcdedit /store i:\boot\bcd /set {%guid%} osdevice vhd="[G:]\WIN7\system.vhd"出错
说什么不支持参数

你用的是vista的bcdedit ?

要用nt 6.1的bcdedit才能支持vhd,另外,把引号去掉试试
作者: fujianabc    时间: 2010-6-30 17:48
原帖由 hooer 于 2010-6-30 17:10 发表
可以用DiskGenius创建vmware虚拟磁盘
然后用StarWind Converter再转成vhd文件。
这样就可以创建动态vhd文件了。

比较麻烦,等diskgenius直接支持vhd格式就方便了。
作者: zhhsh    时间: 2010-6-30 17:53
如果懂一点磁盘相关的结构就可以编写VHD分区软件
作者: zhhsh    时间: 2010-6-30 18:03
出现这样:


bcdedit版本为6.1.7600.16385
用的PE为0PE
作者: zhhsh    时间: 2010-6-30 18:13
换了PE就行了,
第一次启动出现蓝屏,为什么?

第二次没有问题了,成功安装。

fujianabc大帮忙测试一下

[ 本帖最后由 zhhsh 于 2010-6-30 18:20 编辑 ]
作者: yueyezhan    时间: 2010-6-30 18:21
原帖由 fujianabc 于 2010-6-30 17:48 发表

比较麻烦,等diskgenius直接支持vhd格式就方便了。


用winimage就可以把固定的vhd转成动态的
作者: fujianabc    时间: 2010-6-30 18:59
原帖由 zhhsh 于 2010-6-30 18:13 发表
换了PE就行了,
第一次启动出现蓝屏,为什么?

第二次没有问题了,成功安装。

fujianabc大帮忙测试一下

你用的什么pe?估计是pe本身的问题。

我之前经常在xp/vista下用vhdtool创建vhd,vhdmount挂载,diskpart分区格式化vhd。然后imagex+bcdboot再bcdedit修改osdevice和device
作者: zhhsh    时间: 2010-6-30 22:17
你可能看错意思,我是指

第一次启动VHD出现0x7B蓝屏
第二次启动VHD成功,完成安装

我唯一不明白为什么第一次启动VHD出现0x7B蓝屏
是不是一定用bcdboot 对VHD里的系统进行处理

请fujianabc 用我前面发的工具来测试一下

[ 本帖最后由 zhhsh 于 2010-6-30 22:22 编辑 ]
作者: zhhsh    时间: 2010-6-30 22:20
我看bcdboot 应该没有什么操作
BCDboot 命令行选项
BCDboot 是一种用于快速设置系统分区或修复系统分区上的启动环境的工具。系统分区是通过从已安装的 Windows(R) 映像复制一小部分启动环境文件来设置的。BCDboot 还会在系统分区上创建引导配置数据 (BCD) 存储,该存储中包含一个新的引导项,可让您引导到已安装的 Windows 映像。
可以从 Windows(R) PE 运行 BCDboot。有关 Windows PE 的信息,请参阅 Windows PE 操作实例
BCDboot 包含在 Windows&reg; 7 和 Windows Server&reg; 2008 R2 的 %WINDIR%\System32 文件夹内。Windows OEM 预安装工具包 (OPK) 和 Windows 自动安装工具包 (AIK) 也提供了 BCDboot,位置在 %Program Files%\<version>\Tools 目录下,其中 <version> 是 Windows OPK 或 Windows AIK。
BCDboot 从计算机上已有的 Windows 映像复制一套启动环境文件。BCDboot 可以从 Windows Vista&reg;、Windows Server&reg; 2008、Windows 7 或 Windows Server 2008 R2 的映像复制启动环境文件。有关将 Windows 映像应用于系统的信息,请参阅捕获和应用 Windows 映像
BCDboot 使用 %WINDIR%\System32\Config\BCD-Template 文件在系统分区上创建新的 BCD 存储并初始化 BCD 启动环境文件。可以在 BCD-Template 文件中定义特定的 BCD 设置。该工具还将最新版本的启动环境文件从操作系统映像 %WINDIR%\boot 文件夹和 %WINDIR%\System32 文件夹复制到系统分区中。
BCDboot 将文件复制到固件所标识的默认系统分区。您可以使用分区工具(例如 DiskPart)创建此分区。不必为了便于 BCDboot 查找而指定此分区的驱动器号。有关详细信息,请从命令行参阅 DiskPart 帮助,或访问 Diskpart 命令行语法(可能为英文网页)
BCDboot 可以将现有的启动环境更新到系统分区。Windows 映像中较新的文件版本会复制到系统分区中。
如果系统分区中已存在 BCD 存储,则:
BCDboot 命令行选项下列命令行选项可用于 BCDboot.exe。
BCDBOOT source [/l locale] [/s volume-letter] [/v] [/m [{OS Loader GUID}]]
选项描述source
指定作为源的 Windows 目录的位置,将从该目录中复制启动环境文件。
/l
可选。指定区域设置。默认值为美国英语。
/s
可选。指定系统分区的卷号。默认值是固件所标识的系统分区。
/v
可选。启用详细模式。
/m
可选。默认情况下,仅合并全局对象。
如果指定了 OS Loader GUID,则合并系统模板中给定的加载程序对象以生成可启动项。

示例


作者: yueyezhan    时间: 2010-6-30 22:52
原帖由 zhhsh 于 2010-6-30 22:17 发表
你可能看错意思,我是指

第一次启动VHD出现0x7B蓝屏
第二次启动VHD成功,完成安装

我唯一不明白为什么第一次启动VHD出现0x7B蓝屏
是不是一定用bcdboot 对VHD里的系统进行处理

请fujianabc 用我前面发 ...


不是必须要用bcdboot,你用bcdedit来手动生成bcd也是一样的,只是在device和osdevice条目中要是用vhd=[driver:]\ ,不过别的工具就没有试过了
作者: hooer    时间: 2010-7-1 09:02
标题: 回复 #24 zhhsh 的帖子
vhd="[C:]\WIN7.vhd"


应该加双引号。
作者: zhhsh    时间: 2010-7-2 12:52
我想bcdboot 可能修改了win7内核
作者: hooer    时间: 2010-7-2 15:48
标题: 回复 #32 zhhsh 的帖子
其实根本用不着bcdboot



你可以把vhd盘中的bootmgr文件和boot文件夹复制到你的c盘(启动盘)。
然后用bcdedit编辑bcd菜单。

用bootsect写入引导
bootsect /nt60 c: /mbr


用bcdedit把vhd启动菜单加进去。
用bcdedit把bcd不用菜单删除。

这样就ok了。

bcdboot根本不可能改变内核。
作者: fujianabc    时间: 2010-7-2 15:51
原帖由 zhhsh 于 2010-7-2 12:52 发表
我想bcdboot 可能修改了win7内核

bcdboot仅仅是拷贝了启动文件,然后生成bcd菜单而已,没有其它操作
作者: hooer    时间: 2010-7-2 15:55
标题: 看看我的bcdedit执行后结果,4个vhd启动,一个grub4dos
其中一个win7(32),两个是前一个的分差vhd,一个win7(64)




Windows 启动管理器

--------------------
标识符                  {bootmgr}
device                  partition=I:
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {7ba65512-63ca-11df-88ff-b657407c5eb2}
displayorder            {current}
                        {7f93378c-7f37-11df-8d5f-db13e0a1d0ab}
                        {c6f539b8-80ce-11df-9951-4487fc4c5774}
                        {c5a6e0c2-8299-11df-8e90-4487fc4c5774}
                        {a1f8c86f-83f5-11df-ac66-4487fc4c5774}
toolsdisplayorder       {memdiag}
timeout                 5

Windows 启动加载器
-------------------
标识符                  {current}
device                  vhd=[G:]\WIN7\systemA.vhd
path                    \windows\system32\winload.exe
description             Windows 7 VHDA
locale                  zh-CN
inherit                 {bootloadersettings}
osdevice                vhd=[G:]\WIN7\systemA.vhd
systemroot              \windows
resumeobject            {12facad6-7f3b-11df-9a41-806e6f6e6963}
nx                      OptIn
detecthal               Yes

Windows 启动加载器
-------------------
标识符                  {7f93378c-7f37-11df-8d5f-db13e0a1d0ab}
device                  vhd=[G:]\WIN7\systemB.vhd
path                    \windows\system32\winload.exe
description             Windows 7 VHDB
locale                  zh-CN
inherit                 {bootloadersettings}
osdevice                vhd=[G:]\WIN7\systemB.vhd
systemroot              \windows
nx                      OptIn
detecthal               Yes

实模式启动扇区
---------------------
标识符                  {c6f539b8-80ce-11df-9951-4487fc4c5774}
device                  boot
path                    \grldr.mbr
description             GRUB4DOS菜单
locale                  zh-CN

Windows 启动加载器
-------------------
标识符                  {c5a6e0c2-8299-11df-8e90-4487fc4c5774}
device                  vhd=[G:]\WIN7\system.vhd
path                    \windows\system32\winload.exe
description             Windows 7 VHD
locale                  zh-CN
inherit                 {bootloadersettings}
osdevice                vhd=[G:]\WIN7\system.vhd
systemroot              \windows
resumeobject            {f42d68d6-8299-11df-8c01-806e6f6e6963}
nx                      OptIn
detecthal               Yes

Windows 启动加载器
-------------------
标识符                  {a1f8c86f-83f5-11df-ac66-4487fc4c5774}
device                  vhd=[G:]\WIN7\Win7Ult64.vhd
path                    \windows\system32\winload.exe
description             Windows 7 VHD(64)
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {85f72919-83f7-11df-9368-4487fc4c5774}
recoveryenabled         Yes
osdevice                vhd=[G:]\WIN7\Win7Ult64.vhd
systemroot              \windows
resumeobject            {63ae687d-83f6-11df-8980-806e6f6e6963}
nx                      OptIn

[ 本帖最后由 hooer 于 2010-7-2 15:57 编辑 ]
作者: zhhsh    时间: 2010-7-2 16:03
标题: 回复 #34 fujianabc 的帖子
可是bcdboot 处理过vhd第一次启动没有0x7B蓝屏,但没有处理就有第一次启动没有0x7B蓝屏
作者: hooer    时间: 2010-7-2 16:10
标题: 回复 #36 zhhsh 的帖子
干吗要用bcdboot处理vhd啊。

我都是用 WIM2VHD

cscript wim2vhd.wsf /wim:i:\sources\install.wim /sku:ultimate /vhd:g:\win7\Win7Ult.vhd

然后用bcdedit把vhd加到bcd菜单就ok了。

很简单。
作者: hooer    时间: 2010-7-2 16:15
标题: 要是在pe1.x下,创建vhd的话
用WinMount挂载,然把install.wim解压到虚拟盘中就ok了

然后用然后用bcdedit把vhd加到bcd菜单就ok了。
作者: huaqingyuan    时间: 2010-7-4 17:49
无法将 WINDOWS 配置为在此计算机的硬件上的问题.不是启动配置不正确,而是WIN7在安装的时候还要配置一次启动然后遇到了问题!,这个问题出现在直接将WIN7在安装VHD的时候出现得比较多.

解决的办法是使用WIN7PE引导,然后备份C盘的BOOT目录还有C盘根目录BOOTMGR文件,
在把C盘的BOOT目录还有C盘根BOOTMGR文件删除,然后WIN7PE挂VHD,将系统直接安装到VHD!
作者: hooer    时间: 2010-7-7 17:23
标题: 实验证明,跟bcdboot没关系。
不管是用imagex /apply部署install.wim  还是用其他方法。
都需要把vhd文件真正挂载。其他工具看来不行。

看来必须在pe3.0下才可以。除非把vhd驱动移植到pe1.x下才可。
目前还没有移植完美的vhd驱动。
作者: yueyezhan    时间: 2010-7-8 13:26
原帖由 hooer 于 2010-7-7 17:23 发表
不管是用imagex /apply部署install.wim  还是用其他方法。
都需要把vhd文件真正挂载。其他工具看来不行。

看来必须在pe3.0下才可以。除非把vhd驱动移植到pe1.x下才可。
目前还没有移植完美的vhd驱动。


用fujianabc所提到的vhdtool和vhdmount来建立和挂载没有问题
作者: hooer    时间: 2010-7-8 17:31
标题: 回复 #41 yueyezhan 的帖子
挂载是没问题。 装win7的最后一步可能要往虚拟盘的引导区写东西。
用其他方式挂载是无法写入的。
作者: hooer    时间: 2010-7-8 18:56
标题: 回复 #41 yueyezhan 的帖子
刚才又做了实验,在本机上生成并启动正常的vhd文件,移植到另一台计算机无法启动。

看来装win7最后操作改写了虚拟盘内容写入本机信息。
作者: yueyezhan    时间: 2010-7-8 19:18
原帖由 hooer 于 2010-7-8 18:56 发表
刚才又做了实验,在本机上生成并启动正常的vhd文件,移植到另一台计算机无法启动。

看来装win7最后操作改写了虚拟盘内容写入本机信息。



我在xp下用vhdtool建立vhd后用vhdmount挂载,然后用bcdboot(windows7 7000版本的),启动没有任何问题,但是用bcdedit自己手动建立bcd就有问题,bcdboot命令在建立bcd,复制文件的过程中肯定是做了一些和别的引导不同初始化引导环境的操作,不像aik中说的那样只是简单的复制文件后建立bcd

至于你移动vhd到另一台机器不成功,不知道提示是什么?你移动vhd到另一个计算机后,有没有重新用bcdboot配置这个vhd?
作者: fujianabc    时间: 2010-7-9 10:15
必须用bcdboot建立bcd,bcdedit手动生成的是不行的,会出现"无法配置在此计算机硬件上运行",详细请见
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=163167

其中13楼指明了这两者之间有一个区别就是system=1。bcdedit无法添加这么一项
作者: fujianabc    时间: 2010-7-9 10:18
原帖由 hooer 于 2010-7-7 17:23 发表
不管是用imagex /apply部署install.wim  还是用其他方法。
都需要把vhd文件真正挂载。其他工具看来不行。

看来必须在pe3.0下才可以。除非把vhd驱动移植到pe1.x下才可。
目前还没有移植完美的vhd驱动。

vhdmount肯定没问题,我在xp/vista下用过无数次了。
其实win7/pe 3.0中vhd挂载功能就是vhdmount的后续版本。

至于其他工具,就不能确定了。winmount有人报过错。
作者: fujianabc    时间: 2010-7-9 10:19
原帖由 hooer 于 2010-7-8 17:31 发表
挂载是没问题。 装win7的最后一步可能要往虚拟盘的引导区写东西。
用其他方式挂载是无法写入的。

bcdboot就是拷贝启动文件,生成bcd菜单,不写引导扇区的。

唯一神秘的就是上面所说的system=1
作者: hooer    时间: 2010-7-9 10:35
标题: 回复 #47 fujianabc 的帖子
谢谢,今天又试了一下。
在win7(32)下用bcdedit编辑bcd加vhd启动正常,win7(64)下用bcdedit编辑bcd加vhd启动不正常。

晕死了。同一个bcd文件。
作者: hooer    时间: 2010-7-9 10:54
标题: 回复 #47 fujianabc 的帖子
还是有问题,无法启动
在另一台计算机上bcd内容system=1
这个bcd是下载http://bbs.wuyou.net/forum.php?mod=viewthread&tid=163167链接中的
BCD_OK_BAK.rar文件,内容是后加的。


Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=C:
description             Windows Boot Manager
locale                  zh-CN
default                 {ntldr}
displayorder            {ntldr}
                        {a08afb24-8b02-11df-a589-00115b95edbb}
timeout                 10

Windows Boot Loader
-------------------
identifier              {a08afb24-8b02-11df-a589-00115b95edbb}
device                  vhd=[E:]\win7\Win7Ult32.vhd
path                    \windows\system32\winload.exe
description             Windows 7 VHD32
locale                  zh-CN
inherit                 {bootloadersettings}
osdevice                vhd=[E:]\win7\Win7Ult32.vhd
systemroot              \windows
resumeobject            {0d5eb108-8b04-11df-b417-806e6f6e6963}
nx                      OptIn
detecthal               Yes


内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\aaaa]

[HKEY_LOCAL_MACHINE\aaaa\Description]
"KeyName"="BCD00000000"
"System"=dword:00000001
"TreatAsSystem"=dword:00000001

[HKEY_LOCAL_MACHINE\aaaa\Objects]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Description]
"Type"=dword:10200004

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\11000001]
"Element"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,00,00,00,\
  00,00,00,d6,00,00,00,00,00,00,00,00,00,00,00,02,00,00,12,1e,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,b8,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,90,00,\
  00,00,00,00,00,00,05,00,00,00,01,00,00,00,7c,00,00,00,05,00,00,00,06,00,00,\
  00,00,00,00,00,48,00,00,00,00,00,00,00,00,fc,f5,7f,0c,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,01,00,00,00,c6,bf,c6,bf,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,5c,00,77,00,69,00,\
  6e,00,37,00,5c,00,57,00,69,00,6e,00,37,00,55,00,6c,00,74,00,33,00,32,00,2e,\
  00,76,00,68,00,64,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\12000002]
"Element"="\\windows\\system32\\winresume.exe"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\12000004]
"Element"="Windows 7 VHD32"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\12000005]
"Element"="zh-CN"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\14000006]
"Element"=hex(7):7b,00,31,00,61,00,66,00,61,00,39,00,63,00,34,00,39,00,2d,00,\
  31,00,36,00,61,00,62,00,2d,00,34,00,61,00,35,00,63,00,2d,00,39,00,30,00,31,\
  00,62,00,2d,00,32,00,31,00,32,00,38,00,30,00,32,00,64,00,61,00,39,00,34,00,\
  36,00,30,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\21000001]
"Element"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,\
  00,00,00,c8,00,00,00,00,00,00,00,00,00,10,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,06,00,00,00,01,00,00,00,8d,33,5d,f7,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,90,00,00,00,00,00,00,00,05,00,00,00,01,00,00,00,\
  7c,00,00,00,05,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,00,\
  fc,f5,7f,0c,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,c6,bf,\
  c6,bf,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,5c,00,77,00,69,00,6e,00,37,00,5c,00,57,00,69,00,6e,00,37,00,\
  55,00,6c,00,74,00,33,00,32,00,2e,00,76,00,68,00,64,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\22000002]
"Element"="\\hiberfil.sys"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\26000004]
"Element"=hex:00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{0d5eb108-8b04-11df-b417-806e6f6e6963}\Elements\26000006]
"Element"=hex:00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{466f5a88-0af2-4f76-9038-095b170dc21c}]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{466f5a88-0af2-4f76-9038-095b170dc21c}\Description]
"Type"=dword:10300006

[HKEY_LOCAL_MACHINE\aaaa\Objects\{466f5a88-0af2-4f76-9038-095b170dc21c}\Elements]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{466f5a88-0af2-4f76-9038-095b170dc21c}\Elements\11000001]
"Element"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,\
  00,00,00,48,00,00,00,00,00,00,00,00,7e,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,01,00,00,00,c6,bf,c6,bf,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{466f5a88-0af2-4f76-9038-095b170dc21c}\Elements\12000002]
"Element"="\\ntldr"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{466f5a88-0af2-4f76-9038-095b170dc21c}\Elements\12000004]
"Element"="Windows NT"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Description]
"Type"=dword:10100002

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\11000001]
"Element"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,\
  00,00,00,48,00,00,00,00,00,00,00,00,7e,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,01,00,00,00,c6,bf,c6,bf,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\12000004]
"Element"="Windows Boot Manager"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\12000005]
"Element"="zh-CN"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\23000003]
"Element"="{466f5a88-0af2-4f76-9038-095b170dc21c}"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\24000001]
"Element"=hex(7):7b,00,34,00,36,00,36,00,66,00,35,00,61,00,38,00,38,00,2d,00,\
  30,00,61,00,66,00,32,00,2d,00,34,00,66,00,37,00,36,00,2d,00,39,00,30,00,33,\
  00,38,00,2d,00,30,00,39,00,35,00,62,00,31,00,37,00,30,00,64,00,63,00,32,00,\
  31,00,63,00,7d,00,00,00,7b,00,61,00,30,00,38,00,61,00,66,00,62,00,32,00,34,\
  00,2d,00,38,00,62,00,30,00,32,00,2d,00,31,00,31,00,64,00,66,00,2d,00,61,00,\
  35,00,38,00,39,00,2d,00,30,00,30,00,31,00,31,00,35,00,62,00,39,00,35,00,65,\
  00,64,00,62,00,62,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\25000004]
"Element"=hex:0a,00,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Description]
"Type"=dword:10200003

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements]

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\11000001]
"Element"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,00,00,00,\
  00,00,00,d6,00,00,00,00,00,00,00,00,00,00,00,02,00,00,12,1e,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,b8,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,90,00,\
  00,00,00,00,00,00,05,00,00,00,01,00,00,00,7c,00,00,00,05,00,00,00,06,00,00,\
  00,00,00,00,00,48,00,00,00,00,00,00,00,00,fc,f5,7f,0c,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,01,00,00,00,c6,bf,c6,bf,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,5c,00,77,00,69,00,\
  6e,00,37,00,5c,00,57,00,69,00,6e,00,37,00,55,00,6c,00,74,00,33,00,32,00,2e,\
  00,76,00,68,00,64,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\12000002]
"Element"="\\windows\\system32\\winload.exe"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\12000004]
"Element"="Windows 7 VHD32"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\12000005]
"Element"="zh-CN"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\14000006]
"Element"=hex(7):7b,00,36,00,65,00,66,00,62,00,35,00,32,00,62,00,66,00,2d,00,\
  31,00,37,00,36,00,36,00,2d,00,34,00,31,00,64,00,62,00,2d,00,61,00,36,00,62,\
  00,33,00,2d,00,30,00,65,00,65,00,35,00,65,00,66,00,66,00,37,00,32,00,62,00,\
  64,00,37,00,7d,00,00,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\21000001]
"Element"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,00,00,00,\
  00,00,00,d6,00,00,00,00,00,00,00,00,00,00,00,02,00,00,22,1e,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,b8,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,90,00,\
  00,00,00,00,00,00,05,00,00,00,01,00,00,00,7c,00,00,00,05,00,00,00,06,00,00,\
  00,00,00,00,00,48,00,00,00,00,00,00,00,00,fc,f5,7f,0c,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,01,00,00,00,c6,bf,c6,bf,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,5c,00,77,00,69,00,\
  6e,00,37,00,5c,00,57,00,69,00,6e,00,37,00,55,00,6c,00,74,00,33,00,32,00,2e,\
  00,76,00,68,00,64,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\22000002]
"Element"="\\windows"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\23000003]
"Element"="{0d5eb108-8b04-11df-b417-806e6f6e6963}"

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\25000020]
"Element"=hex:00,00,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\aaaa\Objects\{a08afb24-8b02-11df-a589-00115b95edbb}\Elements\26000010]
"Element"=hex:01

[ 本帖最后由 hooer 于 2010-7-9 11:13 编辑 ]
作者: zhhsh    时间: 2010-7-9 11:56
我都用过BCD_OK_BAK,安装成功。
我现在主要遇到的问题是:
第一次启动VHD出现0x7B蓝屏
第二次启动VHD成功,完成安装

我唯一不明白为什么第一次启动VHD出现0x7B蓝屏
作者: hooer    时间: 2010-7-9 13:20
标题: 成功了,自己建的bcd文件
加了
"System"=dword:00000001
"TreatAsSystem"=dword:00000001

两项,不清楚原理。

附件为我建的bcd文件,语言为zh-cn,等待时间为10秒。

[ 本帖最后由 hooer 于 2010-7-9 14:42 编辑 ]

bcdnull.rar

1010 Bytes, 下载次数: 65, 下载积分: 无忧币 -2


作者: hooer    时间: 2010-7-10 17:51
标题: 今天试了一下,在pe1.x下建立win7的vhd文件的另类方法。
第一步、用DiskGenius建立img硬盘映像(注意不是分区映像)。,大小自己定(硬盘空间足够大),激活并格式化。


第二步(可以省略)、用bootice把建立的img映像文件加上mbr()和pbr

第三步、用imdisk挂载(可写)img文件

第四步、将win7的install.wim文件释放到挂载盘(具体方法很多),然后卸载img文件

第五步、用StarWindConverter将img转为vhd文件(注意选择growable,这样才是动态vhd)
作者: qj_tzy    时间: 2010-7-21 09:44
标题: 回复 #52 hooer 的帖子
看了大侠的贴子,我知道大侠您已完全搞清楚了,我前段时间写了脚本未成功,看了大侠的贴子后,尚不明白,想恳请大侠您写一个详细的贴子发出,借我等研读,若如此,将不胜感激!
作者: 小豪diao    时间: 2011-9-27 16:57
标题: 回复 #2 yueyezhan 的帖子
我想请问下,如果原本存在bootmgr和BCD文件,它是覆盖掉还是追加启动上去?
作者: 小豪diao    时间: 2011-9-27 17:10
好吧,表示上周在XP上挂着win7-vhd和WDP-vhd都是遇到与楼主一模一样的错误。

引导用nt60了,vhd自己用bcdedit挂上去的

后来解决方法是通过错误的时候用shift+F10调出CMD,oobe跳过验证就可以安装了,

win7-vhd和WDP-vhd都是用这个方法。

其实至今不知道为什么在XP下引导vhd会出现那个错误……
作者: nerdpal    时间: 2015-8-21 17:15
yueyezhan 发表于 2010-6-30 00:59
在pe的1.x版本下,正式版的windows7(版本号是7600的rtm)的bcdboot命令不能运行,要用7000的bcdboot
http:/ ...

误操作点了'反对'(想点鼠标切换焦点时误点了), 没找到取消的方法, 抱歉




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