前言
虚拟化迁移(P2V/V2V)是运维中常见的操作,但在跨平台环境下,总会遇到一些坑。本文分享我从飞牛 NAS 迁移 OpenWRT 和 Windows 虚拟机到 Windows VMware 的完整实战过程,包括 QCOW2 转 VMDK、双磁盘虚拟机导入、旁路由网络配置等。
迁移背景
我在飞牛 NAS 上运行了两台虚拟机:
- OpenWRT 旁路由虚拟机
- 单网口,原本在 NAS 上运行稳定。
- Windows 虚拟机
- 分配两个虚拟磁盘,一个在 SSD(系统盘),一个在机械盘(数据盘)。
目标是将它们迁移到 Windows 下的 VMware Workstation 环境,保持原有功能,并能够在 Wi-Fi 或有线环境下正常使用。
OpenWRT 迁移实战
从 QCOW2 到 VMware
NAS 上导出的 OpenWRT 镜像是 QCOW2 格式:
- 复制 QCOW2 文件到 Windows
- 使用 qemu-img 转换成 VMware 支持的 VMDK:
qemu-img convert -p -f qcow2 -O vmdk openwrt.qcow2 openwrt.vmdk
创建 VMware 虚拟机
- 打开 VMware → File → New Virtual Machine → Custom
- 选择 “I will install the operating system later”
- 系统类型选择 “Other Linux 64-bit”
- 硬盘选择 Use an existing virtual disk → 选择转换后的 openwrt.vmdk
- 配置内存、CPU(如 256MB 内存、1 CPU)
- 网络模式根据需求选择桥接(有线推荐)、NAT 或 Host-only
启动与网络验证
- 在 Windows 或手机上测试旁路由功能:
- 桥接到有线网卡 → 手机可通过 OpenWRT 上网
- Wi-Fi 桥接在 Windows 下存在限制,无法完整透传 ARP → 旁路由功能可能失效
💡 结论:Wi-Fi 桥接限制导致旁路由不能完全工作,而有线桥接或 Linux 桥接(NAS/群晖)可完美实现。
Windows 虚拟机迁移(双磁盘)
QCOW2 转 VMDK
原 Windows 虚拟机有两块磁盘:
disk1.qcow2 → 系统盘(SSD)
disk2.qcow2 → 数据盘(机械)
分别转换:
qemu-img convert -f qcow2 -O vmdk disk1.qcow2 disk1.vmdk
qemu-img convert -f qcow2 -O vmdk disk2.qcow2 disk2.vmdk
提示:不要尝试合并两个磁盘,保持原有分盘结构更安全。
VMware 创建虚拟机
- File → New Virtual Machine → Custom
- 系统类型选择 Windows 版本
- 创建虚拟机时选择 Use an existing virtual disk → disk1.vmdk
- 完成后添加第二块磁盘 → disk2.vmdk
- 启动虚拟机
系统验证
- 系统盘正常引导,Windows 可启动
- 数据盘通过磁盘管理分配盘符,即可访问原始数据
💡 注意事项:
- 网络接口名称可能变化(物理机是
eth0,虚拟机可能变为ens33) - 物理机迁移到虚拟机可能需要安装或修复驱动
旁路由与网络设置经验
- Wi-Fi 桥接在 Windows 上无法完全透传 ARP → OpenWRT 旁路由不能给其他设备上网
- 有线桥接或 Linux 桥接 → 完全透传广播包,旁路由功能正常
- 对于测试环境或内部 NAT,可以使用 VMware Host-only + NAT 配合 OpenWRT
总结与经验教训
- P2V 迁移核心路径
原物理机/虚拟机 → QCOW2 → qemu-img 转 VMDK → VMware 挂载
- 双磁盘虚拟机不要合并,保持系统盘和数据盘独立
- 旁路由必须保证网络桥接真实透传
- 快照和备份很重要,迁移前后都应做快照
- VMware Workstation 不支持 PCIe 独显直通,只能在 ESXi 上做 DirectPath I/O
收获
- 成功将 OpenWRT 和 Windows 虚拟机迁移到 Windows VMware
- OpenWRT 在有线桥接下作为旁路由功能完全恢复
- Windows 双磁盘虚拟机正常运行,数据完整
🎯 技术总结:QCOW2 → VMDK 转换 + 双磁盘挂载 + 网络桥接配置,是跨平台迁移的最佳实践
发表回复