本次虚拟机迁移是基于VirtualBox虚拟机,如果要尝试安装和创建虚拟机请前往:virtualbox的安装与使用、安装镜像创建虚拟机

VirtualBox的结构介绍

虚拟机可以转化为容器吗 虚拟机可以迁移吗_linux

虚拟机可以转化为容器吗 虚拟机可以迁移吗_虚拟机_02

  • xxx.vdi : 这个文件是磁盘映像,创建虚拟机的时候创建的
  • xxx.vboxxxx.vbox-prev:这个两文件虚拟机的配置文件,记录了所以配置信息,如快照,虚拟磁盘等,核心文件是.vbox文件
  • xxx.vmdk : 这个文件是虚拟机磁盘,是用来扩展机器存储空间,创建虚拟机一般是没有次文件的
  • {UUID}.vdi :磁盘映像文件的快照
  • {UUID}.vmdk : 虚拟机磁盘文件的快照

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

不带快照

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

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

  • 迁移到本机机器不同目录
  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在对应位置修改,如下图:

虚拟机可以转化为容器吗 虚拟机可以迁移吗_创建虚拟机_03

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

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

带快照迁移

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

虚拟机可以转化为容器吗 虚拟机可以迁移吗_虚拟机_04

  • 迁移到本机机器不同目录
    带快照的迁移步骤上面一样的,在注册这步多了重新设置快照文件的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

将快照注册到对应位置,如图:

虚拟机可以转化为容器吗 虚拟机可以迁移吗_虚拟机_05


  • 当才华还配不上野心,就静下来学习
  • blog地址:https://starsea.51vip.biz