本文原载于《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之后的工作量和损失。
在Hyper-V Manager(Hyper-v管理中心)选择想要导出的虚拟机,我们以OpenWRT为例:右键
→ 导出
,选择存放位置。
导出后的文件夹里包括:Snapshots
、Virtual Hard Disks
、Virtual Machines
,OpenWRT的虚拟机VHDX磁盘位于Virtual Hard Disks
内。
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磁盘名称错误带来的无法导入问题。
由于VHDX不属于ISO镜像或者CT模板,所以无法通过PVE Gui(网页管理器)进行上传,需要自己通过sftp或者共享文件夹的方式上传,例如Winscp或者Termius,可以通过SSH账号密码登录并进行文件传输,文件存放位置选择自己能找到的位置,例如用户目录下。
这里按照正常的Proxmox VE虚拟机创建流程即可,需要注意有三点:
EFI
镜像,需要在BIOS中选择OVMF (UEFI)
,其他镜像选择默认的SeaBIOS
即可。完成后不需要启动虚拟机。
这里需要通过SSH或者Proxmox VE Shell进入节点机终端(SSH),并执行磁盘格式转换命令:
qemu-img convert -O qcow2 openwrt.vhdx openwrt.qcow2
-O qcow2
:导出格式为qcow2
openwrt.vhdx
:源磁盘镜像文件名称
openwrt.qcow2
:导出的磁盘镜像文件名称
转换可能需要一点时间,请耐心等待。
这里需要通过SSH或者Proxmox VE进入节点机终端(SSH),并执行导入命令:
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 删除。