Created attachment 792936 [details] Proposed patch During the bootup processes with an initramfs, udev triggers two times with ACTION=="add". In the first run, biosdevname would set NAME="em1" for KERNEL=="eth0". In the second run, biosdevname would not set NAME="em1", because KERNEL!="eth0". Therefore NAME=="" and the default systemd-udevd net names would kick in. Proposed udev rules, which fix this issue are: SUBSYSTEM!="net", GOTO="netdevicename_end" ACTION!="add", GOTO="netdevicename_end" NAME=="?*", GOTO="netdevicename_end" ATTR{type}!="1", GOTO="netdevicename_end" ENV{DEVTYPE}=="?*", GOTO="netdevicename_end" # kernel command line "biosdevname={0|1}" can turn off/on biosdevname IMPORT{cmdline}="biosdevname" ENV{biosdevname}=="?*", ENV{UDEV_BIOSDEVNAME}="$env{biosdevname}" # ENV{UDEV_BIOSDEVNAME} can be used for blacklist/whitelist # but will be overwritten by the kernel command line argument ENV{UDEV_BIOSDEVNAME}=="0", GOTO="netdevicename_end" ENV{UDEV_BIOSDEVNAME}=="1", GOTO="netdevicename_start" # uncomment the next line for biosdevname to be off by default # GOTO="netdevicename_end" LABEL="netdevicename_start" # using NAME= instead of setting INTERFACE_NAME, so that persistent # names aren't generated for these devices, they are "named" on each boot. SUBSYSTEMS=="pci", PROGRAM="/sbin/biosdevname --policy physical -i %k", NAME="%c", OPTIONS+="string_escape=replace" LABEL="netdevicename_end"
RHEL bug 988766 hit this issue. I built F20, rawhide and RHEL-7 packages with this patch.
Just FYI to fix this upstream.