Essentially what is happening is this:

to the linux grub command, I added debug --verbose and got this!

after 60s waiting:
systemd-udevd 'SomeDevicePartition' is taking a long time

after more 120s:
systemd-udevd 'SomeDevicePartition' killed

they happen at +- : 60s, 180s, 240s, 365s
so a total of 6minutes!!!

I wonder if udevd killing timeout could be lowered to may be 10s and do not retry? (using some config in the grub entry)

if you need more info, the whole problem details is here (above is just the essential part): https://askubuntu.com/questions/1196874/18-04-grub-takes-about-6-minutes-to-boot-problem-systemd-udevd-somedevice

I got a tip to workaround it:
udevadm --timeout=10

but I may need to undo it using a LiveCD iso image so:
Where udevadm stores it's configuration? I tried cat ./udev/rules.d/* |grep timeout -i and it found nothing...

Also it is for generic events so, as a bonus: is there some specific timeout I can configure for dealing with partition detection?

here is what is in grub cfg:

linux /vmlinuz-4.15.0-72-generic \
  root=/dev/mapper/MyLvmGroupName ro \
  nosplash $vt_handoff debug --verbose

as a tip from https://unix.stackexchange.com/a/559979/30352 (here), I tried:

linux /vmlinuz-4.15.0-72-generic \
  root=/dev/mapper/MyLvmGroupName ro \
  rd.udev.event-timeout=10 \
  nosplash $vt_handoff debug --verbose

but it seems to be ignored for some reason :( as I still have very long timouts (the same, nothing changed)

I am with this problem since +- 10/12/2019 :/ (The last time I did a full update on Ubuntu18)


Looks like your system use systemd's udev.

So, let's start to this service manpage (systemd-udevd.service(8)):

       The behavior of the daemon can be configured using udev.conf(5), its command line options,
       environment variables, and on the kernel command line, or changed dynamically with udevadm

And further:

       Parameters starting with "rd." will be read when systemd-udevd is used in an initrd.

       udev.log-priority=, rd.udev.log-priority=
           Set the log level.

       udev.children-max=, rd.udev.children-max=
           Limit the number of events executed in parallel.

       udev.exec-delay=, rd.udev.exec-delay=
           Delay the execution of RUN instructions by the given number of seconds. This option might
           be useful when debugging system crashes during coldplug caused by loading non-working
           kernel modules.

       udev.event-timeout=, rd.udev.event-timeout=
           Wait for events to finish up to the given number of seconds. This option might be useful
           if events are terminated due to kernel drivers taking too long to initialize.

           Network interfaces are renamed to give them predictable names when possible. It is enabled
           by default; specifying 0 disables it.

So maybe you could try to add udev.event-timeout=10 (or the same prefixed with rd. if the issue is on the initrd phase) to your kernel command line.

  • this worked, thx! linux /vmlinuz-4.15.0-72-generic udev.event-timeout=5 root=/dev/mapper/MyLvmGroupName ro nosplash $vt_handoff debug --verbose – Aquarius Power Jan 5 at 17:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.