Linux解决Device eth0 does not seem to be present,delaying
问题前提:
在VirtualBox中克隆Linux服务器,如下,由CentOS6.5_Base克隆得到node01服务器,采用的是完全克隆的方式,克隆时重新初始化MAC地址。
原服务器Centos6.5_Base的IP地址是192.168.137.10,原本打算是:将克隆得到的服务器node01的IP地址设置成192.168.137.31。
那么很自然的,当我启动node01之后,自然而然想到的就是要去修改/etc/sysconfig/network-script目录下的网络接口配置文件ifcfg-ethXXX,将文件中的IP修改为192.168.137.31。
如上图,除了ifcfg-lo回环网络配置文件之外就是ifcfg-eth0了,则我修改ifcfg-eth0文件,将其中IP修改如下:
注:其实mac地址也是影响配置的一个重要点,为了更清楚第阐述现在这个问题,这里我把配置文件中mac地址配置给注释掉了(没关系的,文件中不配置mac地址也可以)。
接着使用service network restart命令重启网络:
于是,就出现了Device eth0 does not seem to be present的问题。
解决方法:
针对这个问题,有两种解决方法。其实这两种方法的最终解决手段是一样的,只不过过程不同而已。
方法一:
使用ifconfig -a命令。
如上图,可以看到目前服务器所拥有的是eth1这个网卡(且对应的mac地址是08:00:27:93:B8:C2),而我们的配置文件ifcfg-eth0中给网卡配置的名称却是eth0。这是不对的,下面我们改过来。
注:如果你愿意的话,这里同时也可以将HWADDR的井号注释去掉,并把等号后面修改为正确的mac地址08:00:27:93:B8:C2。
接着重启网络。
可以看到,网卡启动成功了。
方法二:
该方法参考自《CentOS Linux解决Device eth0 does not seem to be present》
下面简单总结一下它的步骤:
查看/etc/udev/rules.d/70-persistent-net.rules文件
看到最后一行,设备是eth1,对应的mac地址是08:00:27:93:b8:c2。记录下来,然后像上面一样,把这两项修改到配置文件ifcfg-eth0文件中,然后重启网络即可。
小结:
1)其实方法二中的/etc/udev/rules.d/70-persistent-net.rules文件才是根源,因为该文件中给网卡配置的名称是eth1,所以在第一种方法中使用ifconfig -a命令查看到的才是eth1,假如这里写的是eth3,那么用ifconfig -a命令查看到的也将是eth3。
2)最后,到这里,其实已经解决了Device eth0 does not seem to be present的问题了,不过我们也注意到了,我们在ifcfg-eth0文件中配置eth1的信息,感觉有点拧巴对不对……我们大部分人想要的应该是——我的ifcfg-eth0接口配置文件中,对应的配置就应该是网卡eth0的信息,至于网卡eth1,则应该是在ifcfg-eth1文件中进行配置。关于这个问题,可以参考《Linux系统修改网卡名称(eth1修改为eth0)》。