对vbox中的snapshot原理的理解

对该问题的研究始于以下错误提示:

我本想选择虚拟机的vid文件为“直接写穿模式”  (WriteThrough),但是选择后,出现如下提示。

=======================================================

Error changing disk image mode from Normal to Writethrough.

Cannot change type for medium ‘/home/apuser/E-disk/vbox-win7/win7-32bit.vdi‘ since it has 1 child media.

Result Code: VBOX_E_OBJECT_IN_USE (0x80BB000C)

Component: Medium

Interface: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}

========================================================

故而研究,结论如下:

关于Vbox的snapshot:每次新的snapshot都是一个基于上一个snapshot的差分文件(在虚拟介质管理器中可以看到他们是一个个vid文件,且依赖于自己的父亲)

删除一个snapshot的动作,会让被删除的snapshot合并(merge)到自己的儿子,其原因是儿子是基于父亲的,所以儿子是父亲的超集,先前儿子的差分文件中仅仅只记录了相对于父亲的增量,现在父亲消失了,那么儿子的差分文件中就必须将父亲相对于父亲的父亲(儿子的爷爷)的差分内容包含进来。

举例:删掉5以后,6对应的差分文件中就会包含5对应的差分文件,但这对用户而言虽然6的差分文件变化了,但是恢复到6后看到的内容不会改变。

设:

5 = 4 + DeltaA

6 = 5 + DeltaB

则:

删掉5以后,会导致6 = 4 + DeltaA + DeltaB

所以,虽然6的差分包变大了,用户但是6的内容还是不变,因为6相对于4的差分本来就是DeltaA + DeltaB

如:

snapshot-1

snapshot-2

snapshot-3

snapshot-4

snapshot-5

snapshot-6

current-state

不要将恢复(restore)和删除混淆,如恢复到4,则只是将当前状态(current-state)置为和4一样的状态,5和6依然是存在的,你还可以再次恢复到5、6

current-state是临时的,所以如果你想恢复到某个历史状态,最好将curent状态先snapshot一下,否则你就会永远丢掉current状态。

你可以恢复到任何一个历史snapshot-x,这相当于从x又拉出来一个新的分支而已。这就是snapshot的强大之处。

因为每个snapshot对应一个vid文件,有以上可见,只要从下往上逐个删除snapshot,便可以将所有修改全部合并到原始的vid,从而将所有的子vid全部删除。

一个例子,如果你觉得当前的current-state已经很完美,那么你可以将所有的snapshot逐个删除(从6删到1,顺序没关系,大胆删吧),这样,当所有的snapshot都被删除后,current-state就会被写入到最原始的vid中。你就可以将这个vid复制到其它机器上直接使用。

时间: 2024-10-30 13:02:49

对vbox中的snapshot原理的理解的相关文章

理解泛函的概念(图像处理中的数学原理详解)

全文目录请见 图像处理中的数学原理详解(Part1 总纲) http://blog.csdn.net/baimafujinji/article/details/48467225 2.4  从泛函到变分法 作为数学分析的一个分支,变分法(Calculus of Variations)在物理学.经济学以及信息技术等诸多领域都有着广泛而重要的应用.变分法是研究依赖于某些未知函数的积分型泛函极值的普遍方法.换句话说,求泛函极值的方法就称为是变分法. 2.4.1  理解泛函的概念 变分法是现代泛函分析理论

word2vec 中的数学原理详解

word2vec 中的数学原理详解 word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了很多人的关注.由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感.一些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟. 第一次接触 word2vec 是 2013 年的 10 月份,当时读了复旦大学郑骁庆老师发表的论文

ABP中动态WebAPI原理解析

ABP中动态WebAPI原理解析 动态WebAPI应该算是ABP中最Magic的功能之一了吧.开发人员无须定义继承自ApiController的类,只须重用Application Service中的类就可以对外提供WebAPI的功能,这应该算是对DRY的最佳诠释了. 如下图所示,一行代码就为所有实现了IApplicationService的类型,自动创建对应的动态WebAPI. 这么Magic的功能是如何实现的呢? 本文为你揭开其Magic的外表.你会发现,实现如此Magic的功能,最关键的代码

【美术之家】手绘中透视的原理、应用及其练习方法,要收藏的哦

了解透视原理.是在熟练掌握线条的基础上能否准确绘制线稿的一个至关重要的环节.透视原理一一我们在进行手绘图绘制时,是根据空间尺寸在二维平面进行三维空间表达在绘制过程中,我们假想眼球与需要绘制的物体之间有一平面存在.并将平面后的物体运用透视法则投射到平面之上,从而形成该物体在图面上的图像如下面俯视图所示,视点为我们所处的位置,图面为我们与物体间的假想平面,图面后的物体为我们需要表达的三维形态. 第一阶段: 练习的时候还没有建立很强的透视消失感,应借助辅助线找对消失点,并且掌握在任何角度下都能熟练地表

图像处理中的数学原理具体解释21——PCA实例与图像编码

欢迎关注我的博客专栏"图像处理中的数学原理具体解释" 全文文件夹请见 图像处理中的数学原理具体解释(总纲) http://blog.csdn.net/baimafujinji/article/details/48467225 假设你对PCA的推导和概念还不是非常清楚.建议阅读本文的前导文章 http://blog.csdn.net/baimafujinji/article/details/50372906 6.4.3 主成分变换的实现 本小节通过一个算例验证一下之前的推导.在前面给出的

图像处理中的数学原理详解21——PCA实例与图像编码

欢迎关注我的博客专栏"图像处理中的数学原理详解" 全文目录请见 图像处理中的数学原理详解(总纲) http://blog.csdn.net/baimafujinji/article/details/48467225 图像处理中的数学原理详解(已发布的部分链接整理) http://blog.csdn.net/baimafujinji/article/details/48751037 如果你对PCA的推导和概念还不是很清楚,建议阅读本文的前导文章 http://blog.csdn.net/

【转】C#中对IDisposable接口的理解

IDisposable接口定义:定义一种释放分配的资源的方法. .NET 平台在内存管理方面提供了GC(Garbage Collection),负责自动释放托管资源和内存回收的工作,但它无法对非托管资源进行释放,这时我们必须自己提供方法来释放对象内分配的非托管资源,比如你在对象的实现代码中使用了一个COM对象 最简单的办法可以通过实现Finalize()来释放非托管资源,因为GC在释放对象时会检查该对象是否实现了 Finalize() 方法. 有一种更好的,那就是通过实现一个接口显式的提供给客户

图像处理中的数学原理详解9——索伯列夫空间

全文目录请见 图像处理中的数学原理详解(Part1 总纲) http://blog.csdn.net/baimafujinji/article/details/48467225 在泛函分析中,索伯列夫空间并不像 巴拿赫空间或者希尔伯特空间那么引入注意.但是在图像处理中,索伯列夫空间在介绍BV空间(有界变差函数空间)时,会被提到.而BV函数空间对于理解TV算法(偏微分方程在图像处理中的重要内容)至关重要!所以我特别在"图像处理中的数学原理详解"系列文章中留出一个小节来对索伯列夫空间进行必

图像处理中的数学原理详解15——数列的极限

欢迎关注我的博客专栏"图像处理中的数学原理详解" 全文目录请见 图像处理中的数学原理详解(总纲) http://blog.csdn.net/baimafujinji/article/details/48467225 图像处理中的数学原理详解(已发布的部分链接整理) http://blog.csdn.net/baimafujinji/article/details/48751037 数学是图像处理技术的重要基础.在与图像处理有关的研究和实践中无疑需要用到大量的数学知识,这不免令许多基础薄