On Sat, May 17, 2014 at 2:39 PM, Grant <emailgr...@gmail.com> wrote:
>>> I have this:
>>>
>>> # dmesg | grep enp
>>> [    4.297862] systemd-udevd[659]: renamed network interface eth0 to 
>>> enp0s20u2u1
>>> [    4.778289] systemd-udevd[660]: renamed network interface eth0 to 
>>> enp0s20u2u2
>>> [    6.496193] ax88179_178a 3-2.1:1.0 enp0s20u2u1: ax88179 - Link status 
>>> is: 1
>>> [    7.905393] ax88179_178a 3-2.2:1.0 enp0s20u2u2: ax88179 - Link status 
>>> is: 1
>>> #
>>>
>>> That doesn't tell us when the network initscripts tried and failed to
>>> start but this from /var/log/messages/everything/current shows the
>>> first time in the boot sequence that a dependent service failed to
>>> start because of the networking failure so it should be before this:
>>>
>>> [kernel] [    0.787433] serio: i8042 AUX port at 0x60,0x64 irq 12
>>> [/etc/init.d/unbound] ERROR: cannot start unbound as net.enp0s20u2u1
>>> would not start
>>> [kernel] [    0.792081] rtc_cmos 00:04: alarms up to one month, y3k,
>>> 242 bytes nvram, hpet irqs
>>>
>>
>> Yeah, so I think the kernel is detecting your network card after udev
>> has already started.
>>
>> One interesting experiment would be to delay the boot process to allow
>> the kernel additional time to detect devices. Adding rootdelay=10 to
>> your kernel command line should do the trick, unless you are using
>> some broken initramfs.
>
>
> I tried that and it works great which I think confirms our suspicions
> that the kernel is detecting my network cards after udev has already
> started.  If I remove rootdelay=10 and I do this:
>
> # ln -s /dev/null /etc/udev/rules.d/90-network.rules
>
> the network interfaces fail to come up which is the same thing I've
> experienced with rc_hotplug="net.*".
>

Yeah, so this is not solvable using service dependencies. You will
either need to make that boot delay permanent, or rely on the hotplug
functionality to start the net.en* services. In the latter case, you
should remove them from the default runlevel.

You may want to define rc_need="!net" to prevent init scripts that
"need net" from automatically starting the net.* services. For most
services this is fine, but it will obviously break things like ntpdate
which actually need a usable network connection.

Reply via email to