无忧启动论坛

标题: winxp、win7双VHD系统的重大缺陷!请qj_tzy老师进来看看! [打印本页]

作者: 1976yuan    时间: 2011-5-13 16:41
标题: winxp、win7双VHD系统的重大缺陷!请qj_tzy老师进来看看!
这是winxp、win7双VHD系统制作的原帖:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=192870&extra=page%3D1

重大的缺陷就出现在快速还原这个环节。

快速还原是利用grub4dos的dd命令来实现的。

关于grub4dos的dd命令,“grub4dos初级教程_CHM图文版_090411.CHM”有下面这样的描述:
dd 目前不支持创建文件,也不支持改变文件的长度,所以,不存在的文件是不能写入的。
把一个大的文件写入一个小的文件,这个小的文件不会变长。多余的部分扔掉了。
把一个小的文件写入一个大的文件,这个大的文件不会变短。未写的部分保持不变。

根据这样原理,每次快速恢复系统并再次运行VHD系统后,这个winxp_child.vhd文件的体积只会不断的变大。

我这里的实际测试也证明了这一点。

请看下面的图片。
      在安装VHD系统的时候,我设置VHD硬盘的大小是5GB,且为动态磁盘。在安装了基本系统加硬件驱动后我就做了差异盘,根据常理,父盘的最大尺寸是5GB,差异盘的体积也是不会超过5GB的,但在我的试验中,差异盘的尺寸已经突破了5GB的限制而达到了6.32GB,原因就是我多次执行GRUB4Dos的快速还原命令。每次快速还原都是将15kb的备份文件覆盖体积已经变得很大的差异盘,但是每次覆盖后差异盘的体积却没有变小。
     这样问题就出来了,因为虽然差异盘的体积没有变小,但是当我运行vhd系统后,从VHD系统内部来看,系统本身的的确确是被恢复到了初时状态了,每次恢复后的VHD系统的C盘都是还有4.2GB的可用空间。此时我再向VHD系统的C盘复制一个2GB的超大文件,再观察差异磁盘这文件,发现每次复制文件时,差异磁盘的体积就会直接增加2GB!这样只经过3次快速恢复的操作,差异磁盘的体积就超过了父盘的最大限额5GB。按照这样的情形下去,无论这个分区的体积有多大,最终都会被这个体积不断臃肿的差异盘而耗尽所有的硬盘空间!



[ 本帖最后由 1976yuan 于 2011-5-13 16:50 编辑 ]
作者: q67512    时间: 2011-5-13 21:52
真等到那时候你也可以删了这个vhd再重新建个不就好了,楼主过于担心了。。。
作者: qj_tzy    时间: 2011-5-14 09:44
标题: 回复 #1 1976yuan 的帖子
谢谢您的测试和反馈。

我觉得,若出现这一问题后,目前较好的解决办法是:进入WINPE,删除winxp_child.vhd等子VHD,复制winxp.ch_bak.vhd等备份子VHD为winxp_child.vhd等子VHD即可。

本来,终极的解决办法是,在启动菜单项时执行一ima映像包,此包的功能是执行与上述手动操作相同的功能,但在DOS下需在EISA隐藏的NTFS分区下进行,这一难题,本人无法解决,期待高手们的参与和提出解决之法。

[ 本帖最后由 qj_tzy 于 2011-5-14 10:14 编辑 ]
作者: yjq635    时间: 2011-5-14 10:06
搞个DOS镜像自动进入DOS删除文件,再复制winxp.ch_bak.vhd为winxp.ch.vhd,再加载grub返回启动菜单,貌似只要拿ghost.IMG修改不就行了么,这样不会出现dd的问题,也不要进入PE手动删除,那么麻烦
作者: lianjiang    时间: 2011-5-14 11:27
dos也不是万能的。


作者: amd1969    时间: 2011-5-14 13:37
很简单grub4dos设置多个系统,或者放置pe启动文件,开机进另一个系统,或者pe删除,替换就行
作者: 2011dingfei    时间: 2011-5-15 10:58
快速还原可以这样设计: 删除差分vhd,拷贝一份备份文件,再改名。

就这么简单,哪有你说的那么复杂?!!
作者: victor888    时间: 2011-5-15 10:59
LZ的报告与0CAT的不符,见:http://bbs.wuyou.net/forum.php?m ... page%3D1&page=2

是不是因为LZ弄的是动态磁盘,而OCAT弄的是固定容量的磁盘缘故?
作者: lianjiang    时间: 2011-5-15 12:22
原帖由 2011dingfei 于 2011-5-15 10:58 发表
快速还原可以这样设计: 删除差分vhd,拷贝一份备份文件,再改名。

就这么简单,哪有你说的那么复杂?!!


删除也好,改名也罢,都需要在vhd系统以外的系统下完成,这才是问题的关键。
作者: xianglang    时间: 2011-5-15 14:32
谁说母盘5GB,差分动态磁盘就一定是或者小于5GB了?如果养分磁盘建立时大于5GB,而在使用时装的东西太多,超过5GB是十分正常的事情。如果只是使用G4D的DD命令进行复制覆盖,绝对不会搞大差分磁盘的体积,除非你自己使用的差分磁盘在使用时就搞大了。
作者: jebbs    时间: 2011-5-15 20:42
原帖由 victor888 于 2011-5-15 10:59 发表
LZ的报告与0CAT的不符,见:http://bbs.wuyou.net/forum.php?m ... ;tid=183850&extra=page%3D1&page=2

是不是因为LZ弄的是动态磁盘,而OCAT弄的是固定容量的磁盘缘故?


做差分的,应该不会是固定大小的VHD吧
作者: 2010hymz    时间: 2011-5-24 22:42
VHD 记录磁盘信息 不是文件信息     如 可恢复已删除文件  你说 VHD文件怎么用会变小呢    肯定会越来越大
作者: qj_tzy    时间: 2011-5-25 09:24
标题: 回复 #12 2010hymz 的帖子
本来用DD命令还原并不能使目标子VHD变小,但还原后,用vboot启动子VHD文件时,vboot会自动对子VHD文件进行处理,会使其变小,由此间接达到了子VHD文件变小的目的。
作者: 0cat0    时间: 2011-5-25 12:30
原帖由 victor888 于 2011-5-15 10:59 发表
LZ的报告与0CAT的不符,见:http://bbs.wuyou.net/forum.php?m ... page%3D1&page=2

是不是因为LZ弄的是动态磁盘,而OCAT弄的是固定容量的磁盘缘故?


我弄的也是动态的,就像楼上说的,执行DD命令后,文件大小是不变的,但你用过一次后,VHD文件就会自动改变体积了,除非DD命令有BUG,不然,楼主所但心的问题是不存在的。。。
作者: ls68057121    时间: 2011-5-28 00:21
哈哈,郁闷咯。我一直想用双系统来的
作者: rzsggg    时间: 2011-7-7 23:06
进Diskgen后删除和复制文件,这个耗时最短




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3