Solved: Renaming em1 to eth0 on Red Hat Enterprise Linux 6

We had a software package that had a braindead licensing scheme. To generate the license, it uses the MAC address of the network interface card of the machine you are running it on. OK, that's a way of identifying a unique machine. But here's the kicker. It just assumes that your ethernet device is /dev/eth0.

For a while now, NICs that are embedded on the motherboard are identified by udev as em1, em2, etc. This is part of an attempt to make interface naming more predictable and meaningful.

So, how to get em1 renamed to eth0? Here's what worked for me. I should emphasize that I had access to the console, so when ethernet was down I could still access the box.

0. I've been burned enough times to do this out of habit: make a backup of /etc/grub.conf, retaining SELinux info:

# cp --preserve=context /etc/grub.conf /etc/grub.bak

1. Add biosdevname=0 to the kernel boot arguments in /etc/grub.conf.

2. Rename /etc/sysconfig/network-scripts/ifcfg-em1 to /etc/sysconfig/network-scripts/ifcfg-eth0, changing the line




3. Delete /etc/udev/rules.d/70-persistent-net.rules

4. Reboot.

Presto, I get eth0 for the former em1 and the rest of the NICs on this Dell R715 are still em2, em3, em4.


How to Still Use ethX on Fedora 15
Consistent Network Device Naming
Nicnaming - Solving it with Biosdevname



Thank You!

Yours is the first accurate post I have come across. This wans't an issue until I purchased new dell servers T110 ii. I have found the "biosdevname=0" to be ineffective (unless a fresh install) or as others' previous posts had mentioned "yum remove biosdevname". If fact, that RPM wasn't even loaded. Thanks again. David

"biosdevname=0" solved the Problem :)

mentioning in kernel boot arguments biosdevname=0 resolved my issue .. thanks a lot

Thanks very much. It works on Red Hat Enterprise Linux server 6.1 in my DELL R910.
But in my system there is no /etc/udev/rules.d/70-persistent-net.rules. There is no rules for net.

Is the licensing software Flexera?


"biosdevname=0" solved the Problem :)Thansk bro

This is a great tip/fix. I had to change the names on 6 servers for an oracle rac install and this worked like a charm! The install expected the nics to be named eth0 and eth1, linux installed them kind of random. I was wasting alot of time untill I found this
Thank You!

Thanks for the solution. It worked perfectly on RHEL 6.4

Thanks very much - had the same problem with a DB trying to license from eth0 under Red Hat Linux 6.4. Saved me the massive effort of trying to get a response out one of those big global software companies

I had to install Sybase ASE 15.7 on a RHEL 6.6
In step #2 I had to change 2 lines in /etc/sysconfig/network-scripts/ifcfg-eth0
NAME="System eth0"

Then it worked after reboot.
Thanks for the instructions.

if your system is boot by EFI on EFI bios, then you may change the file /etc/grub2-efi.cfg/ instead of the /etc/grub.conf RHEL7.2 2016.06.17