无忧启动论坛

标题: 最新技术!从VHD文件启动WinPE 3.0 [打印本页]

作者: fujianabc    时间: 2009-1-29 16:22
标题: 最新技术!从VHD文件启动WinPE 3.0
最近微软新出的win 7/2008 r2 beta支持从VHD文件启动系统。这样以后分区都不需要了,直接vhd虚拟分区;还能从差分vhd启动,可以直接可以替代还原卡、EWF、影子系统了。以后可以像用虚拟机一样用真实系统了。

可见:
http://winsystem.ctocio.com.cn/tips/202/8682202.shtml
说明了如何直接把系统安装到VHD文件
http://blogs.technet.com/fyu/archive/2009/01/21/windows-7-virtual-hard-disk-vhd.aspx
这个博客里有详细的vhd启动介绍。

下面我来介绍一下从VHD文件启动WinPE 3.0的方法:

1、用win7/winpe 3.0的磁盘管理器/diskpart或者vpc 2007创建一个vhd文件,固定容量或动态扩展的皆可,假设为c:\winpe.vhd
2、挂载此vhd,并创建新分区
3、把win7光盘中的boot.wim解压到vhd分区中,然后卸载vhd文件
4、用win 7/winpe 3.0的bcdedit执行下列命令(win7的bcdedit可以在xp/vista下运行)
bcdedit -create /d "vhdpe" -application osloader    (返回一个<GUID>)
bcdedit -set <GUID> device vhd=[c:]\winpe.vhd
bcdedit -set <GUID> osdevice vhd=[c:]\winpe.vhd
bcdedit -set <GUID> path \windows\system32\boot\winload.exe
bcdedit -set <GUID> systemroot \windows
bcdedit -set <GUID> winpe yes
bcdedit -set <GUID> detecthal yes
bcdedit -displayorder <GUID> -addlast

[ 本帖最后由 fujianabc 于 2009-1-30 06:23 编辑 ]
作者: lyra    时间: 2009-1-29 16:38
刚刚出来的东西,保持观望,等有了一系列成熟的方案之后才考虑了。
作者: UID    时间: 2009-1-29 23:36
观望,不要急着进去
作者: rongw    时间: 2009-1-30 00:13
有没windwos pe3.0的aik包呢?
作者: 爱琴海的忧郁    时间: 2009-1-30 00:16
真快,都3.0了,,,呵呵,,
作者: fujianabc    时间: 2009-1-30 00:35
原帖由 rongw 于 2009-1-30 00:13 发表
有没windwos pe3.0的aik包呢?

在此
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=135874

另外,搞vhd启动不需要waik,所有工具win 7光盘里都有了,顶多再去找个vpc 2007
作者: yichya    时间: 2009-1-30 10:37
可VHD找什么东西挂载去?
作者: fujianabc    时间: 2009-1-30 16:36
原帖由 yichya 于 2009-1-30 10:37 发表
可VHD找什么东西挂载去?

xp/vista下用vhdmount或者winmount,如果是固定容量的vhd,winimage也能挂

在win7/2008 r2/winpe 3.0下,直接用内建的磁盘管理器/diskpart挂载

[ 本帖最后由 fujianabc 于 2009-1-30 16:38 编辑 ]
作者: 66369    时间: 2009-1-30 17:36
期待中...LZ可推荐几款成熟的...给学习.
作者: wxb    时间: 2009-1-30 18:28
PE 3.0 只有一个 WIM 文件+启动所需文件
如果把这个PE装进 VHD的话,变成了VHD文件+启动所需文件
只是把WIM换成了VHD而已,不知有没有好处
本来这个VHD用来装系统还可以一试,因为整个系统不是一个文件
但是对于只有一个文件的PE来说,再把这个文件装进VHD我估计没意义了
作者: tzxinqing    时间: 2009-1-30 20:52
新技术,可惜我没看懂,用vpc加载的虚拟机硬盘文件?
作者: wuyouaaa    时间: 2009-2-3 18:27
深入研究Windows 7中的Virtual Hard Disk (VHD) 技术                  发表了Windows 7对VHD文件的内建支持从VHD文件启动计算机这两篇博客后,陆续收到不少技术爱好者的电子邮件询问这些功能的细节、技术实现和应用场景。在做了一些功课之后,我整理汇总了这篇文章,详细全面的讨论一下Windows 7中VHD文件支持。
  下面的一些信息和测试步骤都是根据Windows 7  Build 6801和Beta1的,这篇文章发表于2009年1月22日。如果您看到这篇文章的时间比较晚了,可能有些具体的细节会随着Windows7的进一步开发而发生变化,敬请留意!欢迎大家转载这篇文章,但请保证文章的完整性,并注明出处,谢谢!
  理解VHD格式  绝大多数人最初接触VHD格式的文件,是在使用Virtual PC或者Virtual Server时,VHD是以文件形式存在的虚拟机的磁盘。微软在2005年公开了VHD格式文件的全部细节,可以从微软的TechNet网站下载Virtual Hard Disk Image Format Specification。这说明了微软不仅仅要把VHD应用在虚拟机领域,更希望VHD能够成为一种新的磁盘格式和载体在业界得到更多的支持。
  让我们抛开虚拟机,把目光集中在VHD文件本身。VHD是一块虚拟的硬盘,不同于传统硬盘的盘片、磁头和磁道,VHD硬盘的载体是文件系统上的一个VHD文件。如果大家仔细阅读VHD文件的技术标准,就会发现标准中定义了很多Cylinder、Heads和Sectors等硬盘特有的术语,来模拟针对硬盘的I/O操作。既然VHD是一块硬盘,那么就可以跟物理硬盘一样,进行分区、格式化、读写等操作。
  我们这可以这样认为,VHD也是硬盘的一种,就像2.5寸、3.5寸、SCSI、SATA、IDE等不同规格的硬盘一样,VHD是在一个文件中的硬盘
  Windows 7支持VHD的技术实现方式  在讨论具体的技术实现方式之前,我们首先需要理解操作系统对磁盘和文件的管理。操作系统有磁盘系统和文件系统两部分,分别处理对硬盘的I/O读写指令(磁盘系统),和管理硬盘之上的分区、数据和文件格式(文件系统)。VHD是存在于文件之上的磁盘,可想而知它的技术实现必须横跨磁盘系统和文件系统这两部分。如果您对操作系统中这一部分不是非常的了解,可以听一听微软网站上的Windows存储技术系列Webcast
  简单的说,要把VHD文件当作硬盘一样读写,必须有相应的驱动程序。在Virtual PC和Virtual Server中,微软就是通过在虚拟机种加入VHD的驱动程序,使得虚拟机可以从VHD启动并进行后续的操作。
  在Windows 7中,微软把VHD的驱动内置进了操作系统,也包括在了Windows 7的引导程序中。这也就是说,我们可在使用Windows7的时候,直接访问VHD文件中的内容(把VHD的硬盘映射到一个盘符,后面会详细描述),也可以通过Windows7的引导程序,启动位于VHD磁盘上的另一个操作系统。理解VHD驱动的工作细节,需要比较多的Windows底层知识,下图是一个比较简单和抽象的结构,可以发现,VHD的驱动是跟磁盘驱动和文件系统紧密结合的。
  
  眼花缭乱的VHD应用  既然在Windows 7中可以对VHD直接读写,让我们来看看这个强大的功能到底能有多少过人之处。
  首先,我们可以用命令行工具Diskpart创建VHD文件!(是的,命令行工具,你可能已经想到了自动化批处理和批量部署可以用到这个技术,没错,网管说:要硬盘,于是,大量的VHD就被创建出来了… )
        1:  diskpart     2:  create vdisk file=c:\windows7.vhd maximum=25600 type=fixed     3:  select vdisk file=c:\windows7.vhd     4:  attach vdisk     5:  create partition primary     6:  assign letter=r     7:  format quick label=vhd     8:  exit
上面这段命令,创建了一个固定尺寸的VHD文件,并且进行了分区、分配盘符和格式化,一气呵成。Diskpart还能做很多事情,具体参数,请参考这个文档,如果你不喜欢命令行,那么Windows 7的磁盘管理工具,一样可以完成上述操作。现在我们看看VHD在Windows 7中直接访问的几种方法:
         
         
         
方法一:如右图,Foo.VHD文件中可以包含一个以上的磁盘分区,这些分区都可以映射到Windows操作系统中,可以为之分配盘符,也可以映射到一个NTFS的目录。
         
         
         
         
方法二:如右图,VHD的磁盘中可以包含VHD文件,这个VHD文件还可以被映射到操作系统中,目前版本的Windows支持2层嵌套VHD。(我实在想不出有什么实际的用处,据说这个功能可能会在正式版中被去掉,以免把用户搞糊涂)           
         
         
         
         
方法三:如果你还没有被上面的嵌套VHD搞糊涂的话,让我们继续看右图。还记得VHD文件的差异磁盘功能吧?Bar.VHD在嵌套的基础上,使用物理C盘上的BarParent.VHD做成了一个差异磁盘。           
         
其实这种方法还是挺实用的,不考虑嵌套,Foo.VHD可以使用BarParent.VHD做差异磁盘,如果这样的话,从Foo.VHD启动计算机,每次用完都通过批处理自动销毁,硬盘保护卡的市场,恐怕从此要消失了。。。           
         
         
         
         
         
         
方法四:如右图,我们可以把网络共享里面的VHD文件,映射到系统中来。这个功能,结合上面的那个差异磁盘,对,小硬盘学生机,都不用硬盘保护卡勒!
这些功能的确令人眼花缭乱,我们冷静一下,看看VHD有什么局限性和功能上的限制:
从VHD启动计算机如果说你对在Windows 7中映射和使用VHD文件无动于衷,那么,我相信从VHD启动计算机一定会抓住你的眼球。
我之前提到了,在Windows 7中,微软把VHD的驱动内置进了操作系统,也包括在了Windows 7的引导程序中。这也就是说,在启动计算机的阶段,Windows 7的引导程序可以大摇大摆的直接访问VHD文件,并且启动VHD中安装的系统。
慢着,什么是Windows 7的引导程序?简单地说,引导程序就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备(加载必要的驱动程序)、建立内存映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。我们在裸机上安装Windows 7时,首先做的,就是把Windows7的引导程序写入磁盘的特殊位置。Windows 7的引导程序带有VHD驱动,因此可以从VHD启动。
要完成从VHD启动计算机,需要以下几个步骤:
你必须得让VHD中有一个操作系统先。有几种办法,可以用Virtual PC或者VirtualServer安装一个操作系统在VHD文件中,然后运行Sysprep,接着关闭虚拟机,这个VHD文件就可以用了。运行Sysprep是必须的,否则VHD下次启动时,仍旧加载虚拟机环境下的驱动程序,会导致蓝屏。
如果你想玩一个高级的,可以使用ImageX命令,把Vista的镜像,或者其它的磁盘镜像直接灌入VHD文件,下面是一个具体的演示。这些命令把Vista镜像灌入一个VHD,并且使用WinPE在物理机的磁盘上载入Windows 7的引导程序,用Windows7引导程序启动硬盘上的VHD文件,注意:物理机本身没有安装Windows 7!
1. 用Diskpart创建VHD这里就不在赘述了,前面一段有这些命令。接着前面的一段命令,我们首先使用ImageX把一个操作系统的镜像,灌入VHD文件。WIM格式文件是Vista及以后版本Windows的安装镜像,在安装DVD中可以找到。
cd \d "c:\program files\<version>\tools\<architecture>\"
imagex /apply <wim文件的路径> 1 r:\2. WIM镜像被灌入VHD之后,使用Diskpart把VHD文件从当前的系统中卸载。
diskpart
select vdisk file=c:\windows7.vhd
detach vdisk
exit3. 把这个准备好的VHD文件放到一个网络共享中备用。
net use y: \\network_share\
copy c:\windows7.vhd y:\network_share\vhd\4. 使用Windows 7版本的WinPE光盘启动你的试验计算机,并运行如下命令把当前磁盘上的分区和数据清空。(注意,此操作会导致无法挽回的数据丢失,请一定要备份数据先)
diskpart
sel disk 0
clean5. 接下来用Diskpart创建两个分区,分别是200M的S盘和默认剩余硬盘空间尺寸的C盘。S也成为系统分区,用于保存Windows 7的引导程序和相应必须的一些文件。然后把刚才放到网络共享的VHD文件,复制到C盘的根目录。
create partition primary size=200
format quick fs=ntfs
assign letter=s
active
create partition primary
format quick fs=ntfs
assign letter=c
exit6. 用Diskpart命令加载VHD到当前的WinPE环境下,访问VHD中的WindowsSystem32目录,并执行bcdboot命令完成启动所必需的初始化配置。bcdboot这个命令很神气,文档中的具体描述是:Use theBCDboot tool, located in the \System32 directory of the Windows 7 VHD,to copy the boot-environment files from the\Windows directory in theVHD to the system partition. The BCDboot tool will create the BCDconfiguration to boot from the VHD. For more information about theBCDboot tool, see BCDboot Command-Line Options in the OEM Preinstallation Kit (OPK) User's Guide or the Windows Automated Installation Kit (Windows AIK) User's Guide.
diskpart
select vdisk file=c:\windows7.vhd
attach vdisk
exit
cd v:\windows\system32
bcdboot v:\windows /s s:7. 把WinPE光盘从光驱中移走,重启试验计算机,你会发现系统直接进入了VHD里面的Windows 7!
8. 如果你想在已有的Windows 7环境下配置配置一个从VHD的多启动选项,可以使用BCDEdit命令。(具体操作步骤在此)

上图是从VHD启动的大致结构,请注意VHD中操作系统的页面文件和Crashdump,不是包含在VHD中的,他们被保存在VHD文件的同一个目录中。
我们也需要了解一下VHD启动的一些注意事项和局限性:
1. 从VHD启动是有版本限制的,目前(2009年1月)的文档指出只有Windows Server 2008 R2、Windows 7商业版及以上版本,才支持此功能,未来正式发布时可能会有变化,敬请留意。
2. UDFS文件系统暂时不被支持(UDFS是什么?不支持也罢…)
3. 启动用的VHD文件,不能保存在压缩或者加密的NTFS磁盘之上(这一点很多人会忽略)
4. 根据一些朋友的反馈,动态的VHD文件无法启动,需要在建立vhd是设置成立即分配才可以从vhd启动
5. 如果你的物理硬盘是RAID格式,则必须要在VHD中的操作系统镜像中注入RAID的驱动程序,可以使用peimg命令。这个我没有测试过,感谢yueyezhan的反馈
性能性能性能大家一定关心VHD的性能问题。相比物理磁盘,VHD的读写I/O性能指标对比如下,测试数据根据Windows 7 Build6801获得,这些数据在近期的WinHEC大会上获得的。我们可以发现,相对于物理硬盘,VHD的读写开销非常小,只有在进行连续区块写入操作时,才跟物理硬盘有较明显的性能差异。


引用一些网友关于VHD的描述:
实验成功!
原系统是win7X86,灌装了一个X64的win7,在虚拟机里vhd上的X64win7成功启动
速度上感觉不出有差异已经成功从VHD启动
从磁盘管理可以看到当前系统盘C盘也就是20G的DISK2当然是VHD的啦,呵呵.
启动和运行速度和真机差不多吧~~结论就是很好很强大,有着和真机几乎一样的速度,可以照完所有3D游戏,
说白了用起来和真机几乎没任何区别。Win7让多系统变得简单,
根本不用为分区烦恼,一个系统就一个vhd镜像,蹦了复制一份替换即可,
就像用虚拟机一样。当然虚拟的系统貌似只能是Win7及以上系统如server2008R2。企业应用场景和未来展望个人用户的多启动解决方案
企业操作系统的批量部署
接合差异磁盘的无盘(小盘)工作站,可以替代硬盘保护卡

就说这么多吧,还从来没有在LiveWeiter里面一下在写这么多内容呢,接下来大家多多做试验,集思广益吧!
作者: wuyouaaa    时间: 2009-2-3 18:30
Windows 7中如何使用.VHD文件  有些用户对Windows 7中使用Virtual PC的.VHD文件仍心存疑问,这里提供一份说明,它将告诉你如何在Windows 7中使用.VHD文件创建一个虚拟系统。

  有些用户对Windows 7中使用Virtual PC的.VHD文件仍心存疑问,这里提供一份说明,它将告诉你如何在Windows 7中使用.VHD文件创建一个虚拟系统。
  首先,我们需要安装Windows 7 Beta 1。然后进入命令行模式,输入diskpart命令,然后回车。
  现在就可以开始建立一个空的.VHD文件了,下面的命令将创建一个16GB的VHD文件。
  create vdisk file=c:\virtual\win7.vhd type=fixed maximum=16000
  
  创建一个16GB的VHD文件
  创建这样大小的VHD文件,大约需要一段时间,在笔者的测试平台上花费了10分钟。
  
  创建完成
作者: wuyouaaa    时间: 2009-2-3 18:31
现在,我们要把Windows 7 Beta 1安装到刚才创建的VHD虚拟文件中。将刻录好的Windows Beta DVD盘放在光驱中,并设置为光盘引导。当Windows 7安装程序进行到语言选择时,我们按Shift+F10打开命令行模式。  
  按Shift+F10打开命令行模式
  在弹出的命令行窗口中,查看下已经分配出的系统分区,并记下盘符(笔者的盘符为D:)。
  接下来,输入如下命令,
  diskpart
  select vdisk file=d:\virtual\win7.vhd
  attach vdisk
  
  载入VHD文件
作者: wuyouaaa    时间: 2009-2-3 18:32
好了,关闭命令行窗口,点击Install开始安装。选择自定义安装,进行到安装分区选择时,选择刚才创建16GB虚拟盘,把Windows 7安装到这个磁盘上。  
  选择安装到虚拟磁盘
  需要注意的,期间可能有些警告提示,选择忽略即可。
  现在将继续进行安装的第二个副本的Windows 7 。有个问题,就是启动时会出现两个Windows 7选项,不必担心,我们会解决这个问题。
  
  启动管理器
作者: wuyouaaa    时间: 2009-2-3 18:32
安装完成后,需要修复启动管理器,也就是“Boot Manager”。因为默认情况下会启动真实的Windows 7,而不是在VHD文件中的虚拟系统。

  要修复启动管理器,首先用任意一个系统启动,以管理员身份进入命令行模式,输入如下命令:

  bcdedit /v

  拷贝VHD文件的ID,并输入如下命令(替换x部分)

  bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} description “Windows 7 - VHD”

  好了,这个命令可以让你在启动列表,清晰的区分出哪一个是真实的系统,哪一个是虚拟的。

  如果需要排序,可输入如下命令:

  bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast
作者: czswuyou    时间: 2009-2-3 20:14
期待VHD文件。。。。。。
作者: skkkpeek    时间: 2009-2-4 09:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: kinglion    时间: 2009-2-4 13:03

试一试VHD还是很好的。不过这是修复用的PE,启动后直接进入修复,要停止修复,进入高级项目才能看到命令行。
建议你在启动WIN7时按住F8就可以进入WIN7 的 PE.

作者: nn2nn    时间: 2009-2-5 16:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: victor888    时间: 2009-2-5 21:22
PE的启动方式要变革了,就是不知道U盘启动这个PE7的LOADER,兼容性好不好。不过没有关系,GRLDR还是比MS的LOADER强,有前者,就能引导后者。
作者: oppo    时间: 2009-2-12 12:32
创建200M的数据盘的作用是什么?
作者: 北斗    时间: 2009-2-12 14:01
这个得慢慢研究下,楼主总是有好东西给大家分享,支持~~~
作者: yjpanda    时间: 2009-2-12 15:01
如果性能同物理硬盘差不多的话,这可称得上是一次革命。
作者: fxb117    时间: 2009-2-12 15:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: fxb117    时间: 2009-2-12 15:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: fxb117    时间: 2009-2-12 15:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: chouliu    时间: 2009-2-12 15:43
嗯。。。新东东,还需要大家的努力与完善,使之更成熟!
多谢提供!
作者: jxf268    时间: 2009-2-17 11:15
原帖由 nn2nn 于 2009-2-5 16:52 发表
用WIN7的Loader启动 VHD 的XP
很好.

怎么制作啊?那个bcd菜单要有什么参数?是把xp直接灌入VHD文件吗?
我试了好几次都没成功
作者: dutt    时间: 2009-2-17 11:48
这个方法貌似不错,不过vhd如果退出时能自动地压缩,启动时能自动地快速解压就好了
作者: cnn_5454    时间: 2009-2-17 17:31
通过灌装~~ 把XP 或 VISTA放在 VHD里面~~

可是VHD里面的系统怎么和我们真实的电脑通信呢?

比如要在真的电脑上面分区~~

可是里面的分区工具能否识别 我们 真电脑 的硬盘分区呢?
作者: fujianabc    时间: 2009-2-17 20:16
原帖由 cnn_5454 于 2009-2-17 17:31 发表
通过灌装~~ 把XP 或 VISTA放在 VHD里面~~

可是VHD里面的系统怎么和我们真实的电脑通信呢?

比如要在真的电脑上面分区~~

可是里面的分区工具能否识别 我们 真电脑 的硬盘分区呢?

vhd系统启动后可以正常识别主机硬盘和分区的。

另外,xp和vista不能用vhd启动的,只有win 7/2008 r2和winpe 3.0可以
作者: lhtlht    时间: 2009-2-18 09:01
学习,感谢老大分享!
作者: cnn_5454    时间: 2009-2-18 11:04
标题: 回复 #33 fujianabc 的帖子
谢谢解答~~

估计这个新的PE方式

只能是WIN7的专利版PE了 呵呵
作者: wchoverchen    时间: 2009-2-19 01:16
原帖由 jxf268 于 2009-2-17 11:15 发表

怎么制作啊?那个bcd菜单要有什么参数?是把xp直接灌入VHD文件吗?
我试了好几次都没成功


貌似VHD现在只能装2008R2和WIN7,XP别指望了
作者: tuziqizi    时间: 2009-2-19 01:37
原帖由 fujianabc 于 2009-2-17 20:16 发表

vhd系统启动后可以正常识别主机硬盘和分区的。

另外,xp和vista不能用vhd启动的,只有win 7/2008 r2和winpe 3.0可以

还是看你开始提供的那个博客,已经提供了一种替换win7启动文件到vista下的方法,博客中说,vista也是可以用vhd引导启动的,我没有环境可以实验,希望有人能做一个vhd版本的PE3.0出来。
http://blogs.technet.com/fyu/archive/2009/02/01/3195439.aspx
再谈从虚拟磁盘文件启动计算机
最近发了一系列关于在Widows 7下使用VHD启动计算机的帖子(帖子一帖子二帖子三),得到了网友们比较热烈的回应。大牛Aviraj Ajgekar在他的博客中又列出了在Vista SP1下使用VHD启动计算机的方法,我想大家一定会很感兴趣,特此转贴和翻译如下。(原文在此)
以下的操作需要:
1. 干净安装的Windows 7计算机一台
2. U盘一个
3. Vista或者Widows 7的启动光盘一张
4. 你想要折腾的Vista计算机(一台或多台)
------------以下为原文的翻译------------
为了在安装Vista的计算机上使用VHD启动,我们需要下面三个步骤
复制Windows 7的引导文件为了能够从VHD启动计算机,机器的引导文件必须支持VHD格式文件的读写。Windows 7的引导文件包含了这一功能,我们需要做的就是把Windows 7的引导文件复制出来并且覆盖Vista的引导文件。Windows 7的引导文件有两个:BootMgrBCDEdit.exe. BootMgr通常在系统分区的根目录,BcdEdit.exe在C:\Windows\System32文件夹下。
找一台工作正常的Windows 7计算机,连接上一个U盘,并用管理员权限执行以下的命令:
C:\windows\system32>xcopy /h /y bcdedit.exe f:\    (F盘是U盘的盘符)
/H - 复制隐藏和系统文件
/Y  - 对确认提示进行默认YES应答
C:\>cd\
C:\>xcopy /h /y bootmgr f:\
完成后安全的把U盘拔下,备用。

备份Vista的引导文件在替换Vista的引导文件之前,我们必须进行备份。步骤如下:
启动进入Vista,用管理员权限执行以下的命令:
C:\windows\system32>cd\
C:\>xcopy /y /h bootmgr bootmgr.sav
Press f after prompted
C:\>cd Windows\System32
C:\windows\system32>xcopy /y /h bcdedit.exe bcdedit.sav
Press f after prompted

用Windows 7的引导文件替换Vista的引导文件这是最关键的一步,我们需要把之前从Windows 7提出出来的引导文件复制到Vista上。我们可以用Vista安装盘启动计算机,并进入Windows恢复工作台(或者Windows PE启动计算机),并且执行下面的操作:.
C:\>attrib bootmgr –s –h –r                     (Note:  C: Vista的系统分区)
Attribute command with –s –h –r changes the System, Hidden and Read Only attributes of a given file.
C:\>e:                                                          (Note:  E: 之前备份Windows 7引导文件的U盘)
E:\>xcopy /y /h bootmgr c:\bootmgr
E:\>xcopy /y /h bcdedit.exe c:\windows\system32

搞定!接下来,您就可以像在Windows 7一样,从Vista启动VHD镜像文件了!
------------原文到此结束------------
声明:
1. 以下内容为实验性操作,微软不对其后果和造成的损失承担任何的责任
2. 请您在执行下列操作之前务必进行必要的备份
3. 请完整读完之后再进行试验,不要操之过急:-)
作者: Ansson    时间: 2009-2-19 11:25
这个功能估计不能在XP下实现了,毕竟核心不同啊
作者: jxf268    时间: 2009-2-19 11:41
标题: 回复 #37 tuziqizi 的帖子
你没明白他的意思,是说不能启动vhd里面的系统如xp和vista,不是外围的.看了你的翻译我也搞糊涂了,替换启动文件早就知道,启动vista不成问题,关键是不是能启动vhd里面的vista.没讲明白吗
作者: jxf268    时间: 2009-2-19 11:51
标题: 回复 #38 Ansson 的帖子
只要用windows7的引导文件就可以引导vhd文件,
也就是说一个boot文件夹下的bcd 一个bootmgr 再来一个装有windows7的vhd,就行了.根目录好清爽啊
作者: fujianabc    时间: 2009-2-19 21:45
原帖由 tuziqizi 于 2009-2-19 01:37 发表

还是看你开始提供的那个博客,已经提供了一种替换win7启动文件到vista下的方法,博客中说,vista也是可以用vhd引导启动的,我没有环境可以实验,希望有人能做一个vhd版本的PE3.0出来。
http://blogs.technet ...

原文我早就看过了,是那个博客翻译有问题,不是vista能从vhd启动,而是vista下能够制作vhd启动的win7
作者: thttht    时间: 2009-2-20 10:17
楼主的每个帖子都很有价值,非常感谢提供!
作者: carrison    时间: 2009-2-20 10:52
原帖由 jxf268 于 2009-2-19 11:51 发表
只要用windows7的引导文件就可以引导vhd文件,
也就是说一个boot文件夹下的bcd 一个bootmgr 再来一个装有windows7的vhd,就行了.根目录好清爽啊

在真实的win7里做好vhd版的win7后,如何干净的移除真实系统?真实系统的引导分区哪些东西需要保留?如boot目录,...
谁做过实验?
作者: jxf268    时间: 2009-2-20 13:58
标题: 回复 #43 carrison 的帖子
就一个boot文件夹下的bcd 一个bootmgr 一个vhd

没必要在真实win7里做,有人反映已经丢失数据了,就因为分区表给win7搞坏了,它创建了一个s分区

个人觉得还是下个GHOST版的win7,再灌入vhd,把win7的启动文件提取出来,给它加上vhd的启动菜单,用grldr引导,或者bootsect.exe /nt60,这样不也是玩了一下win7和vhd启动吗,而且还不会破坏分区表.
反正我就是这么玩的,vhd用老毛的Virtual+PC+2007+SP1+绿色版创建,也可用pe3.0来创建.xp/2003下用微软的vhdmount挂载然后GHOST.就是在win7下声卡爆音,可能驱动没跟上吧.
我觉得大家还是再等等吧,赶时髦的话就来个win7的vhd,这样不会跟现有系统有冲突.
作者: jfpx    时间: 2009-3-6 09:54
太强大了,坛子里面的技术都过时了。。。
作者: singel    时间: 2009-3-6 10:24
哈哈,刚看到新技术
作者: dutt    时间: 2009-3-12 09:01
vhd技术可不可以有挺高的压缩比?
作者: 263109    时间: 2009-3-23 23:34
用动态的VHD就是了,灌装完WIN7才6G多点,而且7000版本的默认是动态,7057版本默认是固态了!
而且安装速度是非常快的,也就10多分钟就安装好了!
作者: jakie    时间: 2009-3-27 10:43
等俺的机器到了,一定要试一下
作者: jalousie    时间: 2009-3-28 13:29
前提是使用 win 7 以上的 bootmgr 引导
作者: hhh333    时间: 2009-3-28 15:41
Windows的启动又要来一场革命了!!雷声越来越大了,快下雨了,激动啊!!
作者: jakie    时间: 2009-3-28 23:19
新机器到了,开始当小白,哈哈
作者: victor888    时间: 2010-6-14 23:33
BOOT.WIM文件解压后的体积太大了,还不如直接从WIM运行。

外国人也搞出来了,不过比你晚了4个月:http://www.msfn.org/board/topic/133445-boot-winpe-30-vhd-from-hdd/

[ 本帖最后由 victor888 于 2010-6-14 23:55 编辑 ]
作者: liwanxi    时间: 2012-4-19 08:38
怎么这么长时间不更新了呢?
作者: Wisdom1978    时间: 2012-6-9 00:49
实际上就是用nt6来启动,但VHD是可写的,中毒怎么办啊?
作者: 1e3e    时间: 2012-6-9 09:03
好像只有高配置的机子才玩的起吧
作者: 2010sya    时间: 2012-12-1 10:31
标题: 回复 #1 fujianabc 的帖子
好好学习。。。。。。。。。。。。。。。。
作者: ge    时间: 2017-8-24 08:12
这样也可以呀?有什么好处呢?
作者: huaqingyuan    时间: 2017-8-24 11:02
本帖最后由 huaqingyuan 于 2017-8-24 11:04 编辑

用下面的批处理应该就可以了!

for  /f " tokens=2 delims={} "  %a in ('bcdedit -create /d "vhdpe" -application osloader' ) do set GUID=%a
bcdedit -set {%GUID%} device vhd=[c:]\winpe.vhd
bcdedit -set {%GUID%} osdevice vhd=[c:]\winpe.vhd
bcdedit -set {%GUID%} path \windows\system32\boot\winload.exe
bcdedit -set {%GUID%} systemroot \windows
bcdedit -set {%GUID%} winpe yes
bcdedit -set {%GUID%} detecthal yes
bcdedit -displayorder {%GUID%} -addlast
作者: wuyufeng    时间: 2017-10-15 18:35
多多学习,谢谢分享




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