首页 > 系统相关 >Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法

Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法

时间:2024-04-09 14:45:25浏览次数:29  
标签:Hyper 虚拟机 Linux 网卡 MAC linux

陌上归人的博客 - 博客园  https://www.cnblogs.com/fjping0606/p/4428495.html

Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法
Hyper-V下的Linux虚拟机网卡丢失问题原因及解决办法
 
虚拟化大势所趋
公司推行了虚拟化,全部用的是Microsoft Windows 2008 R2 Enterprise with Hyper-V做集群跑Hyper-V虚拟机。这是个好东西,节约资源,集中管理,省电,部署超快,关键是可以实时迁移。
 
我们使用Dell MD3000i盘柜做集群的共享磁盘,它是基于iSCSI的千兆以太网网络存储,一坨Dell PowerEdge R610服务器做了一个Windows Cluster,交换设备是juniper EX22000-48t-4G全千兆交换机,并开启了巨帧支持。
 
众所周知,微软的Hyper-V对于自家的windows虚拟机支持很好的,而且还有专门的驱动程序。即使这样linux我们也跑了好多台虚拟机,主要是因为windows的Hyper-V便宜,比ESX实惠。
 
下面来说一说Linux虚拟机与Hyper-V的一些尴尬事儿
1. 网卡要选老的,驱动刚刚发布
在Hyper-V上开Linux虚拟机最致命的一点就是网卡驱动,我们创建一个新的linux虚拟机的时候,转好了linux系统之后发现网卡不能用,因为不管是RHEL还是Ubuntu还是大便的Linux系统都不支持Hyper-V的网卡驱动。这需要我们在Hyper-V Manager把挂载给Linux虚拟机的network Adapter网卡删除,然后添加一块Legacy Network Adapter,这种网卡可以模拟成经典的老式网卡,Linux一般都集成这种网卡的驱动,装好了网络就可以用了。
 
好消息是微软8月刚发布了可以支持RHEL和Ubuntu的Hyper-V下的虚拟机驱动,需要的朋友可以网上google一下,只有几百K,很小的。
 
2. 神呐~我的网卡呢?
做了集群,那么迁移就是不可不免得,有时候我们某一台服务器需要重启维护一下,需要把跑在它身上的虚拟机实时迁移到其他服务器上面去,迁移很顺利,但是发现Linux系统迁移后,网卡找不到了,ifconfig只能看到一个lo的本地回环网卡,eth0跑哪儿去了?
 
赶紧查看网络配置,sudo vi /etc/network/interfaces,发现配置都在,那是为啥eth0没了呢?
 
使用ifconfig -a 来查看所有网卡,发现eth0没了,却多出来了eth1。灵机一动,改了一下interfaces文件
 
sudo vi /etc/network/interfaces
把eth0替换成eth1,然后重启网络服务
sudo /etc/init.d/networking restart
 
哈哈,网卡好啦~~
 
3. 又悲剧了
再后来,有一台ubuntu 9.10 64位版本迁移后,这招不好使了,因为eth1也没找到,后来手动删除了ubuntu的网络配置文件后重启,就好了。
sudo rm /etc/udev/rules.d/70-persistent-net.rules
 
之后总结了一下,linux之所以网卡会丢失是因为Hyper-V新建一个虚拟机默认分配的网卡MAC地址是动态的,每次宿主的迁移会导致重新分配新的MAC给ubuntu,然后丫就找不到eth0了,有时候会自动生成一个eth1。如果你能记得以前的MAC地址,在Hyper-V Manager上手动把MAC指定成迁移之前的老MAC也能解决问题,但问题是谁他妈会记MAC地址啊~~~?
 
所以啊~~清空ubuntu的网络配置缓存文件才是王道,或者在Hyper-V Manager上把分配给Linux的MAC地址设为静态的。
 
 
Hyper-V下安装Linux虚拟机注意事项
1. 创建虚拟机时先别急着装系统,把网卡替换成Legacy Network Adapter
2. 网卡MAC地址别用动态的,指定成静态的
3. 微软刚出了新的Hyper-V下的linux驱动,赶紧安装
4. 网卡丢失后ifconfig -a看看是不是eth0没了,多出来了eth1,然后改interfaces配置
5. 终极大法就是删除linux网络配置缓存sudo rm /etc/udev/rules.d/70-persistent-net.rules

标签:Hyper,虚拟机,Linux,网卡,MAC,linux
From: https://www.cnblogs.com/dlnl/p/18123931

相关文章

  • openGauss 支持HyperLogLog
    支持HyperLogLog可获得性本特性自openGauss1.1.0版本开始引入。特性简介通过使用HyperLogLog相关函数,计算唯一值个数Count(Distinct),提升性能。客户价值提升AP/TP类查询的性能。特性描述HLL(HyperLogLog)是统计数据集中唯一值个数的高效近似算法。它有着计算速度快、节省空间......
  • Ubuntu 18.04无线网卡安装历险记(转)
    问题描述对该问题的解决,耗时数天,曲曲折折。真的可以用“山重水复疑无路”,最后到达了“柳暗花明又一村”。问题环境:Ubuntu18.04,无线网卡为迅捷(Fast)FW150UH(免驱版)。通过系统的网络Wifi设置找不到Adaptor。先是在网上《Ubuntu18.04安装博通(Broadcom)无线网卡驱动》看了相关操......
  • CentOS7 虚拟机 ens33网卡失效
    之前虚拟机ssh连接没问题,今天竟然连不上了。打开虚拟机ipa网卡ens33没有iproot@ubuntu:~/Desktop#ipa1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet1......
  • MacOS虚拟机
    MacOS12虚拟机安装教程目录MacOS12虚拟机安装教程前置条件VMwareworkstation安装步骤!!!完成安装后先不要打开软件!!!解锁vmvare中macos安装功能处理VMware进程和服务解锁MacOS安装功能创建虚拟机安装MacOS12安装VMwareTools工具优化虚拟机mac系统结束语前置条件VMwareWork......
  • Win11中安装虚拟化软件VMware,以及Linux虚拟机的详细安装配置
    文章目录前言安装VMwareWorkstationPro安装注意事项确认服务正常开启确认虚拟网络正常确认虚拟网卡使用VM新建Linux虚拟机新建虚拟机向导开启虚拟机后电脑蓝屏(可能)安装Linux虚拟机登录虚拟机前言记录时间[2024-4-7]本文讲述如何在Win11中安装虚拟化软......
  • 宿主机与虚拟机之间文件互传
    在宿主机和VM虚拟机之间进行互传文件,可以通过共享文件和文件传输的方式来实现。比较便捷的方式是通过共享文件的方式,该方式可以实时的同步宿主机和虚拟机之间对文件的修改。而文件传输的方式的方式则相当于以拷贝的方式来将文件从一台设备发送到另一台设备。以共享文件......
  • ASP.NET中button、linkbutton、imagebutton及hyperlink这四个控件之间的功能区别?
    原文链接:https://blog.csdn.net/weixin_45763353/article/details/118005453Button是按钮控件,具有按钮所有的属性和事件方法,在客户端被渲染为表单元素提交按钮。Linkbutton是链接按钮,用于创建超链接样式的按钮。该控件的外观与HyperLink控件相同,但其功能与Button控件一样。它......
  • Macm2pro成功极简安装各种架构(arch64/x86等)虚拟机
    一、背景首先心血来潮买了mac,再心血来潮想装各种服务器,折腾了一天,发现mac的两款主流虚拟机:VMwareFusion(13)和parallelsdesktop(19)根本没啥用,只能装arm64架构的虚拟机,而且我下载了Kylin-Server-10-SP1-Release-Build04-20200711-arm64还是装不了,点了install之后又跳回来,根本进......
  • 重装系统之后,电脑连网卡都没反应怎么办?
    前言有些电脑比较奇葩,安装完成之后会出现网卡连驱动都没有,这时候要安装电脑驱动可是真的烦躁。怎么下手呢?如果确定电脑的网卡型号还好,直接找个电脑下载个对应的网卡驱动,用U盘复制过去就能安装。但如果不知道电脑网卡驱动型号,那可就烦恼了。电脑安装驱动的首要条件就是......
  • Java基础闲谈-挂掉虚拟机
           今天刷算法题遇到一个需求就是需要程序主动去挂掉虚拟机,这个时候就需要调用System.exit()方法,其中需要填写状态码表示程序退出的状态码。        这个整数参数通常是用来表示程序退出的状态码(exitstatus)。状态码是一个整数值,具体含义可以根据应用程序......