Oracle Linux迁移至Hyper-V后无法识别Hyper-V网络接口的问题求助
Oracle Linux迁移至Hyper-V后无法识别Hyper-V网络接口的问题求助
兄弟,这种从ESXi迁到Hyper-V后网卡失踪的坑我踩过好几次,给你几个实用的排查方向,一步步试应该能解决:
先搞定Hyper-V的核心驱动
从ESXi迁过来的VM还带着VMware的硬件驱动,Hyper-V专属的hv_netvsc网卡驱动大概率没装或者没加载。先做这几步:- 检查当前有没有加载Hyper-V相关模块:
lsmod | grep hv,如果没有任何输出,说明驱动完全没起来 - 安装Oracle Linux官方的Hyper-V集成驱动包:
yum install microsoft-hyper-v - 重新生成包含新驱动的initramfs(比你之前的
dracut -f更彻底):dracut -f --regenerate-all - 重启虚拟机,再用
ip a检查网卡是否出现
- 检查当前有没有加载Hyper-V相关模块:
检查Hyper-V端的硬件配置
有时候问题出在Hyper-V的虚拟机设置上:- 打开Hyper-V管理器,找到你的VM,右键选「设置」,确认「网络适配器」是启用状态,并且已经连接到正常的虚拟交换机(比如外部或内部交换机,确保交换机本身是可用的)
- 如果当前用的是旧的「旧版网络适配器」,试着删掉它,重新添加一个标准的「网络适配器」,Hyper-V的原生网卡对新驱动支持更好
手动加载网卡模块应急排查
如果安装驱动后重启还是没网卡,先手动加载模块试试:modprobe hv_netvsc,加载完立刻跑ip a看有没有新网卡冒出来。如果成功了,把这个模块设为开机自动加载:- 编辑模块配置文件:
echo "hv_netvsc" >> /etc/modules-load.d/hyperv.conf,这样下次开机就会自动加载
- 编辑模块配置文件:
重置网卡的udev规则
迁移后原来的ESXi网卡udev规则可能还在,导致新网卡被系统忽略:- 先备份旧规则:
cp /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.bak - 删除旧规则文件:
rm /etc/udev/rules.d/70-persistent-net.rules - 重启系统,udev会自动识别新的Hyper-V网卡并生成新的规则
- 先备份旧规则:
最后检查内核版本兼容性
要是上面的方法都没用,看看你的Oracle Linux内核版本:uname -r。有些老内核对Hyper-V的netvsc驱动支持有bug,建议升级到对应发行版的最新稳定内核,再重复上面的驱动安装步骤。
备注:内容来源于stack exchange,提问作者Tuanka 01
相关产品推荐
相关产品推荐

