Step by step procedure to resolve “device eth0 does not seem to be present, delaying initialization.” error on Linux VM.
If you are working on VMware infrastructure when your Linux VM is hosted on it, you must have come across below error while bringing up Ethernet in Linux :
Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.
root@kerneltalks # service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.
[FAILED]
In this article, we are going to resolve this error. First, let’s see the background of this error. This method works well on Red Hat, CentOS, Oracle Linux, etc.
This error comes up normally in VM which is cloned from other Linux VM or from the template. The root cause of this error is MAC address of eth0 which is same as the source (source VM or template) in its configuration file ifcfg-eth0
. While as during boot NIC gets unique MAC address and it does not match with one in ifcfg-eth0
.
So here are steps to resolve this error.
Step 1.
Remove file /etc/udev/ rules.d/70-persistent-net.rules
and reboot
the server.
root@kerneltalks # rm /etc/udev/rules.d/70-persistent-net.rules
root@kerneltalks # reboot
This ensures new fresh files to be generated at the next boot and get unique MAC assigned.
Step 2.
After reboot, confirm above file is generated again. It will look like :
root@kerneltalks # cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x15ad:0x07b0 (vmxnet3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:99:3f:25", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Observe that new MAC is generated for eth1 (NAME="eth1"
). Note down the MAC address from the file.
Step 3.
Now you have two choices :
- Use eth1 as device name under ifcfg-eth0 config file.
- Edit
/etc/udev/ rules.d/70-persistent-net.rules
with eth name aseth0
If you are choosing the first option then along with name change you need to change MAC.
root@kerneltalks # cat ifcfg-eth0
DEVICE=eth1
HWADDR=00:50:56:99:3f:25
TYPE=Ethernet
---- output truncated ----
If you are choosing the second option. Edit your ifcfg-eth0
located under /etc/sysconfig/network-scripts
with new MAC address from above file. Also, since you made changes to /etc/udev/ rules.d/70-persistent-net.rules
you have to again reboot the server. Rebooting the server here is important.
root@kerneltalks # cat ifcfg-eth0
DEVICE=eth0
HWADDR=00:50:56:99:3f:25
TYPE=Ethernet
---- output truncated ----
I would suggest going with the second choice since you will maintain naming conventions on your system. The first choice may create confusion to fellow sysadmins if you have more than one NIC on your server.
Step 4.
If you have used choice 1 i.e. using device name as eth1
under config file ifcfg-eth0
then you just need to restart network service and you should be all set.
root@kerneltalks # service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
If you have opted the second choice then reboot already taken care of things and your ethernet along with IP should be post-boot.
Deepesh pandole says
“I visited your website. I really like it. Lots of good information. Keep it up
erp says
Brother, I see your solution but what if the Linux does not start at all if we imported the clone VM Manger. I understand Macaddress is different.How to fix this by logging into Root. Root window does not come up at all. We cannot login to the Oracle VM Manger to fix this. PLease provide complete information else it is very difficult. I am stuck on this. I see several posts saying samethings nobody seems to tell the real solution How to login to the Unix Root to fix the issue .