无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 94567|回复: 101

【VHD教程】自己动手做NT6.X的VHD系统

    [复制链接]
发表于 2010-12-10 14:02:40 | 显示全部楼层 |阅读模式
做NT6.X的VHD系统的方法网上已经有很多了,因为我也是通过网上的方法才学会的,以下就以自己写的一个CMD做示例,简单的从头到尾做一次,这样对于一些想试一下VHD系统的朋友也许有一些帮助。

在这里先简单的说一下VHD差分系统是什么东东,下面这个是直接从DISKPART命令行里面复制出来的:

创建虚拟磁盘文件。当前仅支持 VHD 格式的文件。
语法:  CREATE VDISK FILE=<"filename"> MAXIMUM=<N> [TYPE={FIXED|EXPANDABLE}]
             [SD=<SDDL string>] [PARENT=<"filename">] [SOURCE=<"filename">]
             [NOERR]

  [PARENT=<"filename">]
              创建差异磁盘的现有父虚拟磁盘文件
              的路径。对于 PARENT 参数,不应指定 MAXIMUM,
              因为差异磁盘从其父目录获取大小。而且,
              也不应指定 TYPE,因为只能创建
              EXPANDABLE 差异磁盘。
              
简单的说创建VHD差分系统就是用一个现有的VHD创建一个新的差异VHD磁盘文件,这样应该好理解很多,比如:现在我已经有一个正常VHD系统正在使用,但有时候想试用一下某个软件或为了安全一点的上上网银,这时就可以通过上面DISKPART命令行建一个差分VHD,用完删除即可。

下面是文件说明,说白了命令行生成的步骤如下:

生成空白的VHD-》灌入WIN7-》生成win7_x86.vhd-》改win7_x86.vhd为win7_x86.vhd_PARENT-》用win7_x86.vhd_PARENT生成差分win7_x86.vhd

这样就可以自己生成差分版VHD的两个文件了,呵呵。。。

正常使用的VHD系统是win7_x86.vhd,安装完所有东西后,改名win7_x86.vhd为win7_x86.vhd_bak,用win7_x86.vhd_bak生成差分win7_x86.vhd,然后直接复制win7_x86.vhd为win7_x86.vhd_dd

这样看应该关系非常清楚了吧。。。

正常情况下,用G4D秒还原用的是win7_x86.vhd_dd替换掉win7_x86.vhd,如果想更新系统(比如:打补丁),就删除掉win7_x86.vhd,改名win7_x86.vhd_bak为win7_x86.vhd,更新完后,重新改名win7_x86.vhd为win7_x86.vhd_bak,用win7_x86.vhd_bak生成差分win7_x86.vhd,然后直接复制win7_x86.vhd为win7_x86.vhd_dd

下面以做一个X86的WIN7差分VHD系统为例,为了方便,自己写了一个CMD,因为要用到DISKPART命令,所以只能在PE3或NT6.X系统里面才能使用,可以在这里下载:

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=163278&extra=page%3D1&page=1


也可以下载个我自己DIY的PE3:

http://u.115.com/file/f65a4cf979


界面如下:
2010-12-10_132901.png

为了方便后面的操作,请看第一行,认清自己的硬盘的活动主分区是哪个盘,如果隐藏了,请先显示出来,其实这步跟做VHD是没有关系的,这步是为了第二项添加菜单准备的,呵呵。。。如果不知道哪个是活动主分区,可以下载这个:
MBRWiz.7z (181.2 KB, 下载次数: 690)
 楼主| 发表于 2010-12-10 14:02:57 | 显示全部楼层
上面已经简单的介绍了怎么自己做VHD系统了,下面简单说明一下使用VHD系统和那个CMD的要注意的地方:

1.原版的VHD系统生成完以后大概几个G,可以从顶楼的图里面看到X86、X64和WIN2008R2版生成的大小不同。所以放VHD系统的盘要注意大小,硬盘大小最小>生成VHD系统的大小(如:32G)+VHD父的大小(如:X86为5G)+差分系统的大小(一般重启动后自动安装完驱动后大小小于1G)≈32+5+1≈40G,这样如果还需要做备份的话,放VHD差分系统的盘最大≈32GVHD系统+20G左右VHD备份后的大小(安装完驱动及软件后的大小)+5GVHD父的大小≈64G(这个是我自己的习惯)

2.自己写的那个CMD有一个地方需要注意的,就是添加菜单前一定要看清楚自己需要安装VHD系统的硬盘活动主分区是哪个盘,因为添加菜单的时候会先找硬盘里面有没有BCD菜单文件,如果有就直接添加,没有就自动生成BCD文件和修改硬盘的MBR。

[ 本帖最后由 0cat0 于 2010-12-10 15:13 编辑 ]
回复

使用道具 举报

发表于 2010-12-10 18:23:23 | 显示全部楼层
初次接触,挺复杂,不过看着应该很不错,慢慢学习..........
回复

使用道具 举报

发表于 2010-12-11 21:22:06 | 显示全部楼层
很好很详细的学习帖,感谢楼主,学到了不少。继续学习,期待楼主的进一步完善。
回复

使用道具 举报

发表于 2010-12-10 20:58:46 | 显示全部楼层

回复 #1 0cat0 的帖子

我原已会安装VHD系统,但未用WIM2VHD安装过,也不会更改其注册表,更不会将其移植到其他电脑或移动硬盘上。学习了你的帖子后,又有很大的收获,真的非常感谢!
回复

使用道具 举报

发表于 2010-12-10 14:16:47 | 显示全部楼层
沙发,学习咯..........
回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:00 | 显示全部楼层
这楼说一下怎么样把一个正常使用的VHD系统做成通用的VHD系统:

1.本地使用的VHD系统,下面这三个文件是自己从原版VHD系统里面导出的注册表,因为把VHD系统复制到别的机器启动不了一般都是磁盘驱动的问题,所以只要导入下面的原版注册表一般都OK(我自己已经试过三台机可以通过)

系统安装[通用启动][WIN7_X64]的:
系统安装[通用启动][WIN7_X64].7z (163.17 KB, 下载次数: 969)
回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:02 | 显示全部楼层
这楼说一下如何修改VHD系统的注册表,挂离线VHD系统(我刚刚接触VHD的时候也不知道怎么弄,呵呵),在PE3或NT6系统下运行DISKMGMT.MSC,如图:

2010-12-10_155035.png

选“附加 VHD”,如下:

2010-12-10_155105.png

选要修改的VHD文件后点确定就挂上去了,完成后如图:

2010-12-10_155150.png

2.运行REGEDIT,然后点“HKEY_LOCAL_MACHINE”项,在文件菜单选“加载配置单元”,选择刚才挂上去的VHD系统盘,路径为window\system32\config\,选“SYSTEM”这个文件,如图:

2010-12-10_155818.png

然后输入名称(随便输入就行了,比如:111),这时就加载了VHD系统的注册表项了,如图:

2010-12-10_160134.png

修改完注册表后,点加载的如:111,文件菜单里面选“卸载配置单元”,完成后VHD注册表就保存好了,如图:

2010-12-10_160208.png

这时只要分离VHD文件就行了,如图:

2010-12-10_155214.png

[ 本帖最后由 0cat0 于 2010-12-10 16:08 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:04 | 显示全部楼层
这楼介绍一些自己用VHD系统的经验,自己装VHD系统的步骤,下面以VM里面的VHD系统为例:

用移动硬盘或光盘的PE3启动电脑,用顶楼的方法安装VHD系统,然后加多一个PE3到启动菜单,全部完事后,隐藏放VHD文件的分区,重新启动后,显示分区如图:

2010-12-10_161753.png 2010-12-10_161806.png

可以看到,VHD真的很干净,这也是我很喜欢VHD系统的原因之一,下面是我自己DIY的PE3启动界面,如图:

2010-12-10_161926.png


这样平时还原、更新、备份就很方便了,呵呵。。。

正常安装完系统和添加完PE3并隐藏分区后,重新启动后就会进入WIN7的安装,安装完后进入WIN7系统,显示分区后激活,然后隐藏分区,安装后驱动和软件后,清理垃圾文件,跟着进入PE3就可以备份了。。。

VHD系统的备份非常简单,只要重命名正常使用的VHD文件,然后从这个文件生成分差就行了,生成的分差名改为正常使用的VHD名,这样就可以不用改启动菜单BCD文件了。

VHD系统的还原也非常简单,只要删除正在使用的VHD文件,重新从备份文件生成分差就行了。。。

[ 本帖最后由 0cat0 于 2010-12-10 16:39 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:07 | 显示全部楼层
这楼说一下怎么在启动菜单加个还原菜单项及怎么做到秒还原。。。

假定已经安装好的VHD文件路径如下图:

2010-12-24_171834.png


WIN7_X86.VHD  ===》为正在使用的VHD系统

WIN7_X86.VHD_DD  ===》是由正在使用的VHD系统的父生成的差分备份

有了备份文件WIN7_X86.VHD_DD后,我们就可以在启动菜单BCD中加入G4D菜单,方法如下:

  1. @ECHO OFF
  2. @CD /D "%~DP0"
  3. BCDEDIT.EXE /STORE "%~D0\BOOT\BCD" /ENUM ACTIVE >"%TEMP%\BCDTEMP.TXT"
  4. @TYPE "%TEMP%\BCDTEMP.TXT" | FIND /I "\SYSDD.MBR" >NUL && @DEL /F /A /Q "\\?\%TEMP%\BCDTEMP.TXT" >NUL && @GOTO QUIT
  5. @SET VID=
  6. BCDEDIT.EXE /STORE "%~D0\BOOT\BCD" /CREATE /D "选择此项后回车【还原系统】" /APPLICATION BOOTSECTOR >"%TEMP%\VID.TXT"
  7. FOR,/F,"TOKENS=2 DELIMS={",%%I,IN (%TEMP%\VID.TXT) DO (SET VIDA=%%I)
  8. FOR,/F,"TOKENS=1 DELIMS=}",%%I,IN ("%VIDA%") DO (SET VID={%%I})
  9. ECHO %VID%>"%TEMP%\VID.TXT"
  10. BCDEDIT.EXE /STORE "%~D0\BOOT\BCD" /SET %VID% DEVICE "PARTITION=%~D0" >NUL
  11. BCDEDIT.EXE /STORE "%~D0\BOOT\BCD" /SET %VID% PATH "\SYSDD.MBR" >NUL
  12. BCDEDIT.EXE /STORE "%~D0\BOOT\BCD" /SET {BOOTMGR} DISPLAYORDER %VID% /ADDLAST >NUL
  13. BCDEDIT.EXE /STORE "%~D0\BOOT\BCD" /SET {BOOTMGR} TIMEOUT "9" >NUL
  14. @DEL /F /A /Q "\\?\%TEMP%\VID.TXT" >NUL
  15. @GOTO QUIT
  16. :QUIT
  17. @DEL /F /A /Q "\\?\%~DP0BCDEDIT.EXE" >NUL
  18. @DEL /F /A /Q "\\?\%~DP0SYSDD.CMD" >NUL
  19. @EXIT
复制代码



添加成功后,BCD启动菜单就会如下图一样,多了一G4D菜单:

2010-12-24_172645.png

如果选择进入这个菜单就会自动将WIN7_X86.VHD_DD替换掉WIN7_X86.VHD文件,这样就实现了还原的效果了。。。


下面是G4D的内置菜单的内容:

  1. timeout 0
  2. default 0
  3. title
  4. find --set-root --ignore-floppies --ignore-cd /My_BOOT/WIN7_X86.VHD
  5. dd if=()/My_BOOT/WIN7_X86.VHD_DD of=()/My_BOOT/WIN7_X86.VHD
  6. find --set-root --ignore-floppies --ignore-cd /bootmgr
  7. map () (hd0)
  8. map (hd0) ()
  9. map --rehook
  10. find --set-root --ignore-floppies --ignore-cd /bootmgr
  11. chainloader /BOOTMGR
复制代码


用最新版的G4D,把上面的菜单内置,然后复制grldr及grldr.mbr文件到BCD所以盘的根目录就可以了

附件是已经做好的全自动添加菜单的CMD,有需要的可以下载按自己的需要改一下就行了。

[ 本帖最后由 0cat0 于 2010-12-24 17:33 编辑 ]

装机专用[还原].rar

258.01 KB, 下载次数: 2556, 下载积分: 无忧币 -2

回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:08 | 显示全部楼层
添加一个录像,录得比较粗糙,下载:

http://u.115.com/file/f6764aa289

[ 本帖最后由 0cat0 于 2010-12-27 11:06 编辑 ]
2010-12-27_110518.png
回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:10 | 显示全部楼层
提供一下自己DIY别人的PE3,下载:

http://u.115.com/file/f65a4cf979


因为这个是自己放光碟上用的,所以用WINRAR打包成EXE了,双击解压到BCD所在盘,然后手动添加到菜单就行了,里面有个分区管理的文件夹可以剪贴放到其它盘,这样进VHD系统后也可以显示或隐藏分区。



需要新一点版本的,可以到这里2#楼下载:

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=177697&extra=page%3D1

[ 本帖最后由 0cat0 于 2011-4-15 12:30 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:12 | 显示全部楼层
NT6XSP1的VHD注册表项(包括WIN6x86SP1、WINX64SP1、WIN2008R2SP1):

[ 本帖最后由 0cat0 于 2011-3-31 22:18 编辑 ]

WIN7SP1.part1.rar

292.97 KB, 下载次数: 505, 下载积分: 无忧币 -2

WIN7SP1.part2.rar

207.12 KB, 下载次数: 441, 下载积分: 无忧币 -2

回复

使用道具 举报

 楼主| 发表于 2010-12-10 14:03:15 | 显示全部楼层
补个VHD版WIN7的教程,下面以小体积为例:

1.下载个精简版的WIN7,本例用的是PROSEN的WIN7LITE7.626EX

2.新建VHD,灌入WIN7系统,下面是本例的方法:

解压出install.wim文件放入一个新建的文件夹,如:D:\My_VHD\
把下面的东西保存为CMD,双击运行:
  1. @ECHO OFF
  2. @TITLE [RAMOS]
  3. @CD /D "%~DP0"
  4. IF /I NOT EXIST "%~DP0IMAGEX.EXE" ECHO. && ECHO 错误:[%~DP0IMAGEX.EXE]不存在,请检查一下... && @PAUSE>NUL && @EXIT
  5. IF /I NOT EXIST "%~DP0INSTALL.WIM" ECHO. && ECHO 错误:[%~DP0INSTALL.WIM]不存在,请检查一下... && @PAUSE>NUL && @EXIT
  6. @CLS
  7. @ECHO CREATE VDISK FILE="%~DP0RAM_WIN7.VHD" MAXIMUM=1538 TYPE=FIXED>"%TEMP%\DISKPART[DISK].TXT"
  8. @ECHO SELECT VDISK FILE="%~DP0RAM_WIN7.VHD">>"%TEMP%\DISKPART[DISK].TXT"
  9. @ECHO ATTACH VDISK>>"%TEMP%\DISKPART[DISK].TXT"
  10. @ECHO CREATE PARTITION PRIMARY ALIGN=32>>"%TEMP%\DISKPART[DISK].TXT"
  11. @ECHO ACTIVE>>"%TEMP%\DISKPART[DISK].TXT"
  12. @ECHO ASSIGN LETTER=R>>"%TEMP%\DISKPART[DISK].TXT"
  13. @ECHO FORMAT FS=NTFS UNIT=4096 LABEL=RAM-VW7>>"%TEMP%\DISKPART[DISK].TXT"
  14. @ECHO EXIT>>"%TEMP%\DISKPART[DISK].TXT"
  15. DISKPART.EXE /S "%TEMP%\DISKPART[DISK].TXT"
  16. IMAGEX.EXE /APPLY "%~DP0INSTALL.WIM" "1" "R:"
  17. @ECHO SELECT VDISK FILE="%~DP0RAM_WIN7.VHD">"%TEMP%\DISKPART[DISK].TXT"
  18. @ECHO DETACH VDISK>>"%TEMP%\DISKPART[DISK].TXT"
  19. @ECHO EXIT>>"%TEMP%\DISKPART[DISK].TXT"
  20. DISKPART.EXE /S "%TEMP%\DISKPART[DISK].TXT"
  21. @ECHO.
  22. @ECHO.
  23. @ECHO.
  24. @ECHO                  ※※※※※※※※※※※※※※※※※※※※※※※
  25. @ECHO                  ※                                          ※
  26. @ECHO                  ※          操作完成,按任意键退出          ※
  27. @ECHO                  ※                                          ※
  28. @ECHO                  ※※※※※※※※※※※※※※※※※※※※※※※
  29. @ECHO.
  30. @DEL /F /A /Q "\\?\%TEMP%\DISKPART[DISK].TXT" >NUL
  31. @PAUSE>NUL
  32. @EXIT
复制代码
运行完成后就生成一个固定容量为1.5G的RAM_WIN7.VHD文件了

3.把RAM_WIN7.VHD加入启动菜单,可以加一个用正常用VHD的菜单和一个RAMOS的菜单:

如图:
捕获1.PNG 捕获2.PNG

G4D的菜单内容:
timeout 0
default 0
title        [01]    RAMOS WIN7VHD
find --set-root /My_VHD/RAM_WIN7.VHD
map --mem /My_VHD/RAM_WIN7.VHD (hd0)
map --hook
root (hd0,0)
chainloader /BOOTMGR

因为体积没有超过3.25G,所以不用加top参数,如果大于3.25G的,要加top参数

4.先进正常的VHD系统安装FiraDisk驱动,我用的是0.0.1.30版,不知道为什么要重新启动两次才能正常安装,不管了,反正看系统设备里面是正常安装的就行了,确定正常安装后就可以重启进入RAMOS了。

需要注意的事项:
1.建VHD文件的时候要用固定容量。
2.确定正常的VHD里面安装好FiraDisk驱动。
3.本例实机内存为2G,大于加载的VHD文件大小1.5G。


下面是跑内存盘的成绩:

[ 本帖最后由 0cat0 于 2011-4-10 22:27 编辑 ]
捕获.PNG

点评

G4D的菜单内容: timeout 0 default 0 title [01] RAMOS WIN7VHD find --set-root /My_VHD/RAM_WIN7.VHD map --mem /My_VHD/RAM_WIN7.VHD (hd0) map --hook root (hd0,0) chainloader /  详情 回复 发表于 2013-6-6 07:59
回复

使用道具 举报

发表于 2010-12-14 11:55:04 | 显示全部楼层
希望楼主能添加关于修改注册表的内容,以及为什么要修改,说说原因, 这点可能对于拿到别的机子上安装时很重要, 我是猜的,我也还不明白,呵呵........
回复

使用道具 举报

 楼主| 发表于 2010-12-14 13:07:47 | 显示全部楼层

回复 #15 TCLSHX 的帖子

3楼已经有说明及注册表文件了,修改注册表的原因多数是因为磁盘驱动问题,我自己试过只要导入原版注册表就没有问题。。。
回复

使用道具 举报

发表于 2010-12-14 13:28:35 | 显示全部楼层
原帖由 0cat0 于 2010-12-14 13:07 发表
3楼已经有说明及注册表文件了,修改注册表的原因多数是因为磁盘驱动问题,我自己试过只要导入原版注册表就没有问题。。。


好象讲到加载注山册表项为111,然后就接着卸载了,没有讲修改呢哪些内容,或导入其它REG文件呀
回复

使用道具 举报

 楼主| 发表于 2010-12-14 13:46:03 | 显示全部楼层

回复 #17 TCLSHX 的帖子

呵呵,那是4楼的内容,4楼是讲怎么样修改注册表,只要按4楼的方法导入3楼的注册表就行了,不过3楼的附件已经做好了,只要挂上VHD,运行3楼的附件只要输入盘符就可以了,手动的话只要解压出来导入注册表就行了,呵呵。。。

改天再上个图吧。。。
回复

使用道具 举报

发表于 2010-12-22 15:34:29 | 显示全部楼层
之前已经做好了win7的差分系统,用的是正在使用的win7还原成的wim镜像。
想用楼主所说的方法修改注册表做成通用系统,在VPC里启动到登陆页面还没有问题,结果悲剧了,系统提示不是正版,进入的是临时帐户,什么都做不了。
想想可能是不能用现成系统使用了win7pojie工具的原因,改注册表将正版信息也删除了,差分系统就此挂了
回复

使用道具 举报

发表于 2010-12-22 19:41:21 | 显示全部楼层
学习下,一直用别的软件做vhd系统,看看这个软件怎么样。
回复

使用道具 举报

 楼主| 发表于 2010-12-24 17:34:41 | 显示全部楼层
添加一页教程,说的是怎么样添加秒还原方法。。。
回复

使用道具 举报

发表于 2010-12-25 10:10:35 | 显示全部楼层
学习学习,收藏!
回复

使用道具 举报

 楼主| 发表于 2010-12-27 11:10:40 | 显示全部楼层
添加个录像。。。。。
回复

使用道具 举报

发表于 2010-12-29 11:35:46 | 显示全部楼层
谢谢,讲的够详细的了……
虽然我还在用I845PE的主机,没条件测试使用,但也知道是怎么回事了!
回复

使用道具 举报

 楼主| 发表于 2010-12-30 14:22:15 | 显示全部楼层
提供一个PE3,下载:

http://u.115.com/file/f65a4cf979
回复

使用道具 举报

 楼主| 发表于 2010-12-30 18:16:55 | 显示全部楼层
更新一下顶贴,说明一些生成VHD的步骤及各VHD文件之间的关系。。。
回复

使用道具 举报

发表于 2011-2-9 15:08:56 | 显示全部楼层
115盘上的文件都到期了,能否提供其他下载地址?或者续期一下!
回复

使用道具 举报

发表于 2011-2-9 16:39:11 | 显示全部楼层
有点麻烦啊,最好做个傻瓜式的
回复

使用道具 举报

 楼主| 发表于 2011-2-10 18:10:55 | 显示全部楼层

回复 #27 zzcn2008 的帖子

多谢提醒,已经全部续期了。。。
回复

使用道具 举报

发表于 2011-3-2 14:33:21 | 显示全部楼层
WIN7的懂了,不过XP的不怎么懂。能不能弄个教程或视频?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-4-5 02:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表