On reboot, my ifcfg-eth0 didn't have HWADDR, so the ethernet device wasn't named correctly. rawhide-20070126
I hate sysfs. A lot.
*** Bug 224662 has been marked as a duplicate of this bug. ***
One more reason to use /etc/mactab always.
One more reason to not randomly change public interfaces. Ah well, sysfs beaten in kernel-2.6.19-1.2914.fc7.
Network interfaces named ___tmpxxxx when HWADDR is not specified Article ID: 36572 - Created on: Nov 18, 2009 2:46 PM - Last Modified: Dec 15, 2010 9:55 AM Issue Ethernet interface keeps changing into '__tmpxxxx'. When server is rebooted, interfaces are named as '__tmp' instead of ethx. Invalid network interface name after reboot Environment Red Hat Enterprise Linux 5.3 initscripts-8.45.25-1.el5-x86_64 Resolution To prevent this from occurring, the "HWADDR=" parameter should be used in /etc/sysconfig/network-scripts/ifcfg-ethx as follows: Ethernet Device DEVICE=ethx BOOTPROTO=static HWADDR=xx:xx:xx:xx ONBOOT=yes Root Cause What happens is: 1. initrd loads modules. Generally not network ones, unless you've specifically configured it to do so. 2. udev loads modules. It loads them in parallel. This means that if you have multiple network drivers in the machine, they will race against each other for device assignment. 3. when a network device is created, /lib/udev/rename_device is run to attempt to coerce the device name into whatever device name is mapped to that MAC address in the ifcfg files. Otherwise, you just get the order they happen to initialize in (which can change from boot to boot) 4. rest of boot runs (during which you can do other things) Due to the fact udev does not load modules sequentially (#2), you will get non-deterministic ethernet device ordering if you have multiple network drivers in the machine. It's inevitable. So, it is required to use HWADDR= in the ifcfg files to accomplish that mapping. You could also use udev rules directly (with NAME=).