6

I'm using Ubuntu 12.04 LTS server edition and I am modifying /etc/udev/rules.d/70-persistent-net.rules to define my own mappings of ethernet interfaces to MAC addresses; that file is initially generated by rules in /lib/udev/rules.d/75-persistent-net-generator.rules at system installation time (or at the first boot, I actually don't know and it doesn't matter here).

How can I be sure that my edited version will never ever be overwritten by anything?

Removing the persistent-net-generator, as suggested on some websites, is not the Right Thing™ to do as told by comments in the file itself: it will be overwritten by any update of the udev package. I'm looking for a more formally correct way to disable it.

Is it enough to just make sure that /etc/udev/rules.d/70-persistent-net.rules does exist? Maybe there are other events that could trigger its regeneration? (eg. adding or removing ethernet interfaces to the system?)

Luke404
  • 5,708
  • 3
  • 44
  • 58

3 Answers3

10

The correct way to disable the generator is to override it with an empty file. Any rules in /etc/udev/rules.d will take precedence over rules in /lib/udev/rules.d, so simply create an empty file or symlink to /dev/null:

sudo touch /etc/udev/rules.d/75-persistent-net-generator.rules
-OR-
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules

This is safe and future-proof.

2

You should take a look on this file: /etc/udev/rules.d/README Then you can read, that your own udev rules file should have higher number in its name, than the 75-persistent-net-generator.rules. So create a new rules file named like /etc/udev/rules.d/76-persistent-net.rules with your own settings.

Scott Pack
  • 14,717
  • 10
  • 51
  • 83
Eddie
  • 46
  • 1
  • No such file exists on Debian 8.2, so it must not be a reliable source. Anyway, won't this cause both files to be invoked? AFAIK in such situations, both files must have exactly the same name in order to invoke precedence/masking, and leading numbers are considered a different that prevents masking. – underscore_d Nov 04 '15 at 00:03
-1

Additional cents for presenting this rule from being re- generated in a batch. Usually I use this at our DevOps practice

for i in `cat /tmp/allnode.lst | awk '{print $1}'`; do echo $i; \
ssh $i 'mv /lib/udev/rules.d/75-persistent-net-generator.rules /tmp/'; done

Col 1 in allnode.lst is IP address

j3ffyang
  • 160
  • 1
  • 4