Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?)

share|improve this question
up vote 9 down vote accepted

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
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules

This is safe and future-proof.

share|improve this answer
It's probably better to just touch an empty file. – mgorven Mar 7 '13 at 17:50

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.

share|improve this answer
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 4 '15 at 0:03

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

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.