温馨提示×

CentOS里VirtualBox如何克隆虚拟机

小樊
35
2025-12-27 03:29:21
栏目: 云计算

在 CentOS 宿主机上使用 VirtualBox 克隆虚拟机的实用步骤

一 准备与原则

  • 将源虚拟机完全关机,避免快照未合并或磁盘写入导致的数据不一致。
  • 规划好新虚拟机的名称、存储路径、CPU/内存等资源配置。
  • 克隆方式选择:
    • 完整克隆:与源完全独立,适合长期使用与分发。
    • 链接克隆:依赖源磁盘,占用空间小,适合短期测试。
  • 克隆后会存在网络冲突风险(相同 MAC/IP/主机名),需在系统内做去重处理。
  • 操作前建议对源虚机做一次备份/快照

二 图形界面克隆步骤

  • 打开 VirtualBox 管理器,右键源虚机 → 克隆
  • 输入新虚机的名称保存位置,选择克隆类型:完整克隆链接克隆
  • 完成向导后启动新虚机,按需调整:
    • 网络适配器的连接方式(如桥接/NAT)与MAC 地址策略(建议“生成新 MAC”)。
    • 系统内的主机名IP 地址,避免与源虚机冲突。

三 命令行克隆步骤(推荐)

  • 1)关闭源虚机
    • 建议正常关机:VBoxManage controlvm "<源虚机名>" acpipowerbutton
    • 若无法正常关机:VBoxManage controlvm "<源虚机名>" poweroff
  • 2)执行克隆(完整克隆示例)
    • VBoxManage clonevm "<源虚机名>" --name "<新虚机名>" --register
    • 指定新虚机目录:--basefolder /data/VirtualBox/<新虚机名>
    • 仅克隆磁盘:--vdiskonly(如需手动创建新虚机再挂盘)
  • 3)(可选)仅复制磁盘并生成新 UUID(VDI 场景)
    • VBoxManage clonevdi "<原VDI路径>" "<新VDI路径>"
    • 如仍报 UUID 冲突:VBoxManage internalcommands sethduuid "<新VDI路径>"
  • 4)启动与验证
    • 启动:VBoxManage startvm "<新虚机名>" --type headless
    • 查看列表:VBoxManage list vms
  • 说明:上述命令同样适用于 VDI/VMDK 等磁盘格式;若源虚机使用 VMDK,也可用 VBoxManage clonevmdk 复制磁盘后再创建新虚机挂载。

四 克隆后的系统与网络配置

  • 修改主机名(CentOS 7/8 常用)
    • sudo hostnamectl set-hostname <新主机名>
  • 修改网卡配置(示例为 ifcfg-ens33,按实际网卡名调整)
    • 编辑:sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
    • 要点:设置新的 IPADDRGATEWAYDNS1;必要时将 ONBOOT=yes;确保 UUID/DEVICE 与本机一致。
    • 使配置生效:
      • CentOS 7:sudo systemctl restart NetworkManagersudo service network restart
      • CentOS 8+(nmcli):sudo nmcli con reload && sudo nmcli con up "ens33"
  • 清理旧网络持久化规则与 SSH 主机密钥(模板机建议提前清理,避免克隆后冲突)
    • sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
    • sudo rm -f /etc/ssh/ssh_host_*
  • 验证:ip addrping <网关/外网>ssh <新IP>

五 常见问题与排错

  • 启动报错或磁盘不可用:多为UUID 冲突或路径错误。VDI 复制后执行 VBoxManage internalcommands sethduuid "<新VDI>";确认 VirtualBox 设置中磁盘路径正确。
  • 网络冲突/无法获取 IP:删除旧 udev 规则、清理 SSH 主机密钥,并在系统内设置唯一主机名与 IP;必要时在 VirtualBox 中为克隆机生成新的 MAC
  • 空间不足或权限问题:克隆前确认目标磁盘空间充足;复制/注册磁盘时使用具有读写权限的账户。
  • 需要跨主机迁移:优先使用 导出为 OVA 再导入,便于携带与一致性校验。

0