在Virtualbox中安装完虚拟机之后,可能会有添加网卡,然后删除网卡之类的操作。这种操作一多了的话,虚拟机中的linux系统中,网卡的编号可能会乱套。
默认情况下,Linux会把第一个网卡识别为eth0,第二个为eth2。
但是经过频繁的变更网卡设置后,在网络服务启动时,有可能出现下面的错误(还有人说,在复制虚拟机的时候,也会出现这个问题):
“Device eth0 does not seem to be present, delaying initialization.”
如何解决这个问题呢?
这时可以删除下面的文件,然后重启系统:
# rm /etc/udev/rules.d/70-persistent-net.rules
# reboot
其实该文件在系统启动时可以自动生成的,而且里面的内容确定了网卡编号与MAC地址的绑定关系。在网卡变动或者虚拟机克隆之后,网卡的MAC地址会发生变化,所以系统会错误的认为网络设备不存在。
重启之后,再次查看一下下面的文件, 如果eth0还是不存在的话,可以修改一下文件的内容,把里面的eth1或者ethN之类的,改成eth0,我的文件如下;
#cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:86:d8:01", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
记下里面的MAC地址,修改下面的文件:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #注意网卡编号
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.1.2
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
HWADDR=08:00:27:86:d8:01 #这里的MAC地址一定要和70-persistent-net.rules的一致
MTU=1500
最后,重启一下网络服务,看看eth0有没有起来:
# service network restart