页面

2011年1月26日

用Ghost将Windows7装到差分VHD里

前言

VHD(Virtual Hard Disks),虚拟磁盘文件格式,关于VHD的介绍,网上一大把,我就不写了(偷懒),其实也就和Ubuntu里的wubi差不多,顺便一说,支持从VHD启动的只有企业版和旗舰版。

VHD的缺点

  1. 安装麻烦
  2. 无法使用Windows7自带的体验指数,因为无法测量磁盘性能
  3. 无法使用休眠功能,可以使用睡眠

准备工作

  1. 一个Ghost32,也就是在Windows上运行的Ghost
  2. 一个可以使用的Windows7或WinPE3.0
  3. 本文以差分VHD为例,所以有主VHD和子VHD,下文将以D:\win7-ultima-32bit-main.vhd表示主VHD,D:\win7-ultima-32bit-child.vhd表示子VHD

开始实践

一、安装一个新的Windows7

首先用喜欢的方法(例如光盘安装或硬盘安装)将Win7安装到物理磁盘上,推荐关闭虚拟内存,或将虚拟内存设置到非系统盘。此步只是为了得到一个Ghost镜像文件,如果已经有Windows7的gho备份文件可以直接跳到第三步

二、生成gho备份文件

启动到Ghost32下,对第一步安装的Windows7进行备份,得到一个gho文件

三、创建主VHD

启动到Windows7或WinPE3.0下,去到控制面板——系统和安全——管理工具——计算机管理,右键点击磁盘管理,选创建VHD
32位版的Windows7旗舰版推荐大小为15G,64位的推荐20G以上,保存位置随便填,需要注意是由于用到差分VHD,磁盘剩余空间需要有两倍于vhd文件容量,比如创建一个15G大小的vhd并放到D盘,那么D盘需要有30G的剩余空间,因为用到Ghost,必须使用固定大小格式。等待创建完成,在磁盘管理里为VHD分区和格式化,对其分配盘符,我分了个W盘给这个vhd,然后可以在我的电脑里看到这个vhd磁盘了。

四、还原Ghost镜像到主VHD里

再次启动到Ghost32下,用第一步制作的gho还原到W盘里。

五、分离主VHD

去到磁盘管理里,分离这个vhd(类似于Linux下的umount)


六、创建子VHD

用系统管理员打开命令提示符,输入下面命令
# 运行diskpart工具
diskpart

# 创建一个基于D:\win7-ultima-32bit-main.vhd的子vhd,命名为win7-ultima-32bit-child.vhd
create vdisk file=D:\win7-ultima-32bit-child.vhd parent=D:\win7-ultima-32bit-main.vhd

# 为子vhd分配一个盘符
select vdisk file=D:\win7-ultima-32bit-child.vhd
attach vdisk
assign letter=w

七、生成启动信息

继续用系统管理员打开命令提示符,定位到 W:\Windows\System32 下,运行下面的命令
bcdboot W:\Windows /S C: /L zh-cn
解析一下
  • W:\Windows 为vhd里的windows根目录位置。
  • /S C: 指定启动文件位置(也就是那个BCD文件所在的盘符),一般指向物理磁盘的活动分区。
  • /L zh-cn 指定启动语言为简体中文。

八、重启

确认完成上面七个步骤并且没有出现错误后,可以重启进这个VHD里的Windows7了。

备份还原VHD

对于差分VHD来说,备份还原也就是复制粘贴(或者压缩与解压缩),都是对子VHD进行操作。例如备份,先启动到WinPE下,对D:\win7-ultima-32bit-child.vhd进行压缩,还原也就是解压缩。我的3.16G的子VHD,用7z.exe -mx9 -m0=lzma2压缩后只有658M。

参考资料


全文完

没有评论:

发表评论