一、前言:

  ubuntu上的virtualbox中的虚拟机如果关机不当会导致整个虚拟机坏掉,而且采用各种debug方式都难以让它重新启动。这时你只能用之前备份的各个VDI文件来恢复系统了。还有另一种场景就是你重新装了一个virtualbox,想把老的另一个virtualbox中的虚拟机包括各个快照节点在新的virtualbox中重建。网上也有资料介绍,不过往往只有文字,我看了很久都没搞定。最终决定自己尝试,下面是成功的图文教程:

二、步骤:

  2.0、首先看老的虚拟机的快照,拍个照保存下他们UUID的树状结构(这个非常重要!为了接下来重建快照树!):

  2.1、首先找到老的virtualbox文件夹:

  2.2、发现之前坏的win7-64文件夹,并找到win7-64.vdi和Snapshots中的*.vdi文件

  

  

  2.3、将win7-64.vdi和Snapshots剪切到其他临时文件夹下,然后完全删除virtualbox中的win7-64虚拟机,删除之后去VirtualBox VMs文件夹下去确认win7-64文件夹已经没有。

  2.4、在virtualbox中新建一个同名的win7-64虚拟机,到达下图步骤时:①去VirtualBox VMs文件夹下发现virtualbox已经新建了一个空的win7-64文件夹;②把之前剪切到临时文件夹下的win7-64.vdi和Snapshots剪切到win7-64中;③然后在新建虚拟电脑时,选择使用已有的虚拟硬盘文件,进入VirtualBox VMs/win7-64下选择win7-64.vdi文件;④接下来就一直点直到建立新的虚拟电脑。

  2.5、我们仿照2.0老的快照树的结构,在新的win7-64中新建成结构一样的树状结构(名字可以不同):

  2.6、找到新建win7-64文件夹下的win7-64.vbox文件:

  2.7、找到win7-64.vbox中的下面4个uuid部分,根据2.0截图的uuid,把对应的uuid替换成老的(用replace all),另存为到其他临时文件夹下~

  

   2.8、关机,删除VirtualBox VMs/win7-64/Snapshots下的无用的vdi文件(文件名就是uuid),用2.7中保存的临时vbox文件替换win7-64.vbox(因为virtual关机这个会更新,所以上一步需要备份)。这样再打开虚拟机,就完成了~

   

三、甜点:

我的所有异常解决都放在该分类下,保存一些要花一点时间才能搞定的异常问题解决方案。

 

     _==/          i     i          \==_
     /XX/            |\___/|            \XX\
   /XXXX\            |XXXXX|            /XXXX\
  |XXXXXX\_         _XXXXXXX_         _/XXXXXX|    @beautifulzzzz 2016-01-14 continue~  
 XXXXXXXXXXXxxxxxxxXXXXXXXXXXXxxxxxxxXXXXXXXXXXX    e-mail:beautifulzzzz@qq.com
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
 XXXXXX/^^^^"\XXXXXXXXXXXXXXXXXXXXX/^^^^^\XXXXXX
  |XXX|       \XXX/^^\XXXXX/^^\XXX/       |XXX|
    \XX\       \X/    \XXX/    \X/       /XX/
       "\       "      \X/      "      /"

http://www.cnblogs.com/zjutlitao/p/5132610.html

virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)的更多相关文章

  1. [异常解决] virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)

    一.前言: ubuntu上的virtualbox中的虚拟机如果关机不当会导致整个虚拟机坏掉,而且采用各种debug方式都难以让它重新启动.这时你只能用之前备份的各个VDI文件来恢复系统了.还有另一种场 ...

  2. VMware 虚拟化编程(15) — VMware 虚拟机的恢复方案设计

    目录 目录 前文列表 将已存在的虚拟机恢复到指定时间点 恢复为新建虚拟机 灾难恢复 恢复细节 恢复增量备份数据 以 RDM 的方式创建虚拟磁盘 创建虚拟机 Sample of VirtualMachi ...

  3. Mac OS X系统下利用VirtualBox安装和配置Windows XP虚拟机

    准备工作 下载并安装VirtualBox for Mac到https://www.virtualbox.org/wiki/Downloads下载VirtualBox <版本> for OS ...

  4. 利用Azure Backup备份和恢复虚拟机(2)

    虚拟机注册之后,下一步就是将他们添加为受保护的项,在菜单底部,单击"保护"按照提示选择需要保护的虚拟机     单击"下一步",在这个页面中需要选择配置虚拟机配 ...

  5. Virtual Box 新建一个虚拟机安装系统(补充:WIN7 64 bit 系统虚拟机无法安装 64 bit 系统问题)

    1.安装Virtual Box好后,点击新建 2.配置内存大小,这个根据自己需要配置就好 3.创建虚拟硬盘 这里选择固定分配.动态分配都可以,接下来就分配硬盘大小了 4.新建好后我们点击刚才建立的虚拟 ...

  6. 生产环境搭建高可用Harbor(包括恢复演练实操)

    生产环境搭建高可用Harbor(包括恢复演练实操) 前言 因资源成本问题,本Harbor高可用架构为最小开销方案,如果资源充足,可以将PG.Redis全部使用使用云厂商集群模式. 同时为了配置简单,并 ...

  7. Win10系统桌面右键新建没有内容怎么恢复

    Win10系统桌面右键新建没有内容怎么恢复 添加txt文本文档 运行->regedit,打开注册表编辑器 展开HKEY_CLASSES_ROOT 找到.txt 选中.txt,修改右侧窗格的“默认 ...

  8. VirtualBox的vdi映像导入遇到的uuid冲突问题 (转)

      virtualbox导入vdi文件时出现下面的问题: 打开hard disk D:\software\GT5.0.0.vdi 失败 Cannot register the hard disk 'D ...

  9. nova 宿主机重启自动恢复虚拟机运行状态

    1. 宿主机重启自动恢复虚拟机运行状态 1.1 参数描述与默认值 # Whether to start guests that were running before the host reboote ...

随机推荐

  1. Cobbler自动化部署

    一:PXE.Kickstart与Cobbler的概念: PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,需要网卡的硬件支持,工作于C/S的 ...

  2. [LeetCode]题解(python):044-Wildcard Matching

    题目来源: https://leetcode.com/problems/wildcard-matching/ 题意分析: 定义两个新字符规则,'?'代表任意一个字符,’*‘代表任意长度的任意字符.输入 ...

  3. 接收串口数据0x00 strlen函数会截断

    写个串口接收程序接收到之后,用了一个上strlen,结果数据不全了,百度了下 strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域) ...

  4. 深入浅出—JAVA(4)

    4.方法操作实例变量

  5. urllib2使用2

    Timeout 设置 import urllib2 response = urllib2.urlopen('http://www.google.com', timeout=10) 在 HTTP Req ...

  6. Android最新源码4.3下载-教程 2013-11

    Android最新源码4.3下载-教程 有的下载会出现问题: 需要 修改manifest.xml中的fetch: "git://Android.git.linaro.org/"  ...

  7. 第四种:GCD

    GCD 1> 概述 Grand Central Dispatch (GCD)是Apple开发的一种多核编程技术.主要用于优化应用程序以支持多核处理器以及其他对称多处理系统. GCD提供函数实现多 ...

  8. XMPP--- error : linker command failed with exit code 1

    error: linker command failed with exit code 1 (use -v to see invocation) 错误原因:libidn.a文件没添加上去 解决方法:l ...

  9. Binary Tree(二叉树+思维)

    Binary Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tota ...

  10. c++ 虚析构函数[避免内存泄漏]

    c++  虚析构函数: 虚析构函数(1)虚析构函数即:定义声明析构函数前加virtual 修饰, 如果将基类的析构函数声明为虚析构函数时,由该基类所派生的所有派生类的析构函数也都自动成为虚析构函数. ...