VirtualBox虚拟机迁移/复制(带快照)

本次虚拟机迁移是基于VirtualBox虚拟机,如果要尝试安装和创建虚拟机可以去搜索:virtualbox的安装与使用、安装镜像创建虚拟机

1、VirtualBox的结构介绍

vb1 vb2
  • xxx.vdi : 这个文件是磁盘映像,创建虚拟机的时候创建的

  • xxx.vboxxxx.vbox-prev:这个两文件虚拟机的配置文件,记录了所以配置信息,如快照,虚拟磁盘等,核心文件是.vbox文件

  • xxx.vmdk : 这个文件是虚拟机磁盘,是用来扩展机器存储空间,创建虚拟机一般是没有次文件的

  • {UUID}.vdi :磁盘映像文件的快照

  • {UUID}.vmdk : 虚拟机磁盘文件的快照

注:迁移有风险,迁移时要多细心

2、不带快照

2.1 迁移到不同机器

(1)迁移的时候只需要将.vdi.vbox.vbox-prev文件迁移到不同机器,由于是在不同的机器上进行迁移,是不涉及到镜像文件的UUID相同情况,因此比较简单,只需要打开虚拟机的配置文件.vbox文件,修改里面的关于路径的几个配置项,一般是在文件的开头位置,如下图:

vb3

(2)在新机器上的VirtualBox软件中注册刚修改的文件,有.vmdk 文件也需要注册,否则不注册。如下图:

vb4

新机的迁移就这么简单完成了。

2.2 迁移到本机机器不同目录

(1)迁移的时候只需要将.vdi.vbox.vbox-prev文件迁移到本机机器不同目录,由于是在本机机器上进行迁移,涉及到镜像文件的UUID相同情况,因此需要分两步走:一是修改文件路径,二是修改文件UUID

修改文件路径:打开虚拟机的配置文件.vbox文件,修改里面的关于路径的几个配置项,一般是在文件的开头位置,如下图:

vb5

修改文件UUID:将.vdi.vmdk(没有这个文件,可以忽略)文件重新生成UUID

VirtualBox软件安装目录下执行如下命令重新生成UUID

// 重新生成centos7(two).vdi的UUID
VBoxManage internalcommands sethduuid "F:\VirtualBox\centos7(two)\centos7(two).vdi"

// 重新生成sda7.vmdk的UUID
VBoxManage internalcommands sethduuid "F:\VirtualBox\centos7(two)\sda7.vmdk"

将生成的新UUID在对应位置修改,如下图:

vb6

(2)在VirtualBox软件中注册刚修改的文件,有.vmdk 文件也需要注册,否则不注册。如下图:

vb4

本机的不同目录也迁移完成,只是多一个修改对应的UUID步骤

3、带快照迁移

3.1 迁移到不同机器

带快照的迁移步骤上面一样的,在注册这步多了注册快照文件,注册快照不是在控制中的注册里,是在虚拟介质管理中,如果有多个快照,先注册创建时间早的,依次注册,如图:

vb8 vb7

3.2 迁移到本机机器不同目录

带快照的迁移步骤上面一样的,在注册这步多了重新设置快照文件的UUID重新将快照文件名用新的UUID替换快照注册快照文件

  • 重新设置快照文件的UUID命令:
// 重新生成{53f88484-fab7-48c0-8f66-b996b202b4f8}.vdi的UUID
VBoxManage internalcommands sethduuid "F:\VirtualBox\centos7(one)\Snapshots\{53f88484-fab7-48c0-8f66-b996b202b4f8}.vdi"
//生成的新UUID
UUID changed to: 72695fc0-89a8-461a-9555-692c01202c5e

// 重新生成{1c2217d8-2916-4be6-9fc9-9524827a2977}.vmdk的UUID
VBoxManage internalcommands sethduuid "F:\VirtualBox\centos7(one)\Snapshots\{1c2217d8-2916-4be6-9fc9-9524827a2977}.vmdk"
//生成的新UUID
UUID changed to: 01ba9179-5b51-44d9-b92d-395dc69ab283
  • 将快照文件名用新的UUID替换
{53f88484-fab7-48c0-8f66-b996b202b4f8}.vdi 替换后: {72695fc0-89a8-461a-9555-692c01202c5e}.vdi

{1c2217d8-2916-4be6-9fc9-9524827a2977}.vmdk 替换后: {01ba9179-5b51-44d9-b92d-395dc69ab283}.vmdk
  • 将快照注册到对应位置,如图:
vb9