设为首页 收藏本站
查看: 1239|回复: 0

[经验分享] virtualbox的分支备份功能

[复制链接]

尚未签到

发表于 2015-4-14 07:09:01 | 显示全部楼层 |阅读模式
  由于之前把系统搞坏了郁闷的又重装了下,后来长了个记性,进行备份下
  http://blog.sina.com.cn/s/blog_591a2c940100fyti.html
  【名词解释】
  Snapshots:系统快照,保存虚拟系统在某一时刻的全部运行状态,以后可以将虚拟系统恢复到创建此快照时的状态。在VirtualBox中文版中,snapshots被翻译成“备份”。
  
  使用虚拟机最方便的一点是可以随时备份系统状态(创建快照),然后就可以放心地折腾了,即使把虚拟系统搞坏了也可以随时恢复到备份时的状态,甚至是正在运行中的状态,比“一键还原”还方便。
  
  不过VirtualBox以往的版本与VMware等其他虚拟机软件相比有一个不足之处,就是它只能恢复到最近一个备份的状态,如果要恢复到更久以前的备份,得先删除最近的备份才行。而前几天刚刚发布的VirtualBox 3.1版,增加了分支快照(branched snapshots)功能,可以将虚拟系统直接恢复到任意时间的备份,并且保留最近的备份,当修改了过去备份的状态后,可以在原有的备份时间线上创建一个分支,并且可以随时在不同分支上继续运行系统。
  
  对于没有用过这个功能的人,可能用具体的例子来说明会更容易理解一些。
  下面是我刚在虚拟机中装好的一个系统,我创建了一个备份,命名为“新装系统”。
DSC0000.gif

  当我在这个系统中进行了一些操作之后,当前状态相对于“新装系统”的状态已经改变了,我可以基于这个状态再创建一个备份,命名为“备份1”。
DSC0001.gif

  
  我可以根据需要继续在不同的时间点创建备份,如“备份2”、“备份3”、“备份4”。到目前为止,操作和VirtualBox以前的版本是一样的,在以前的版本中,我只可以恢复到最近一个备份——“备份4”,不能直接恢复到更早的备份。
DSC0002.gif

  
  而在3.1以后的版本中,可以直接恢复到“备份1”,或者任何一个备份,而不会对其他已经创建的备份产生影响。
DSC0003.gif

  
  这个时候,虚拟系统的当前状态就是基于“备份1”的了,在备份时间线上产生了一个分支。
DSC0004.gif

  
  在这个分支上,可以再创建新的备份,如“备份a”、“备份b”、“备份c”。
DSC0005.gif

  
  现在,虚拟系统的当前状态是基于“备份c”的,不过可以随时切换到另一个分支,比如恢复到“备份4”的状态。
DSC0006.gif

  
  根据同样的操作,可以恢复到任意时刻的备份继续运行,并创建新的分支。
DSC0007.gif

  
  分支快照功能的好处是,我们可以在一个虚拟系统中保存不同的状态,比如一个用于工作,一个用于娱乐,一个用于测试软件等等。可以随时在这些不同的状态中切换,而不用创建多个虚拟系统了。
  
  当然,虽然备份状态可以有很多,但是当前状态只能有一个,也就是说,这些不同的状态是不能同时运行的。如果需要同时运行多个不同的环境,就得创建多个虚拟系统了,可以参考我之前的文章《在VirtualBox里复制VDI文件》。
  
  
  《在VirtualBox里复制VDI文件》
  在VirtualBox的快速修复界面里,可以随时生成当前状态的备份。当生成了备份之后,会在Snapshots目录下创建一个新的VDI文件,之后对当前状态所做的一切操作都将针对最新的VDI文件,而VDI目录下的初始VDI文件就不会再改变了。
DSC0008.png

  
  我一般在装好Guest OS并做完打补丁、安装常用软件等操作后就创建一个备份,如果Guest OS发生了问题可以随时恢复到干净的系统。但是有时需要在不同的软件环境下做不同的事情,开始时我希望能用一个VDI文件生成两个不同的备份并分别配置成不同的环境,但是发现VirtualBox的备份是线性的,也就是说只能针对当前状态做一个备份,而恢复备份时也只能恢复到上一个备份的状态,不能同时存在两个不同的当前状态。
  
  没有办法,只能把初始的VDI文件复制出来一份用于另外的环境。但是很快发现,复制出来的VDI文件无法在虚拟介质管理器中注册,因为每个VDI文件都有一个唯一的uuid,而VirtualBox不允许注册重复的uuid。
  
  看了帮助文件后,发现VBoxManage有一个clonevdi方法可以克隆VDI文件,并赋予它一个新的uuid。具体用法是在命令行里执行:
  VBoxManage clonevdi 原始VDI文件名 新的VDI文件名
  直接写VDI文件名即可,不用指明VDI文件所在路径,新的文件会在全局设定中指定的VDI目录下创建。如果VDI文件名里带有空格,应该在两端加上双引号。VBoxManage命令位于VirtualBox安装目录下,缺省路径是C:\Program Files\Sun\xVM VirtualBox。
  
  用这个方法创建了新的VDI文件后,就可以正常注册并在另一个虚拟机中使用了。
  
2008-12-25更新:  本月17日VirtualBox发布了2.10版,在这个版本里,VBoxManage clonevdi命令改为了VBoxManage clonehd,它的用法如下:
  VBoxManage clonehd          |
                            [-format VDI|VMDK|VHD|RAW|]
                            [-remember]
  可以看到,使用-format参数,除了VDI格式的虚拟磁盘文件以外,它还支持VMDK(VMWare)、VHD(Virtual PC)等格式。为了向下兼容,它仍然支持使用VBoxManage clonevdi命令来复制VDI格式的文件。
  
  2009-08-09更新:
  在VirtualBox的最新版本中,已经可以将同一个vdi文件用于多个虚拟系统了。使用方法是:先按正常方式创建一个虚拟系统,创建或选择一个vdi文件,然后做一个备份;接下来创建第二个虚拟系统,再次选择这个vdi文件,同样也创建一个备份。这样,两个虚拟系统就可以各自在不同的环境下运行了,初始的vdi文件是不变的,各自的更改记录在备份文件中。
  
  2009-12-05更新:
  在刚刚发布的VirtualBox 3.1版中,增加了分支快照(branched snapshots)功能,可以恢复任意时刻的备份了,请参考《VirtualBox分支快照功能的使用》。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56853-1-1.html 上篇帖子: VirtualBox 虚拟机磁盘空间不够用,增大空间方法(这里以MAC为例) 下篇帖子: Virtualbox 虚拟机 Ubuntu 无线上网设置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表