When I was working on this last time (with the r8169 driver), someone on
this list provided the following script which is what "fixed" the
issue at
the time by creating a new 70-persistent-net.rules file with the devices
enumerated in order. However, this no longer works now.
echo "[KICKSTART] Binding eth interfaces to the expected MAC address in
UDEV"
echo "## Created by Kickstart to keep network interfaces in an expected
order" > \
/etc/udev/rules.d/70-persistent-net.rules
echo "" >> \
/etc/udev/rules.d/70-persistent-net.rules
cd /sys/class/net/
for NETDEV in $(ls | /bin/grep eth | sort)
do
## Create a UDEV rule for each eth interface
echo "## ${NETDEV} interface" >> \
/etc/udev/rules.d/70-persistent-net.rules
## We throw this one in here as it can contain some useful information
echo "## $(dmesg | /bin/grep ${NETDEV} | /bin/grep -i -v -e
"console"
-e "Command line" | head -1)" >> \
/etc/udev/rules.d/70-persistent-net.rules
echo -n "SUBSYSTEM==\"net\", ACTION==\"add\",
DRIVERS==\"?*\", " >> \
/etc/udev/rules.d/70-persistent-net.rules
echo -n "ATTR{address}==\"$(cat ${NETDEV}/address)\", "
>> \
/etc/udev/rules.d/70-persistent-net.rules
echo -n "ATTR{dev_id}==\"0x0\", ATTR{type}==\"1\",
KERNEL==\"eth?*\", ">> \
/etc/udev/rules.d/70-persistent-net.rules
echo -e "NAME=\"${NETDEV}\"\n" >> \
/etc/udev/rules.d/70-persistent-net.rules
## Make a log of the devices present during install
echo -e "${NETDEV} $(cat ${NETDEV}/address)\n" >>
/root/ksnet-devices
## Also remove the HWADDR line from all of the net config files
/bin/grep -v -e NAME -e HWADDR -e NM_CONTROLLED \
/etc/sysconfig/network-scripts/ifcfg-${NETDEV} | sed
's/\"//g' \
> /etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp
echo "NM_CONTROLLED=no" >>
/etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp
#/usr/bin/perl -p -i -e 's/dhcp/none/'
/etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp
/bin/mv -f /etc/sysconfig/network-scripts/ifcfg-${NETDEV}-tmp \
/etc/sysconfig/network-scripts/ifcfg-${NETDEV}
done
After the machine boots and I look in /root/ksnet-devices, I see the MAC
addresses for the devices as:
Port1 -> eth0
PCIe Card-> eth1
Port2 -> eth2
And yet, during the machine's POST (which can verify by the PXE boot up of
each device), it correctly enumerates the ethernet devices as:
Port1
Port2
PCIe card
So where and why is the order changed when the kernel kicks in and start
booting the machine? And how can I stop it, or change its behavior? I'm not
seeing any 'renaming' going on in dmesg like I sometimes find. So
something
is causing this and I can't figure it out.
On Wed, May 13, 2015 at 5:17 PM, Kahlil Hodgson <
kahlil.hodgson at dealmax.com.au> wrote:
> Have you tried having kickstart set up a more appropriate
> /etc/udev/rules/70-persistent-net.rules?
> This is normally written by /lib/udev/write_net_rules. You should be able
> to modify the automatically generated one to match what you need.
>
> K
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> http://lists.centos.org/mailman/listinfo/centos
>
>