VirtualBox虚拟机迁移/复制(带快照)
本次虚拟机迁移是基于VirtualBox虚拟机,如果要尝试安装和创建虚拟机可以去搜索:virtualbox的安装与使用、安装镜像创建虚拟机
1、VirtualBox的结构介绍
xxx.vdi : 这个文件是磁盘映像,创建虚拟机的时候创建的
xxx.vbox 和 xxx.vbox-prev:这个两文件虚拟机的配置文件,记录了所以配置信息,如快照,虚拟磁盘等,核心文件是
.vbox
文件xxx.vmdk : 这个文件是虚拟机磁盘,是用来扩展机器存储空间,创建虚拟机一般是没有次文件的
{UUID}.vdi
:磁盘映像文件的快照{UUID}.vmdk
: 虚拟机磁盘文件的快照
注:迁移有风险,迁移时要多细心
2、不带快照
2.1 迁移到不同机器
(1)迁移的时候只需要将.vdi
、.vbox
、.vbox-prev
文件迁移到不同机器,由于是在不同的机器上进行迁移,是不涉及到镜像文件的UUID相同情况,因此比较简单,只需要打开虚拟机的配置文件.vbox
文件,修改里面的关于路径的几个配置项,一般是在文件的开头位置,如下图:
(2)在新机器上的VirtualBox软件中注册刚修改的文件,有.vmdk
文件也需要注册,否则不注册。如下图:
新机的迁移就这么简单完成了。
2.2 迁移到本机机器不同目录
(1)迁移的时候只需要将.vdi
、.vbox
、.vbox-prev
文件迁移到本机机器不同目录,由于是在本机机器上进行迁移,涉及到镜像文件的UUID相同情况,因此需要分两步走:一是修改文件路径,二是修改文件UUID
修改文件路径:打开虚拟机的配置文件.vbox
文件,修改里面的关于路径的几个配置项,一般是在文件的开头位置,如下图:
修改文件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在对应位置修改,如下图:
(2)在VirtualBox软件中注册刚修改的文件,有.vmdk
文件也需要注册,否则不注册。如下图:
本机的不同目录也迁移完成,只是多一个修改对应的UUID步骤
3、带快照迁移
3.1 迁移到不同机器
带快照的迁移步骤上面一样的,在注册这步多了注册快照文件,注册快照不是在控制中的注册里,是在虚拟介质管理中,如果有多个快照,先注册创建时间早的,依次注册,如图:
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
- 将快照注册到对应位置,如图: