首页 > 代码库 > 差分VHD在win7中的应用

差分VHD在win7中的应用


1、用win7安装光盘启动,进入命令行
在分区界面时停住 , 按键盘上面的 Shift + F10 键可以调出控制台 
此时如果觉得麻烦的话 , 可以先切换到分区界面 , 直接用 WIN 7 安装光盘分区(分完后记得格式化 , 否则无法正常执行创建 VHD 磁盘命令)
2、创建主vhd
创建好分区后切换到控制台界面输入如下命令
(1)diskpart       (打开diskpart)
(2)list volume    (显示加载的卷列表)
(4)Create vdisk file=D:\Win7.vhd type=fixed maximum=40960(type=expandable 动态磁盘)
(5)Select vdisk file=D:\Win7.vhd  (此行命令式选择 VHD 文件)
(6)Attach vdisk(此行命令挂载虚拟磁盘)
(7)Exit          退出
3、安装win7
上面操作完成后 , 在安装的分区界面里面刷新下 , 可以看到多出来个磁盘
建立分区,格式化这个磁盘,将系统安装到该磁盘
剩下的安装过程和所有正常安装过程完全一样
4、创建和备份差分VHD(以下步骤也可以在win7pe中进行设置,更直观)
系统安装完成之后进入桌面后立即重启
(1)用win7安装光盘引导启动系统,当出现“安装windows”的窗口时,按下“Shift+F10”
(2)diskpart       (打开diskpart)  
(3)list volume    (显示加载的卷列表)  
(4)create vdisk file=D:\Win7_C.vhd parent=D:\Win7.vhd(设置父盘子差分系统)
   create vdisk file=D:\Win7_C1.vhd parent=D:\Win7_C.vhd(设置子盘的子差分系统)
(创建差分VHD,主VHD设置成刚才创建的)  
(5)exit            (退出diskpart)
(6)copy D:\Win7_C.vhd D:\Win7_C.bak
      copy D:\Win7_C1.vhd D:\Win7_C1.bak  (备份差分VHD文件)  
(7)diskpart        (打开diskpart)  
(8)select vdisk file=D:\Win7_C1.vhd
  (选中差分VHD文件)  
(9)attach vdisk    (挂接该虚拟磁盘文件)  
(10)list volume     (显示加载的卷列表,找出挂接位置,我的VHD挂接位置是I盘,100M主硬盘(或为引导分区位置)(OEM盘要扩大保留分区150M,否则会出现文件无法复制安装失败)位置是c盘)  
(11)exit            (退出diskpart)
5、向100M的主分区中写入boot信息  
(1)bcdboot I:\windows /s c:
6、修改BCD信息,启动个性化
(1)bcdedit                    (显示bcd的完整信息)
(2)bcdedit /set {default} description "Win7_C1"           (因刚才执行了bcdboot命令,所以默认就是VHD版win7,这句VHD版的显示项)
(3)bcdedit /set {启动项的UID} description "Win7"
(5)bcdedit /timeout 3                    (启动等待3秒已经够长了,默认为30秒)
7、如果Win7启动项菜单英文可以按下面方法修改
可以以管理员的权限打开CMD命令提示符(右键单击命令提示符的快捷方式,在右键菜单中选择“以管理员权限运行”,需要确认UAC安全提示),输入并执行如下命令:
BCDEDIT -SET {BOOTMGR} LOCALE ZH-CN
(此命令将把需要启动的操作系统的选择菜单,也就是多重操作系统共存时选择需要启动哪个操作系统的选择菜单的显示语言修改为简体中文)
BCDEDIT -SET {CURRENT} LOCALE ZH-CN
    BCDEDIT -SET {default} LOCALE ZH-CN
(此命令将把当前选定的 Windows操作系统的 F8 高级启动菜单的显示语言修改为简体中文)
BCDEDIT -SET {MEMDIAG} LOCALE ZH-CN
(此命令将把 Windows 内存诊断工具的显示语言修改为简体中文)
     BCDEDIT -SET {子vhd盘的SID} LOCALE ZH-CN
    (此命令将把 Windows 启动画面的显示语言修改为简体中文)
最后,用户可以再以管理员权限输入并执行 BCDEDIT /ENUM ALL 命令,查看上述项目的 LOCALE 值是否已成功修改为ZH-CH简体中文。
8、重新开机,第一个启动项就是子盘所引导的系统
     *如果重启后出现“bootmgr is missed.”,请执行以下步骤  
     (1)  用win7安装光盘引导启动系统,当出现“安装windows”的窗口时,按下“Shift+F10”  
     (2)  diskpart  
     (3)  select disk=0          (选择要安装的硬盘序号)  
     (4)  select partition=1 (选择100M引导分区序号)  
     (5)  active                        (所选分区设置为激活)
9、删除父盘启动项
bcdedit /delete {SID}/cleanup
10、合并差分磁盘
(1)diskpart
(2)sel vdisk file=D:\Win7_C.vhd(将子盘的修改应用到父盘)  ( sel vdisk file=D:\Win7_C1.vhd(将子1盘的修改应用到子盘))
(3)merge vdisk DEPTH=1
合并差分磁盘 即是把对子VHD的修改应用到父VHD中去
合并差分磁盘之后 子VHD会被还原到初始状态
11、VHD的恢复
VHD可以实现秒恢复,只要把Win7_C1.vhd删掉,将Win7_C1.bak改成Win7_C1.vhd就变回了父盘Win7_C.vhd中的系统了!
到这里系统就差不多了,如果不装差分盘的到第3步就安装完成
如果只要装一个子盘的就不需要设置Win7_C1.vhd了!只设置到Win7_C.vhd就行了!

 

当用child.vhd开机时,可以看到vhd的大小变得和father.vhd相当。其实的尺寸在winpe时很小的。

差分VHD在win7中的应用