VHD进阶:差分VHD备份系统

一、创建虚拟磁盘

方法1:图形界面创建

1、打开磁盘管理器(运行diskmgmt.msc),在“磁盘管理”上点击右键,“创建VHD”,类型选择VHD,动态扩展或者固定大小随意,两种类型性能一样。比如,我们在D盘建立一个大小20G的名为WIN8.VHD的虚拟磁盘镜像。加载刚才创建的VHD,初始化磁盘并分区,设定盘符为F:(如果要安装系统,别忘了激活,如果在UEFI下启动,一定要初始化为GPT磁盘)。

方法2:命令行创建(不推荐)

管理员打开CMD,输入下列指令(仅供参考)

diskpart
create vdisk file=D:\win8.vhd maximum=25600 type=fixed
select vdisk file=D:\win8.vhd
attach vdisk
create partition primary
assign letter=F
format quick label=WIN8
exit

二、把系统灌入VHD

步骤1:释放镜像。虚拟光驱加载win8.1 ISO镜像为光驱G,用管理员权限打开cmd,输入imagex.exe /apply G:\sources\install.wim 4 f:,等待将近5-10分钟后显示100%,win8的系统就释放到了F盘。建议使用图形软件如Gimagex,wimtool,winnt 6.x setup等进行操作;

步骤2、修改启动菜单。win7的bootmgr无法引导win8.1,所以要把win8.1的bootmgr复制过来。继续在管理员权限的cmd里输入:bcdboot F:\windows /s c: /l zh-cn,这里的C:是指活动分区的位置,到了这一步,就已经升级了BOOTMGR并且添加了win8.vhd,这种方法不需要手动复制win8.1的bootmgr。建议使用图形软件Bootice操作。

三、VHD差分硬盘实现秒备份、秒恢复、分支多系统

首先介绍一下差分硬盘。这个概念最早出现在虚拟机里,比如我们刚才创建了一个win8.vhd,如果我们对他进行了使用,则一切更改将实时的写入win8.vhd。但如果我们创建一个差分硬盘,指向win8.vhd,比如,命名为win8L1.vhd。这时我们挂载win8L1.vhd(注意不是win8.vhd),我们仍然能够看到一个和刚才一样的f盘,里面的内容和刚才一模一样,但是此时所做的一切更改都将保存在win8L1.vhd里,而不会修改win8.vhd,保证了win8.vhd的只读性。做个实验,把这时通过win8L1.vhd挂载的f盘格式化,f盘空了,但是如果你删除chafen.vhd,再挂载回win8.vhd,会发现文件完好无损。

于是基于此衍生了以下的应用方式。

差分硬盘——可以实现秒备份、秒恢复,完美的保护了系统盘并且免于重装系统,完胜ghost。

分支硬盘——原理也是基于差分硬盘,可以在随意扩展系统的数目,扩充为N个独立的win7/8,执行不同的任务。

下面开始:

第一招,创建差分硬盘并备份:现在你应该已经有了一个d:\win8.vhd,并已经在里面安装好了win8,能够顺利启动,并且安装好了驱动。现在我们重启进入PE或者双系统的win7里,将win8.vhd改名为win8.base0.vhd,然后进入cmd,输入diskpart,用命令create vdisk file=d:\win8.vhd parent=d:\win8.base0.vhd再创建一个链接到win8.base0.vhd的差分硬盘win8.vhd。现在这个差分硬盘只有80kb(以后会随着使用逐渐增大),现在可以备份一个方便以后还原(命名为backup.vhd)

因为之前启动菜单已经链接到的就是win8.vhd,所以不用再修改启动菜单了。

秒恢复:当你想还原系统时,只需要进入PE或双系统的win7,删掉现在在用的win8.vhd,将backup.vhd改名为win8.vhd,然后重启即可。

当你想要再次备份目前的系统时,只需要加入第三层差分硬盘即可,方法和之前一样,将win8.vhd改名为win8.base1.vhd,创建一个指向win8.base1.vhd的新的差分硬盘win8.vhd。可以无限叠加下去,笔者试验过最多7层,用HDTUNE测试了每一层的读取速度后,都为70m/s,不用担心性能问题。

如果你觉得层数太多占用空间且不好看,可以在diskpart 里使用merge参数向下合并一定的层数。具体可以在diskpart里查看help merge vdisk。

第二招:创建多分枝硬盘。比如我们将win8.base0.vhd作为模版系统了。我们可以分别创建N个指向他的差分硬盘(对,可以一对多),并且用bcdboot命令分别添加启动菜单(方法如前述),这样瞬间就多了N个win8了,而且都不占空间,还互相不受约束,特别适合家里爸爸妈妈公用一台电脑的娃哦!你可以在自己的系统里换上MM的桌面,可以加密码,等等都行。爸妈的系统里就给他们装上什么360啊,qq游戏啊,你自己也免得看的心烦了。

最新文章

  1. Yii2-多表关联的用法示例
  2. tomcat启动时候报错Can't convert argument: null
  3. split shell tools
  4. WM_SETFOCUS和WM_KILLFOCUS、WM_GETDLGCODE、CM_ENTER...
  5. 从 Page not found: / 提示说起,我是怎么发现webstrom与myeclipse冲突问题及解决的
  6. php获取GET方式传入的全部变量名称与值:foreach用法
  7. redis服务启动关闭脚本
  8. Ubuntu 14.04 LTS 与Kylin
  9. Linux – RedHat7 / CentOS 7 忘记root密码修改
  10. Nginx 负载均衡-加权轮询策略剖析
  11. Cocos2D:塔防游戏制作之旅(十五)
  12. Kafka~Linux环境下的部署
  13. How does exercise keep your brain young?
  14. spring cloud 版本号与 boot版本之间的对应关系(版本不对,会导致pom无法引入)
  15. node-rsa
  16. 关于面试总结3-SQL查询
  17. Structs配置文件 zg项目介绍
  18. ssm框架常见问题
  19. noise_process.c
  20. c#接口作为参数传递、返回

热门文章

  1. PHP中使用CURL(一)
  2. JQ N级导航
  3. rabbitmq——镜像队列
  4. HttpServletRequest对象(一)
  5. Saltstack 操作目标,正则匹配,及组管理
  6. java启动子进程以及进程通信
  7. forEach用法介绍
  8. asp脱离源代码管理
  9. HDU 5826 physics
  10. WebDriver使用IE和chrome浏览器