4

For the general case let's say that the virtual adapter for eth0 has been removed and replaced with another one. Either due to cloning or, more recently, a rash of MAC address conflicts. [Yes, a rash of them.]

Usually I simply rm /etc/udev/rules.d/70-persistent-net-rules and check that nothing in /etc/sysconfig/network* contains a reference to a MAC address and reboot, but this is Linux and there must be a way to avoid rebooting.

Is there a command I can run to pick up the new NIC?

edit

In addition to @dawud's answer below I ran into an issue on my test VM where it had already booted with the new device in place and had it named eth1 in which case udevadm does not seem to 'release' the device. In this case I did the following:

  1. Get the MAC address of the device from VSphere.
  2. Create/edit /etc/iftab with the line eth0 mac ##:##:##:##:##:## substituting in the MAC address. ifrename does not seem to like it when this file does not exist/contain the name of the destination interface.
  3. ifrename -i eth1 -n eth0
  4. service network restart and eth0 started up normally.
  5. [Optional] rm /etc/iftab so there's one less place for a MAC to live.

2 Answers 2

3

You can do that using udevadm trigger

You still need to remove the persistent rules and restart the network service.

3
  • Something like service network stop && udevadm trigger --action=change && service network start? I did a little reading on udevadm and action=change is supposed to be safer than the default action=add.
    – Sammitch
    Apr 9, 2013 at 15:12
  • Provided you have already removed the persistent rules, yes, that should do. These link may be of interest.
    – dawud
    Apr 9, 2013 at 15:22
  • I was actually just reading that before you linked to it. :D
    – Sammitch
    Apr 9, 2013 at 15:59
2

For me, the below command sequence has worked as expected.

I have done modifications in /etc/udev/rules.d/70-persistent-net.rules to change the eth number and to reload them without rebooting.

/etc/init.d/networking stop

/etc/init.d/udev stop

udevadm control --reload-rules

/etc/init.d/udev start

/etc/init.d/networking start

Following this, it successfully loaded without rebooting the machine.

Any suggestion or recommendations on this are welcome, I have discovered the above on my own by reading the MAN pages.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .