|
再次谢谢2011IVAIO大侠
原文http://bbs.wuyou.net/forum.php?m ... ;tid=193806&extra=page%3D5
对于原文,提供的方法,我感觉有两点不完美
第一必须要关闭uac,如果不关闭UAC,是没办法更改启动项的,所以会失败,但是有个折中办法,把vbs添加到任务计划中,勾选最高权限运行,也可以解决。
第二,如果在系统中突然断电等等,会导致vhd文件不会自动缩小,比如,建立的15g
动态扩展盘, vhd1.vhd 正常关机后比如用掉500mb占用就是500mb,突然断电呢,他会保持15g的大小,并且启动项也更改为另一个vhd2.vhd,如果这也就是说,硬盘最少要留出30g的空间。
后来我想,如果关机时候再更改启动项不就可以完美解决啦,突然断电也不怕,因为这时候非正常关机,启动项并没有被更改为vhd2.vhd还是vhd1.vhd。
然后就用到关机脚本,运行输入gpedit.msc然后展开“计算机配置”--windows设置--脚本启动关机,双击关机,在里面添加bat文件。这样在不关闭uac情况下也可以正常更改启动项,并且还原。
不过这有个缺点,就是遇到非正常关机不能正常还原。对于硬盘空间剩余比较多可以按 2011IVAIO大侠方法去做,如果空间小,像我这样的,那只有用关机脚本了。
原文:
在无忧混了1个礼拜,看了以下两个帖子
1、winxp、win7双VHD系统的安装、启动、快速还原、更改启动项密码方法简介
2、winxp、win7双VHD系统的重大缺陷!请qj_tzy老师进来看看!
觉得太复杂了,不是我等菜鸟能搞定的,本着越简单越好的原则,换了个思路终于解决了每次重启后都恢复初始状态的VHD,共享下,大家拍砖啊。
思路如下:
1、备好一个装好所有软件的VHD,再做一个CHILD-VHD,然后就以这个77K的VHD做文章了。
2、在WINPE环境中,根据这个77K的CHILD-VHD母本,复制为一个77K的CHILD1-VHD和77K的CHILD2-VHD。
3、然后启动VHD,在其中的启动加入start.vbs,静默运行start.bat。
4、在BCD中加入VHD、CHILD1-VHD和VHILD2-VHD三个启动项(可以用bcdedit加入,也可以用图形化工具)。
5、每次重启后都会恢复到CHILD-VHD状态,相当于就是一个影子系统了。
6、如果需要在VHD中安装软件或者更新用户配置,只要在启动时选择用VHD启动或者在CHILD1-VHD和CHILD2-VHD中系统属性-高级-“启动和故障恢复”中将VHD设置为默认操作系统就可以了,安装完后重启又进入了CHILD1-VHD中,然后每次重启后交替进入CHILD1-VHD和CHILD2-VHD中。
注意事项:
1、更新完VHD后,CHILD-VHD、CHILD1-VHD和CHILD2-VHD不需重做就可以启动VHD了,很方便。
2、VHD、CHILD1-VHD和CHILD2-VHD的启动ID如{03f4d39c-812f-11e0-9734-92a053c5fccb}需要根据自己的机器用bcdedit查看后进行修改,否则运行start.vbs后,系统无法启动。
附件:
1、start.vbs
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c start.bat",vbhide
2、start.bat
del E:\WIN7_VHD\WIN7_VHD_CHILD1.VHD
del E:\WIN7_VHD\WIN7_VHD_CHILD2.VHD
if exist E:\WIN7_VHD\WIN7_VHD_CHILD1.VHD goto 1
goto 2
:1
copy E:\WIN7_VHD\WIN7_VHD_CHILD_BAK.VHD E:\WIN7_VHD\WIN7_VHD_CHILD2.VHD
bcdedit /default {03f4d39c-812f-11e0-9734-92a053c5fccb}(注:此ID为CHILD2的启动ID,需用bcdedit等查看后进行修改,括号中内容不包含在批处理命令中。)
goto end
:2
copy E:\WIN7_VHD\WIN7_VHD_CHILD_BAK.VHD E:\WIN7_VHD\WIN7_VHD_CHILD1.VHD
bcdedit /default {fc29435a-812e-11e0-9734-92a053c5fccb}(注:此ID为CHILD1的启动ID,需用bcdedit等查看后进行修改,括号中内容不包含在批处理命令中。)
if exist E:\WIN7_VHD\WIN7_VHD_CHILD2.VHD goto end
copy E:\WIN7_VHD\WIN7_VHD_CHILD_BAK.VHD E:\WIN7_VHD\WIN7_VHD_CHILD2.VHD
:end |
|