温馨提示×

CentOS下VirtualBox如何实现虚拟机迁移

小樊
46
2026-01-09 19:49:50
栏目: 云计算

CentOS 下 VirtualBox 虚拟机迁移实操指南

一、迁移方式与选择

  • 方式一 OVA 导出/导入:通过 VirtualBox 的“导出虚拟电脑”生成 .ova,在目标主机“导入虚拟电脑”。该方式会自动处理虚拟机的 UUID网卡 MAC,避免冲突,适合跨主机、跨平台迁移与备份恢复。命令示例:VBoxManage export/import。适合大多数场景,优先推荐。
  • 方式二 复制虚拟磁盘并重建 VM:手动拷贝 .vdi/.vmdk 等磁盘,再在目标主机新建虚拟机并“使用已有虚拟硬盘”。若直接复用原磁盘,可能因 UUID 冲突导致无法注册;需先克隆磁盘生成新 UUID,或在导入时让 VirtualBox 重新生成。适合仅需迁移系统盘或对 VM 配置需要完全重做的场景。
  • 方式三 跨平台迁移到 VMware:先在 VirtualBox 导出 .ova,再在 VMware 中“打开/导入 OVA”。注意可能需要安装 VMDK 驱动并调整硬件兼容性设置。适合从 VirtualBox 迁往 VMware Workstation/Player/ESXi。

二、标准步骤 OVA 方式(推荐)

  • 源主机操作
    1. 关闭虚拟机(建议“正常关机”而非强制结束)。
    2. 打开管理界面:文件 → 导出虚拟电脑,选择目标虚机,格式选 Open Virtualization Format 1.0(.ova),按需填写信息后导出。
    3. 将生成的 .ova 通过 scp/rsync/移动硬盘传至目标主机。
      命令示例:
      VBoxManage export “centos7-vm” -o “/path/centos7-vm.ova”
  • 目标主机操作(CentOS 上)
    1. 安装 VirtualBox(示例):sudo dnf install VirtualBox-7.0(或 6.1,视仓库而定)。
    2. 导入:管理 → 导入虚拟电脑,选择 .ova;建议勾选“为所有网卡重新生成 MAC 地址”,避免与局域网其他虚机冲突。
      命令示例:
      VBoxManage import “/path/centos7-vm.ova” --options keepallmacs
    3. 导入完成后启动虚机,按需调整内存、CPU、显示、存储控制器等硬件配置。

三、手动复制磁盘方式(进阶)

  • 源主机操作
    1. 关闭虚拟机;在“存储”中确认磁盘文件路径(如 /path/vm/centos7.vdi)。
    2. 为避免 UUID 冲突,建议克隆磁盘生成新 UUID:
      VBoxManage clonehd “/path/vm/centos7.vdi” “/path/vm/centos7-new.vdi”
      克隆会生成全新 UUID,便于在目标主机注册。
    3. centos7-new.vdi 复制到目标主机(如 scp/rsync)。
  • 目标主机操作
    1. 新建虚拟机(名称、类型 Linux、版本 Red Hat(64-bit) 等),内存/CPU 按源机配置设置。
    2. 到“存储”→“控制器:SATA/IDE”→“添加硬盘”→“选择现有磁盘”,注册并选择刚拷贝的 .vdi
    3. 启动虚机,完成后续网络与服务校验。

四、迁移后的网络与系统调整

  • 避免 IP 冲突与网卡变更
    • 若导入时勾选了“重新生成 MAC”,系统网卡 eth0/ens33MAC 可能变化,导致网络启动异常。建议采用 DHCP 临时获取地址,或按实际环境修正配置后再改为静态 IP。
  • CentOS 7 常见网络配置路径与要点
    • 配置文件位置:/etc/sysconfig/network-scripts/ifcfg-ens33(文件名可能因设备名不同而异)。
    • 关键项:
      • BOOTPROTO=static 或 dhcp
      • ONBOOT=yes
      • IPADDR、NETMASK、GATEWAY、DNS1(静态时填写)
    • 使配置生效:systemctl restart NetworkManager 或 nmcli con reload && nmcli con up “ens33”(按实际连接名)。
  • 主机名与 hosts
    • 修改 /etc/hostname 与 /etc/hosts,避免与源机或其他虚机重名。
  • 验证
    • 检查网络:ip addr、ping 网关/外网域名
    • 检查服务:systemctl status sshd、httpd/mysqld 等业务服务
    • 如遇到 SELinux 报错,可临时 setenforce 0 排障,再按需在 /etc/selinux/config 调整为 permissive/disabled

五、常见问题与排错要点

  • 导入时报 “UUID 已存在/介质已注册”
    • 原因:直接拷贝 .vdi 导致 UUID 冲突
    • 解决:在源机用 VBoxManage clonehd 生成新 UUID,或在导入向导中选择重新生成 MAC/重新初始化磁盘 UUID。
  • 导入后网卡起不来或 IP 冲突
    • 原因:MAC 变化或网络模式(桥接/NAT/Host-only)与目标网络不一致。
    • 解决:在 VirtualBox 网络设置中调整为合适的连接方式;在系统内按实际网络修正 ifcfg 或使用 NetworkManager/nmcli 重新激活。
  • 跨平台导入 VMware 失败
    • 解决:优先使用 .ova;必要时在 VMware 中安装 VMDK 驱动并调整硬件兼容性。
  • 迁移后系统时间异常
    • 解决:在目标主机 BIOS 校准时间,虚机内启用 NTP:timedatectl set-ntp true。

0