03 November 2005
I go as long as possible between reboots of servers and even my notebook. I've seen various configurations of hotplug and udev cross my Debian machines between reboots, so when I recently rebooted the server, I found my 3 network cards reordered, and hence mostly dysfunctional -- The network configs were trying to serve DHCP to the outside, find the cablemodem on the LAN, and the firewall was just completely backwards. I had seen the same thing happen occassoinally on my notebook, but the stakes aren't as high there.
The modules for my NICs were automatically being loaded in varying orders by hotplug or udev, and that ordering directly affected the interface names they were assigned, so I needed to disable the automatic load of these modules. Old hotplug allowed me to list them in
/etc/hotplug/blacklist.d/, but that's no longer used by udev when it replaced hotplug in Debian.
After some reading in debian-user archives around the time they made this switch, I figured out that I could blacklist the modules in
/etc/modprobe.d/. At first glance, this seemed like a bad idea, because it could keep me from ever loading these modules. In reality, the blacklist only disables loading the modules by an alias name. If I load them with
modprobe explicitly the blacklist is not applied and I will still be able to load the driver. Listing the modules in
/etc/modules works as well, so I can have them loaded there in the order I define, and the interfaces are always as I expect...until the next change, anyway.
Linux 2.6.14 is looking good now on my server and notebook.