写在前面

在日常虚拟机的使用中,很可能会使用虚拟机软件的克隆功能,但是克隆之后的主机,网卡的MAC信息跟被克隆主机的mac信息是不一样的。
由于克隆主机MAC变化,在启动网卡(ifup eth0)时就会产生Device eth0 does not seem to be present, delaying initialization.错误,就像这样:
,那么如何解决这样的问题就是这篇博客的主要内容。

产生问题原因

之所以虚拟机会让克隆主机的MAC改变,是因为在DHCP协议中或者说在内网的通信中,都是通过ARP协议将IP转换为MAC或将MAC转换为IP的,换句话说,局域网通信就是依靠MAC地址通信的,两台主机MAC地址相同则会导致
/etc/sysconfig/network-script/ifcfg-eth0中的网卡信息是被克隆主机的MAC,新主机的网卡已经不是那个MAC了。
查看/etc/udev/rules.d/70-persistent-net.rules可查看本机所有的mac信息,在里面可以看到,被克隆主机的MAC信息是eth0,新产生的MAC信息被识别为了eth1。

解决方案

快速解决方案

/etc/sysconfig/network-script/ifcfg-eth0中的MAC换成新机的MAC,并将eth0换成eth1。

ifup eth0即可发现eth1被启动

但是这种解决方法只能解决上网问题,如果说我们需要让克隆主机的网卡eth0表示第一个网卡,eth1表示第二个网卡,这种方案是行不通的,并且很容易把网卡搞混淆。

升级版解决方案

先将/etc/udev/rules.d/70-persistent-net.rules中eth0删掉,并将其中的eth1改为eth0,之后将/etc/sysconfig/network-script/ifcfg-eth0的MAC改为上面文件中的MAC。

最后,重启Linux之后,ifup eth0就可以发现IP获取正常了!
PS:这里试过只重启network服务,但是不能达到预想的效果,所以就直接重启Linux了。

Your email address will not be published. Required fields are marked *

*