Now this is dangerous. Two boots out of three with this tweak leave me with unmountable system points and a crapped out system, so this is strictly use-at-your-own risk. Your system might not reboot with this one.
For me, the “UDev uevents” pause is the most aggregious of them all, and telling udevsettle to hurry helps quite a bit.
The /etc/start_udev
script calls on /sbin/udevsettle
to wait for udev’s queue to clear before continuing. At line 60, where the /sbin/udevsettle
command appears, tack on a --timeout=5
flag, to trim the wait period to 5 seconds.
Save and reboot. And cross your fingers. In my case, on a machine this old, it cut about two seconds off the boot time, but I get occasional error messages. I image that on a much faster system you might be able to clip udevsettle to an even shorter timeout. For me, 3 seconds seemed to make things very unstable. Five seconds worked, although it still occasionally has issues.
Again, this is not a very smart way of doing things. But I’m impatient.
I did something better
Instead to call start_udev from rc.sysinit
I call udevtrigger just after the udev daemon starts
Then, I call con udevsettle just in the place start_udev is now. So I give udev time to end is job by starting it before.
Interesting. … I’ll have to try that too. Thanks!