Vagrant创建的虚拟机怎么迁移?

Nisus
  • 188

起初, 使用 Vagrant 创建的虚拟机, 默认在 {用户名}/VirtualBox VMs/{虚拟机名} 下.
后来, 发现太占空间了, 就将 VirtualBox 的默认虚拟机路径改成到移动硬盘中, 比如: E:\VMs\ .
现在的问题, 我想将之前在 {用户名}/VirtualBox VMs/ 下虚拟机迁移到 E:\VMs\ 下.

请问这该怎么做呢?
感觉应该也有不少童鞋有这样的需求吧.

环境:
win10
Vagrant 2.2.4

== 解决方案 ==
针对 VirtualBox 虚拟机迁移, 以及Vgrant迁移场景. 我写了python脚本, 可以方便的解决.
地址: https://github.com/Nisus-Liu/...
适用场景:

  1. 别处复制过来 VirtualBox 镜像文件, 想要放到当前电脑的 VirtualBox 中复用;
  2. VirtualBox 重装了, 旧的虚拟机信息丢失. 但磁盘文件还在, 想要继续使用;
回复
阅读 3.4k
1 个回答
Nisus
  • 188

目前已找到一个方式:

  1. 将原虚拟机所在的整个目录移动到你想要的位置。

clipboard.png

  1. 打开 {虚拟机名}.vbox-prev 或者 {虚拟机名}.vbox (文本打开). 复制 Machine 节点的uuid属性.

clipboard.png

  1. id的文件替换为粘贴板中的值, 也就是上面虚拟机中的uuid.

clipboard.png

---- 更新 ----

上面说的方式, 是在原有 vagrant 工作目录的数据删除的情况下(.Vgrant/).
如果文件没有删除, 可以尝试将 synced_folders 中的 hostpath 的值修改移动后的虚拟机位置:

{
    "virtualbox": {
        "/vagrant": {
            "__vagrantfile": true,
            "disabled": false,
            "guestpath": "/vagrant",
            "hostpath": "E:/Work/Vagrant/{虚拟机名称}"
        }
    }
}
宣传栏