zoukankan      html  css  js  c++  java
  • virtualbox 虚拟机镜像在不同机器间迁移共享

    virtualbox 的虚拟机文件为vdi,是一种增量保存镜像文件.

    之前一直使用fedora环境,为了一些工作需要不得不装了XP虚拟机做些测试,并且保存了将近30G的快照.现在切换回windows环境,仍然需要把虚拟机用起来.官方没有提供方法说明怎么样把snapshot导入到虚拟机中,现把自己尝试摸索出来的方法整理出来.

    首先启动virtualbox(版本4.0.0),在管理菜单中有导入向导,但它这个仅仅支持导入OVF格式的文件,也就是说你得事先把虚拟机导出成OVF文件,然后供别的电脑使用. 这个显然不太给力,平时基本无用,本来就10多G的虚拟机,再单独导出来一个ovf文件,实在是麻烦,有现成的vdi文件,为什么不能够直接导入呢.

    其实virtualbox还是支持这个功能的,只是一上来没有注意. 在控制菜单中有个注册功能,其实就是把已经安装好的虚拟机配置文件导入到当前软件中. windows下配置文件时 *.vbox,linux下就是 *.xml,其实是完全兼容的.

    但当尝试导入一个系统时,错误就开始产生了.

    问题很简单,就是系统需要的镜像文件爱你没有注册.这个怎么注册?

    打开管理菜单下的虚拟介质管理,查看系统已经注册的虚拟硬盘

    但问题是,无论怎么着也没有发现怎么样可以添加介质!(我隐约记得linux下是可以注册新介质的,但是为什么windows下不行呢?也许是我的版本有点旧了)

    后来经过摸索,总算发现一个金蝉脱壳之计.

    先随便建一个空的虚拟机

    在它的设置\Storage里面,把现在注册的虚拟硬盘换成需要的那块硬盘,

    这样就自动把硬盘注册了,然后你可以到虚拟介质管理器中把它释放掉,让它不在被当前虚拟机控制.

    对于snapshot来说,也是按照上述方法进行注册,只是需要注意一下,子结点的镜像要在父节点之后注册,不然会报错.当然,你可以按照它提示的错误顺藤摸瓜,直到找到最上层的父节点,再顺次向下注册即可,O(n)时间内就能够解决.

    我这个复杂的镜像树就是这样通过dfs深搜注册回去的

    等到硬盘注册完毕,我们再来注册刚才的那个系统,就可以正常挂载了.

    启动之,一切正常.

    还是很怀旧的

    另外有几个细节问题需要补充一下

    这个是因为虚拟机之前定义的共享数据空间在现在的系统上路径不对

    这个需要对虚拟机配置文件(*.vbox或*.xml)进行直接编辑,删除这样的结点就行了

     <SharedFolder name="Data" hostPath="/media/Data" writable="true"/>

    但是你怎么找也找不到这么一个镜像文件,这又是为什么呢?

    这个基本上是因为原始的虚拟机在配置时挂载了光盘镜像,但在新的电脑上光盘镜像找不到了.仿照上面的方法修改虚拟机配置文件,删除掉这个虚拟光驱就行了.

  • 相关阅读:
    HTML区块
    HTML表单
    JavaScript 表单验证
    HTML头部
    JavaScript
    设计模式—单例模式的六种写法
    new
    new
    new
    new
  • 原文地址:https://www.cnblogs.com/dabaopku/p/1963829.html
Copyright © 2011-2022 走看看