在 VMware ESXi 上, 使用 .ova 格式导入虚拟机非常方便, 基本可以做到一键迁移。但是到了 PVE (Proxmox VE) 之后, 该如何导入 RouterOS 虚拟机?
直接把 VMware 导出的 .ova 虚拟机导入 PVE, 虽然虚拟机可以正常启动, 但是 RouterOS 的许可证无法保留。难道 PVE 就不能迁移已经购买许可证的 RouterOS 虚拟机了吗?
可以的, 可以的兄弟, 跟着我的步骤做, 包可以的!
在 PVE 中导入 RouterOS
我们从头开始, 在 PVE 中配置 RouterOS 软路由。
RouterOS 的许可证与虚拟机 磁盘配置 有关, 如果直接使用 PVE 默认的虚拟磁盘配置, 会导致原来的许可证无法识别。所以在迁移过程中, 需要保持 RouterOS 原来的虚拟磁盘信息。
跟着下面的步骤操作, 就可以把 VMware ESXi 上的 RouterOS 虚拟机迁移到 PVE, 并保留原来的许可证。
导入 VM 磁盘
首先把 RouterOS 虚拟机的磁盘镜像上传到 PVE 宿主机上。PVE 支持常见的虚拟磁盘格式, 例如 .ova、.qcow2、.raw、.vmdk、.img, 都可以进行导入。
不过, 我在导入 .ova 时遇到了一些问题, 因此这里先解压 .ova 文件, 然后单独导入两个 .vmdk 磁盘文件。
在 PVE 网页管理界面中, 进入 local 存储, 选择 Import -> Upload, 然后将两个 .vmdk 磁盘文件分别上传。

创建虚拟机
点击 Create VM 创建一个新的虚拟机。勾选 Add to HA, 将虚拟机加入 PVE HA
RouterOS 作为软路由使用, 需要设置为开机自动启动, 并设置启动顺序为 1、启动延迟为 0 秒、关机超时为 10 秒

这里不需要挂载 CD/DVD 镜像, 选择不使用任何介质即可

Machine 选择 q35, SCSI Controller 选择 LSI 53C895A

这里不需要创建虚拟磁盘
删除默认创建的磁盘, 后面再手动导入从 VMware ESXi 导出的 .vmdk 磁盘


CPU 分配 6 核心, Type 选择 host, 让虚拟机直接使用宿主机的 CPU 特性

内存设置为 2048 MiB (2 GiB), 对于 RouterOS 软路由来说已经足够

创建第一个网络接口时, 关闭 Firewall。第二个网卡稍后再添加

完成虚拟机创建后, 先不要启动虚拟机, 接下来需要先导入 RouterOS 的 .vmdk 磁盘
导入磁盘
虚拟机创建完成后, 将之前上传到 PVE 的 .vmdk 磁盘导入到这个虚拟机中。
这里需要特别注意: 磁盘控制器一定要使用 IDE, 不要直接使用 PVE 默认的 SCSI、VirtIO 等磁盘控制器。
RouterOS 的许可证与硬盘有关。如果磁盘类型、序列号等信息发生变化, 会导致原来的 许可证丢失, 或者出现 无法识别虚拟磁盘 的情况。
在 PVE 的存储界面中找到之前上传的 .vmdk 文件, 双击磁盘镜像, 将其导入到刚刚创建的虚拟机。
将 RouterOS 系统盘导入虚拟机

原来的 RouterOS 虚拟机有扩展磁盘, 也需要按照相同方式导入

所有磁盘导入完成后, 检查一下虚拟机的硬件配置, 确认系统盘和扩展磁盘都已经正确添加

设置启动顺序
进入虚拟机的 Options -> Boot Order
关闭从 net0 网络启动, 只保留 ide0 作为启动磁盘

保留许可证
接下来是整个迁移过程中最关键的一步。
进入 PVE 宿主机, 通过 SSH 或 VNC 终端修改虚拟机配置文件。
下面以虚拟机 ID 104 为例。这里的 104 就是你创建的 RouterOS 虚拟机 ID, 如果实际 ID 不同, 替换成对应的 ID
vim /etc/pve/qemu-server/104.conf
找到刚才导入的磁盘配置
ide0: local-lvm:vm-104-disk-0,size=60M
ide1: local-lvm:vm-104-disk-1,size=512M
在每个磁盘配置后添加 RouterOS 原来使用的虚拟磁盘型号和序列号
,model=VMware%20Virtual%20IDE%20Hard%20Drive,serial=00000000000000000001
保存配置文件后, 返回 PVE 网页管理界面, 就可以看到刚才修改后的磁盘配置
确认磁盘型号和序列号等信息都已经正确显示

虚拟机配置文件完整内容如下
arch: x86_64
boot: order=ide0
cores: 6
cpu: host
ide0: local-lvm:vm-104-disk-0,size=60M,model=VMware%20Virtual%20IDE%20Hard%20Drive,serial=00000000000000000001
ide1: local-lvm:vm-104-disk-1,size=512M,model=VMware%20Virtual%20IDE%20Hard%20Drive,serial=00000000000000000001
machine: q35
memory: 2048
meta: creation-qemu=11.0.3,ctime=1790677859
name: MikroTik-RouterOS
net0: virtio=BC:24:11:0F:FF:CD,bridge=vmbr2
net1: virtio=BC:24:11:EC:F4:4A,bridge=vmbr3
numa: 0
onboot: 1
ostype: l26
serial0: socket
smbios1: uuid=baec51ee-5437-4ef2-b250-b9f552888d4a
sockets: 1
startup: order=1,up=0,down=10
vga: std
vmgenid: 0b25c442-80aa-4d5e-8188-a0ccf8468182
配置完成后, 直接启动 RouterOS 虚拟机即可
检查许可证状态
进入 RouterOS 检查许可证状态, 可以看到原来的许可证已经恢复。

许可证直接回来了, 起飞~
原文