前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >↔️OpenWRT从Hper-V迁移至PVE指引

↔️OpenWRT从Hper-V迁移至PVE指引

原创
作者头像
Yawata的技术报告
发布2025-03-07 13:14:41
发布2025-03-07 13:14:41
7300
代码可运行
举报
运行总次数:0
代码可运行

本文原载于《OpenWRT从Hper-V迁移至PVE指引 | Deep Router》,同步更新至腾讯云创作者社区。

😀 本篇文章主要介绍如何将Hyper-V的VHDX虚拟磁盘导入到PVE(Proxmox Virtual Environment)下,从而实现将OpenWRT直接从Hyper-V平台迁移到Proxmox VE(PVE)平台,避免重新配置的繁琐过程,最大程序保留原OpenWRT系统的可用性。

本次大规模迁移的原因是原来我的旁路由(旁路网关)所使用的OpenWRT部署在日常使用Windows PC的Hyper-V里。而因为自己买了新的N4100工控机,4个2.5G网口,这样就可以实现全屋2.5G,提升内网的传输速度,同时将软路由(以及附带的旁路网关、旁路由、DNS服务器、Docker等等七七八八)从日常使用的PC中分离出去,减少家里网络因为我电脑问题产生的波动,同时日常使用的PC专注用于工作和使用Moonlihgt + Sunshine串流Steam打游戏。而且换了之后,日常使用的PC也可以休眠或者关机,省点电费~~(并没有)~~。另外还有就是软路由数据与系统的分离,可以将Proxmox VE(PVE)的备份数据存放在smb挂载的磁盘上并定时备份,减少All in Boom之后的工作量和损失。

📝 Hper-V至Proxmox VE迁移过程

导出Hyper-V虚拟机

在Hyper-V Manager(Hyper-v管理中心)选择想要导出的虚拟机,我们以OpenWRT为例:右键导出,选择存放位置。

导出后的文件夹里包括:SnapshotsVirtual Hard DisksVirtual Machines ,OpenWRT的虚拟机VHDX磁盘位于Virtual Hard Disks 内。

代码语言:javascript
代码运行次数:0
复制
Exported Folder Structure:
├── Snapshots
├── Virtual Hard Disks
│   └── immortalwrt-23.05.3-x86-64-generic-squashfs-combined-efi.vhdx (rename to openwrt.vhdx)
└── Virtual Machines

例如我的immortalwrt的VHDX为:immortalwrt-23.05.3-x86-64-generic-squashfs-combined-efi.vhdx ,为了便于之后转换和导入操作,可以修改为短一点的名字,例如openwrt.vhdx ,这样在后续输入命令的时候,能够少打点字,同时也减少因为输入VHDX磁盘名称错误带来的无法导入问题。

上传VHDK虚拟磁盘到PVE

由于VHDX不属于ISO镜像或者CT模板,所以无法通过PVE Gui(网页管理器)进行上传,需要自己通过sftp或者共享文件夹的方式上传,例如Winscp或者Termius,可以通过SSH账号密码登录并进行文件传输,文件存放位置选择自己能找到的位置,例如用户目录下。

在PVE上新建虚拟机

这里按照正常的Proxmox VE虚拟机创建流程即可,需要注意有三点:

  1. 如果是EFI镜像,需要在BIOS中选择OVMF (UEFI) ,其他镜像选择默认的SeaBIOS 即可。
  2. 添加网络设备时,需要修改MAC地址为原来在Hyper-V下OpenWRT所使用的虚拟网卡MAC地址,这样可以避免大多数问题,但是例如Zerotier这种需要完全匹配设备信息的,需要单独进行调整:OpenWRT迁移后Zerotier无法连接的解决方案
  3. 不需要添加硬盘和磁盘。

完成后不需要启动虚拟机。

将VHDX磁盘转化为qcow2格式

这里需要通过SSH或者Proxmox VE Shell进入节点机终端(SSH),并执行磁盘格式转换命令:

代码语言:javascript
代码运行次数:0
复制
qemu-img convert -O qcow2 openwrt.vhdx openwrt.qcow2

-O qcow2 :导出格式为qcow2

openwrt.vhdx :源磁盘镜像文件名称

openwrt.qcow2:导出的磁盘镜像文件名称

转换可能需要一点时间,请耐心等待。

挂载Hyper-V虚拟磁盘镜像

这里需要通过SSH或者Proxmox VE进入节点机终端(SSH),并执行导入命令:

代码语言:javascript
代码运行次数:0
复制
qm importdisk 101 openwrt.qcow2 nvme --format=qcow2

101 :刚刚新建的PVE虚拟机的VM ID,也就是那个序号。

openwrt.qcow2 :刚刚我们转换完的磁盘镜像。

nvme:存储卷名称,例如local,或者你所添加的其他存储名称。

--format=qcow2 :将磁盘以 qcow2 格式导入

导入完成后,在Proxmox VE(PVE) GUI面板,选择创建的新的OpenWRT虚拟机,选择【硬件】,双击未使用的硬盘,然后点击添加,就实现了磁盘由Hyper-V到Proxmox VE(PVE)的完整迁移。

🤗 总结归纳

开启OpenWRT虚拟机进行后续测试,目前我的测试结果是:

软件

情况

OpenClash

正常

MosDns

正常

AdGuard Home

正常

DDNS-GO

正常

Zerotier

正常

Prometheus Exporters

正常

Qos Mate

正常

Docker

正常

Tailscale

正常

Zerotier的修复办法也已经同步进行了更新:《OpenWRT迁移后Zerotier无法连接的解决方案

📎 参考文章

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 📝 Hper-V至Proxmox VE迁移过程
    • 导出Hyper-V虚拟机
    • 上传VHDK虚拟磁盘到PVE
    • 在PVE上新建虚拟机
    • 将VHDX磁盘转化为qcow2格式
    • 挂载Hyper-V虚拟磁盘镜像
  • 🤗 总结归纳
  • 📎 参考文章
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档