首页 > 代码库 > linux 虚拟机复制网卡不能启动或使用

linux 虚拟机复制网卡不能启动或使用

很多时候,我们在使用虚拟机的时候,都会安装一个虚拟机作为model,以后需要搭建测试环境都会通过复制model来实现,这样方便又快速、然后在复制出来的新系统网卡查查不能够直接使用,这是因为网卡的mac地址是唯一的,复制的新系统,会生成新的mac地址,而ifcfg-eth0配置文件里面的mac地址还是原来的,所以就需要通过人工修改成新的mac地址。

克隆linux系统后,克隆版无法启动网卡,提示错误:

device eth0 does not seem to be present,delaying initialization 

   原因分析: Linux使用udev动态管理设备文件。VMware会自动生成虚拟机的mac地址。这样,由于克隆出的Linux已经记录了原Linux的网卡mac地址对应于网卡eth0,在克隆出的Linux中由于mac地址发生改变,udev会自动将该mac对应于网卡eth1,以此类推。而其实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。

解决方案:

udev将mac与网卡名称的对应关系保存在/etc/udev/rules.d/70-persistent-net.rules中


记录下新的网卡MAC地址和NAME。

cat /etc/udev/rules.d/70-persistent-net.rules


# PCI device 0x8086:0x100f (e1000)   ------复制前的address  注释掉

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:5f:88:bd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

 

# PCI device 0x8086:0x100f (e1000)   -----复印后生成的新address ,将NAME="eth1" 修改为 NAME="eth0"  ,将ATTR{address}=="00:0c:29:b6:87:56" 值复制在 ifcfg-eth0上

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b6:87:56", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

 

 

vi /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth1                    #修改为新的eth1 。

HWADDR=00:0C:29:b6:87:56       #用新的MAC替换  00:0c:29:b6:87:56 

TYPE=Ethernet

UUID=fa6bcd84-01ab-4b2d-9dd6-8d4a3a1961ac

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.56            #修改IP(如果原虚拟机不同时运行,可以不修改)

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

重启网卡即可:


本文出自 “無言的对白” 博客,请务必保留此出处http://chbinmile.blog.51cto.com/6085145/1879388

linux 虚拟机复制网卡不能启动或使用