Jeffrey Wang
文章85
标签144
分类12
克隆主机之后,Linux下eth1如何改为eth0

克隆主机之后,Linux下eth1如何改为eth0

写在前面

在日常虚拟机的使用中,很可能会使用虚拟机软件的克隆功能,但是克隆之后的主机,网卡的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了。

本文作者:Jeffrey Wang
本文链接:https://blog.wj2015.com/2017/12/24/%E5%85%8B%E9%9A%86%E4%B8%BB%E6%9C%BA%E4%B9%8B%E5%90%8E%EF%BC%8Clinux%E4%B8%8Beth1%E5%A6%82%E4%BD%95%E6%94%B9%E4%B8%BAeth0/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×